(git:3add494)
dbt_tas_base Module Reference

Tall-and-skinny matrices: base routines similar to DBM API, mostly wrappers around existing DBM routines. More...

Functions/Subroutines

subroutine, public dbt_tas_destroy (matrix)
 ... More...
 
subroutine, public dbt_tas_copy (matrix_b, matrix_a, summation)
 Copy matrix_a to matrix_b. More...
 
subroutine, public dbt_tas_finalize (matrix)
 ... More...
 
subroutine, public dbt_tas_distribution_new (dist, mp_comm, row_dist, col_dist, split_info, nosplit)
 create new distribution. Exactly like dbm_distribution_new but with custom types for row_dist and col_dist instead of arrays. More...
 
subroutine, public dbt_tas_distribution_destroy (dist)
 ... More...
 
subroutine, public dbt_tas_get_stored_coordinates (matrix, row, column, processor)
 As dbt_get_stored_coordinates. More...
 
subroutine, public dbt_repl_get_stored_coordinates (matrix, row, column, processors)
 Get all processors for a given row/col combination if matrix is replicated on each process subgroup. More...
 
subroutine, public dbt_tas_convert_to_dbm (matrix_rect, matrix_dbm)
 Convert a tall-and-skinny matrix into a normal DBM matrix. This is not recommended for matrices with a very large dimension. More...
 
subroutine, public dbt_tas_convert_to_tas (info, matrix_rect, matrix_dbm)
 Converts a DBM matrix into the tall-and-skinny matrix type. More...
 
subroutine, public dbt_tas_iterator_start (iter, matrix_in)
 As dbm_iterator_start. More...
 
integer function, public dbt_tas_iterator_num_blocks (iter)
 As dbm_iterator_num_blocks. More...
 
logical function, public dbt_tas_iterator_blocks_left (iter)
 As dbm_iterator_blocks_left. More...
 
subroutine, public dbt_tas_iterator_stop (iter)
 As dbm_iterator_stop. More...
 
subroutine, public dbt_tas_blk_sizes (matrix, row, col, row_size, col_size)
 Get block size for a given row & column. More...
 
type(dbt_tas_split_info) function, public dbt_tas_info (matrix)
 get info on mpi grid splitting More...
 
integer(kind=int_8) function, public dbt_tas_nblkrows_total (matrix)
 ... More...
 
integer(kind=int_8) function, public dbt_tas_nfullrows_total (matrix)
 ... More...
 
integer(kind=int_8) function, public dbt_tas_nblkcols_total (matrix)
 ... More...
 
integer(kind=int_8) function, public dbt_tas_nfullcols_total (matrix)
 ... More...
 
integer function, public dbt_tas_nblkcols_local (matrix)
 ... More...
 
integer function, public dbt_tas_nblkrows_local (matrix)
 ... More...
 
pure integer function, public dbt_tas_get_num_blocks (matrix)
 As dbt_get_num_blocks: get number of local blocks. More...
 
integer(kind=int_8) function, public dbt_tas_get_num_blocks_total (matrix)
 get total number of blocks More...
 
pure integer function, public dbt_tas_get_nze (matrix)
 As dbt_get_nze: get number of local non-zero elements. More...
 
integer(kind=int_8) function, public dbt_tas_get_nze_total (matrix)
 Get total number of non-zero elements. More...
 
subroutine, public dbt_tas_clear (matrix)
 Clear matrix (erase all data) More...
 
subroutine, public dbt_tas_get_info (matrix, nblkrows_total, nblkcols_total, local_rows, local_cols, proc_row_dist, proc_col_dist, row_blk_size, col_blk_size, distribution, name)
 ... More...
 
subroutine, public dbt_tas_put_block (matrix, row, col, block, summation)
 As dbm_put_block. More...
 
subroutine, public dbt_tas_get_block_p (matrix, row, col, block, row_size, col_size)
 As dbm_get_block_p. More...
 
subroutine, public dbt_tas_filter (matrix, eps)
 As dbm_filter. More...
 

Detailed Description

Tall-and-skinny matrices: base routines similar to DBM API, mostly wrappers around existing DBM routines.

Author
Patrick Seewald

Function/Subroutine Documentation

◆ dbt_tas_destroy()

subroutine, public dbt_tas_base::dbt_tas_destroy ( type(dbt_tas_type), intent(inout)  matrix)

...

Parameters
matrix...
Author
Patrick Seewald

Definition at line 232 of file dbt_tas_base.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dbt_tas_copy()

subroutine, public dbt_tas_base::dbt_tas_copy ( type(dbt_tas_type), intent(inout)  matrix_b,
type(dbt_tas_type), intent(in)  matrix_a,
logical, intent(in), optional  summation 
)

Copy matrix_a to matrix_b.

Parameters
matrix_b...
matrix_a...
summationWhether to sum matrices b = a + b
Author
Patrick Seewald

Definition at line 249 of file dbt_tas_base.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dbt_tas_finalize()

subroutine, public dbt_tas_base::dbt_tas_finalize ( type(dbt_tas_type), intent(inout)  matrix)

...

Parameters
matrix...
Author
Patrick Seewald

Definition at line 326 of file dbt_tas_base.F.

Here is the caller graph for this function:

◆ dbt_tas_distribution_new()

subroutine, public dbt_tas_base::dbt_tas_distribution_new ( type(dbt_tas_distribution_type), intent(out)  dist,
type(mp_cart_type), intent(in)  mp_comm,
class(dbt_tas_distribution), intent(in)  row_dist,
class(dbt_tas_distribution), intent(in)  col_dist,
type(dbt_tas_split_info), intent(in), optional  split_info,
logical, intent(in), optional  nosplit 
)

create new distribution. Exactly like dbm_distribution_new but with custom types for row_dist and col_dist instead of arrays.

Parameters
dist...
mp_comm...
row_dist...
col_dist...
split_infoStrategy of how to split process grid (optional). If not present a default split heuristic is applied.
nosplitif .TRUE. don't split process grid (optional)
Author
Patrick Seewald

Definition at line 345 of file dbt_tas_base.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dbt_tas_distribution_destroy()

subroutine, public dbt_tas_base::dbt_tas_distribution_destroy ( type(dbt_tas_distribution_type), intent(inout)  dist)

...

Parameters
dist...
Author
Patrick Seewald

Definition at line 432 of file dbt_tas_base.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dbt_tas_get_stored_coordinates()

subroutine, public dbt_tas_base::dbt_tas_get_stored_coordinates ( type(dbt_tas_type), intent(in)  matrix,
integer(kind=int_8), intent(in)  row,
integer(kind=int_8), intent(in)  column,
integer, intent(out)  processor 
)

As dbt_get_stored_coordinates.

Parameters
matrix...
rowglobal matrix blocked row
columnglobal matrix blocked column
processorprocess ID
Author
Patrick Seewald

Definition at line 461 of file dbt_tas_base.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dbt_repl_get_stored_coordinates()

subroutine, public dbt_tas_base::dbt_repl_get_stored_coordinates ( type(dbt_tas_type), intent(in)  matrix,
integer, intent(in)  row,
integer, intent(in)  column,
integer, dimension(:), intent(out)  processors 
)

Get all processors for a given row/col combination if matrix is replicated on each process subgroup.

Parameters
matrixtall-and-skinny matrix whose DBM submatrices are replicated matrices
rowrow of a submatrix
columncolumn of a submatrix
processors...
Author
Patrick Seewald

Definition at line 487 of file dbt_tas_base.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dbt_tas_convert_to_dbm()

subroutine, public dbt_tas_base::dbt_tas_convert_to_dbm ( type(dbt_tas_type), intent(in)  matrix_rect,
type(dbm_type), intent(out)  matrix_dbm 
)

Convert a tall-and-skinny matrix into a normal DBM matrix. This is not recommended for matrices with a very large dimension.

Parameters
matrix_rect...
matrix_dbm...
Author
Patrick Seewald

Definition at line 523 of file dbt_tas_base.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dbt_tas_convert_to_tas()

subroutine, public dbt_tas_base::dbt_tas_convert_to_tas ( type(dbt_tas_split_info), intent(in)  info,
type(dbt_tas_type), intent(out)  matrix_rect,
type(dbm_type), intent(in)  matrix_dbm 
)

Converts a DBM matrix into the tall-and-skinny matrix type.

Parameters
infoStrategy of how to split process grid
matrix_rect...
matrix_dbm...
Author
Patrick Seewald

Definition at line 607 of file dbt_tas_base.F.

Here is the call graph for this function:

◆ dbt_tas_iterator_start()

subroutine, public dbt_tas_base::dbt_tas_iterator_start ( type(dbt_tas_iterator), intent(inout)  iter,
type(dbt_tas_type), intent(in), target  matrix_in 
)

As dbm_iterator_start.

Parameters
iter...
matrix_in...
Author
Patrick Seewald

Definition at line 669 of file dbt_tas_base.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dbt_tas_iterator_num_blocks()

integer function, public dbt_tas_base::dbt_tas_iterator_num_blocks ( type(dbt_tas_iterator), intent(in)  iter)

As dbm_iterator_num_blocks.

Parameters
iter...
Returns
...
Author
Ole Schuett

Definition at line 684 of file dbt_tas_base.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dbt_tas_iterator_blocks_left()

logical function, public dbt_tas_base::dbt_tas_iterator_blocks_left ( type(dbt_tas_iterator), intent(in)  iter)

As dbm_iterator_blocks_left.

Parameters
iter...
Returns
...
Author
Patrick Seewald

Definition at line 697 of file dbt_tas_base.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dbt_tas_iterator_stop()

subroutine, public dbt_tas_base::dbt_tas_iterator_stop ( type(dbt_tas_iterator), intent(inout)  iter)

As dbm_iterator_stop.

Parameters
iter...
Author
Patrick Seewald

Definition at line 709 of file dbt_tas_base.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dbt_tas_blk_sizes()

subroutine, public dbt_tas_base::dbt_tas_blk_sizes ( type(dbt_tas_type), intent(in)  matrix,
integer(kind=int_8), intent(in)  row,
integer(kind=int_8), intent(in)  col,
integer, intent(out)  row_size,
integer, intent(out)  col_size 
)

Get block size for a given row & column.

Parameters
matrix...
row...
col...
row_size...
col_size...
Author
Patrick Seewald

Definition at line 806 of file dbt_tas_base.F.

Here is the caller graph for this function:

◆ dbt_tas_info()

type(dbt_tas_split_info) function, public dbt_tas_base::dbt_tas_info ( type(dbt_tas_type), intent(in)  matrix)

get info on mpi grid splitting

Parameters
matrix...
Returns
...
Author
Patrick Seewald

Definition at line 821 of file dbt_tas_base.F.

Here is the caller graph for this function:

◆ dbt_tas_nblkrows_total()

integer(kind=int_8) function, public dbt_tas_base::dbt_tas_nblkrows_total ( type(dbt_tas_type), intent(in)  matrix)

...

Parameters
matrix...
Returns
...
Author
Patrick Seewald

Definition at line 834 of file dbt_tas_base.F.

Here is the caller graph for this function:

◆ dbt_tas_nfullrows_total()

integer(kind=int_8) function, public dbt_tas_base::dbt_tas_nfullrows_total ( type(dbt_tas_type), intent(in)  matrix)

...

Parameters
matrix...
Returns
...
Author
Patrick Seewald

Definition at line 847 of file dbt_tas_base.F.

◆ dbt_tas_nblkcols_total()

integer(kind=int_8) function, public dbt_tas_base::dbt_tas_nblkcols_total ( type(dbt_tas_type), intent(in)  matrix)

...

Parameters
matrix...
Returns
...
Author
Patrick Seewald

Definition at line 860 of file dbt_tas_base.F.

Here is the caller graph for this function:

◆ dbt_tas_nfullcols_total()

integer(kind=int_8) function, public dbt_tas_base::dbt_tas_nfullcols_total ( type(dbt_tas_type), intent(in)  matrix)

...

Parameters
matrix...
Returns
...
Author
Patrick Seewald

Definition at line 873 of file dbt_tas_base.F.

◆ dbt_tas_nblkcols_local()

integer function, public dbt_tas_base::dbt_tas_nblkcols_local ( type(dbt_tas_type), intent(in)  matrix)

...

Parameters
matrix...
Returns
...
Author
Patrick Seewald

Definition at line 886 of file dbt_tas_base.F.

Here is the caller graph for this function:

◆ dbt_tas_nblkrows_local()

integer function, public dbt_tas_base::dbt_tas_nblkrows_local ( type(dbt_tas_type), intent(in)  matrix)

...

Parameters
matrix...
Returns
...
Author
Patrick Seewald

Definition at line 899 of file dbt_tas_base.F.

Here is the caller graph for this function:

◆ dbt_tas_get_num_blocks()

pure integer function, public dbt_tas_base::dbt_tas_get_num_blocks ( type(dbt_tas_type), intent(in)  matrix)

As dbt_get_num_blocks: get number of local blocks.

Parameters
matrix...
Returns
...
Author
Patrick Seewald

Definition at line 912 of file dbt_tas_base.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dbt_tas_get_num_blocks_total()

integer(kind=int_8) function, public dbt_tas_base::dbt_tas_get_num_blocks_total ( type(dbt_tas_type), intent(in)  matrix)

get total number of blocks

Parameters
matrix...
Returns
...
Author
Patrick Seewald

Definition at line 925 of file dbt_tas_base.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dbt_tas_get_nze()

pure integer function, public dbt_tas_base::dbt_tas_get_nze ( type(dbt_tas_type), intent(in)  matrix)

As dbt_get_nze: get number of local non-zero elements.

Parameters
matrix...
Returns
...
Author
Patrick Seewald

Definition at line 943 of file dbt_tas_base.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dbt_tas_get_nze_total()

integer(kind=int_8) function, public dbt_tas_base::dbt_tas_get_nze_total ( type(dbt_tas_type), intent(in)  matrix)

Get total number of non-zero elements.

Parameters
matrix...
Returns
...
Author
Patrick Seewald

Definition at line 957 of file dbt_tas_base.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dbt_tas_clear()

subroutine, public dbt_tas_base::dbt_tas_clear ( type(dbt_tas_type), intent(inout)  matrix)

Clear matrix (erase all data)

Parameters
matrix...
Author
Patrick Seewald

Definition at line 973 of file dbt_tas_base.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dbt_tas_get_info()

subroutine, public dbt_tas_base::dbt_tas_get_info ( type(dbt_tas_type), intent(in)  matrix,
integer(kind=int_8), intent(out), optional  nblkrows_total,
integer(kind=int_8), intent(out), optional  nblkcols_total,
integer(kind=int_8), dimension(:), optional, allocatable  local_rows,
integer(kind=int_8), dimension(:), optional, allocatable  local_cols,
class(dbt_tas_distribution), intent(out), optional, allocatable  proc_row_dist,
class(dbt_tas_distribution), intent(out), optional, allocatable  proc_col_dist,
class(dbt_tas_rowcol_data), intent(out), optional, allocatable  row_blk_size,
class(dbt_tas_rowcol_data), intent(out), optional, allocatable  col_blk_size,
type(dbt_tas_distribution_type), optional  distribution,
character(len=*), intent(out), optional  name 
)

...

Parameters
matrix...
nblkrows_total...
nblkcols_total...
local_rows...
local_cols...
proc_row_dist...
proc_col_dist...
row_blk_size...
col_blk_size...
distribution...
name...
Author
Patrick Seewald

Definition at line 994 of file dbt_tas_base.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dbt_tas_put_block()

subroutine, public dbt_tas_base::dbt_tas_put_block ( type(dbt_tas_type), intent(inout)  matrix,
integer(kind=int_8), intent(in)  row,
integer(kind=int_8), intent(in)  col,
real(dp), dimension(:, :), intent(in)  block,
logical, intent(in), optional  summation 
)

As dbm_put_block.

Parameters
matrix...
row...
col...
block...
summation...
Author
Patrick Seewald

Definition at line 1080 of file dbt_tas_base.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dbt_tas_get_block_p()

subroutine, public dbt_tas_base::dbt_tas_get_block_p ( type(dbt_tas_type), intent(inout)  matrix,
integer(kind=int_8), intent(in)  row,
integer(kind=int_8), intent(in)  col,
real(dp), dimension(:, :), pointer  block,
integer, intent(out), optional  row_size,
integer, intent(out), optional  col_size 
)

As dbm_get_block_p.

Parameters
matrix...
row...
col...
block...
row_size...
col_size...
Author
Patrick Seewald

Definition at line 1105 of file dbt_tas_base.F.

Here is the call graph for this function:

◆ dbt_tas_filter()

subroutine, public dbt_tas_base::dbt_tas_filter ( type(dbt_tas_type), intent(inout)  matrix,
real(dp), intent(in)  eps 
)

As dbm_filter.

Parameters
matrix...
eps...
Author
Patrick Seewald

Definition at line 1127 of file dbt_tas_base.F.

Here is the call graph for this function:
Here is the caller graph for this function: