![]()  | 
  
     (git:298f7c4)
    
   | 
 
Tall-and-skinny matrices: base routines similar to DBM API, mostly wrappers around existing DBM routines. More...
Data Types | |
| interface | dbt_tas_create | 
| interface | dbt_tas_iterator_next_block | 
| interface | dbt_tas_reserve_blocks | 
Functions/Subroutines | |
| subroutine, public | dbt_tas_destroy (matrix) | 
| ...   | |
| subroutine, public | dbt_tas_copy (matrix_b, matrix_a, summation) | 
| Copy matrix_a to matrix_b.   | |
| subroutine, public | dbt_tas_finalize (matrix) | 
| ...   | |
| 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.   | |
| subroutine, public | dbt_tas_distribution_destroy (dist) | 
| ...   | |
| subroutine, public | dbt_tas_get_stored_coordinates (matrix, row, column, processor) | 
| As dbt_get_stored_coordinates.   | |
| 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.   | |
| 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.   | |
| subroutine, public | dbt_tas_convert_to_tas (info, matrix_rect, matrix_dbm) | 
| Converts a DBM matrix into the tall-and-skinny matrix type.   | |
| subroutine, public | dbt_tas_iterator_start (iter, matrix_in) | 
| As dbm_iterator_start.   | |
| integer function, public | dbt_tas_iterator_num_blocks (iter) | 
| As dbm_iterator_num_blocks.   | |
| logical function, public | dbt_tas_iterator_blocks_left (iter) | 
| As dbm_iterator_blocks_left.   | |
| subroutine, public | dbt_tas_iterator_stop (iter) | 
| As dbm_iterator_stop.   | |
| subroutine, public | dbt_tas_blk_sizes (matrix, row, col, row_size, col_size) | 
| Get block size for a given row & column.   | |
| type(dbt_tas_split_info) function, pointer, public | dbt_tas_info (matrix) | 
| get info on mpi grid splitting   | |
| pure integer(kind=int_8) function, public | dbt_tas_nblkrows_total (matrix) | 
| ...   | |
| pure integer(kind=int_8) function, public | dbt_tas_nfullrows_total (matrix) | 
| ...   | |
| pure integer(kind=int_8) function, public | dbt_tas_nblkcols_total (matrix) | 
| ...   | |
| pure integer(kind=int_8) function, public | dbt_tas_nfullcols_total (matrix) | 
| ...   | |
| integer function, public | dbt_tas_nblkcols_local (matrix) | 
| ...   | |
| integer function, public | dbt_tas_nblkrows_local (matrix) | 
| ...   | |
| pure integer function, public | dbt_tas_get_num_blocks (matrix) | 
| As dbt_get_num_blocks: get number of local blocks.   | |
| integer(kind=int_8) function, public | dbt_tas_get_num_blocks_total (matrix) | 
| get total number of blocks   | |
| pure integer function, public | dbt_tas_get_nze (matrix) | 
| As dbt_get_nze: get number of local non-zero elements.   | |
| integer(kind=int_8) function, public | dbt_tas_get_nze_total (matrix) | 
| Get total number of non-zero elements.   | |
| subroutine, public | dbt_tas_clear (matrix) | 
| Clear matrix (erase all data)   | |
| 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) | 
| ...   | |
| subroutine, public | dbt_tas_put_block (matrix, row, col, block, summation) | 
| As dbm_put_block.   | |
| subroutine, public | dbt_tas_get_block_p (matrix, row, col, block, row_size, col_size) | 
| As dbm_get_block_p.   | |
| subroutine, public | dbt_tas_filter (matrix, eps) | 
| As dbm_filter.   | |
Tall-and-skinny matrices: base routines similar to DBM API, mostly wrappers around existing DBM routines.
| subroutine, public dbt_tas_base::dbt_tas_destroy | ( | type(dbt_tas_type), intent(inout) | matrix | ) | 
...
| matrix | ... | 
Definition at line 232 of file dbt_tas_base.F.
| 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.
| matrix_b | ... | 
| matrix_a | ... | 
| summation | Whether to sum matrices b = a + b | 
Definition at line 249 of file dbt_tas_base.F.
| subroutine, public dbt_tas_base::dbt_tas_finalize | ( | type(dbt_tas_type), intent(inout) | matrix | ) | 
...
| matrix | ... | 
Definition at line 326 of file dbt_tas_base.F.
| 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.
| dist | ... | 
| mp_comm | ... | 
| row_dist | ... | 
| col_dist | ... | 
| split_info | Strategy of how to split process grid (optional). If not present a default split heuristic is applied. | 
| nosplit | if .TRUE. don't split process grid (optional) | 
Definition at line 345 of file dbt_tas_base.F.
| subroutine, public dbt_tas_base::dbt_tas_distribution_destroy | ( | type(dbt_tas_distribution_type), intent(inout) | dist | ) | 
...
| dist | ... | 
Definition at line 432 of file dbt_tas_base.F.
| 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.
| matrix | ... | 
| row | global matrix blocked row | 
| column | global matrix blocked column | 
| processor | process ID | 
Definition at line 461 of file dbt_tas_base.F.
| 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.
| matrix | tall-and-skinny matrix whose DBM submatrices are replicated matrices | 
| row | row of a submatrix | 
| column | column of a submatrix | 
| processors | ... | 
Definition at line 487 of file dbt_tas_base.F.
| 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.
| matrix_rect | ... | 
| matrix_dbm | ... | 
Definition at line 523 of file dbt_tas_base.F.
| 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.
| info | Strategy of how to split process grid | 
| matrix_rect | ... | 
| matrix_dbm | ... | 
Definition at line 607 of file dbt_tas_base.F.
| 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.
| iter | ... | 
| matrix_in | ... | 
Definition at line 669 of file dbt_tas_base.F.
| integer function, public dbt_tas_base::dbt_tas_iterator_num_blocks | ( | type(dbt_tas_iterator), intent(in) | iter | ) | 
As dbm_iterator_num_blocks.
| iter | ... | 
Definition at line 684 of file dbt_tas_base.F.
| logical function, public dbt_tas_base::dbt_tas_iterator_blocks_left | ( | type(dbt_tas_iterator), intent(in) | iter | ) | 
As dbm_iterator_blocks_left.
| iter | ... | 
Definition at line 697 of file dbt_tas_base.F.
| subroutine, public dbt_tas_base::dbt_tas_iterator_stop | ( | type(dbt_tas_iterator), intent(inout) | iter | ) | 
As dbm_iterator_stop.
| iter | ... | 
Definition at line 709 of file dbt_tas_base.F.
| 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.
| matrix | ... | 
| row | ... | 
| col | ... | 
| row_size | ... | 
| col_size | ... | 
Definition at line 809 of file dbt_tas_base.F.
| type(dbt_tas_split_info) function, pointer, public dbt_tas_base::dbt_tas_info | ( | type(dbt_tas_type), intent(in), target | matrix | ) | 
get info on mpi grid splitting
| matrix | ... | 
Definition at line 824 of file dbt_tas_base.F.
| pure integer(kind=int_8) function, public dbt_tas_base::dbt_tas_nblkrows_total | ( | type(dbt_tas_type), intent(in) | matrix | ) | 
...
| matrix | ... | 
Definition at line 837 of file dbt_tas_base.F.
| pure integer(kind=int_8) function, public dbt_tas_base::dbt_tas_nfullrows_total | ( | type(dbt_tas_type), intent(in) | matrix | ) | 
| pure integer(kind=int_8) function, public dbt_tas_base::dbt_tas_nblkcols_total | ( | type(dbt_tas_type), intent(in) | matrix | ) | 
...
| matrix | ... | 
Definition at line 863 of file dbt_tas_base.F.
| pure integer(kind=int_8) function, public dbt_tas_base::dbt_tas_nfullcols_total | ( | type(dbt_tas_type), intent(in) | matrix | ) | 
| integer function, public dbt_tas_base::dbt_tas_nblkcols_local | ( | type(dbt_tas_type), intent(in) | matrix | ) | 
...
| matrix | ... | 
Definition at line 889 of file dbt_tas_base.F.
| integer function, public dbt_tas_base::dbt_tas_nblkrows_local | ( | type(dbt_tas_type), intent(in) | matrix | ) | 
...
| matrix | ... | 
Definition at line 902 of file dbt_tas_base.F.
| 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.
| matrix | ... | 
Definition at line 915 of file dbt_tas_base.F.
| 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
| matrix | ... | 
Definition at line 928 of file dbt_tas_base.F.
| 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.
| matrix | ... | 
Definition at line 946 of file dbt_tas_base.F.
| 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.
| matrix | ... | 
Definition at line 960 of file dbt_tas_base.F.
| subroutine, public dbt_tas_base::dbt_tas_clear | ( | type(dbt_tas_type), intent(inout) | matrix | ) | 
Clear matrix (erase all data)
| matrix | ... | 
Definition at line 976 of file dbt_tas_base.F.
| 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 | ||
| ) | 
...
| matrix | ... | 
| nblkrows_total | ... | 
| nblkcols_total | ... | 
| local_rows | ... | 
| local_cols | ... | 
| proc_row_dist | ... | 
| proc_col_dist | ... | 
| row_blk_size | ... | 
| col_blk_size | ... | 
| distribution | ... | 
| name | ... | 
Definition at line 997 of file dbt_tas_base.F.
| 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.
| matrix | ... | 
| row | ... | 
| col | ... | 
| block | ... | 
| summation | ... | 
Definition at line 1083 of file dbt_tas_base.F.
| 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.
| matrix | ... | 
| row | ... | 
| col | ... | 
| block | ... | 
| row_size | ... | 
| col_size | ... | 
Definition at line 1108 of file dbt_tas_base.F.
| subroutine, public dbt_tas_base::dbt_tas_filter | ( | type(dbt_tas_type), intent(inout) | matrix, | 
| real(dp), intent(in) | eps | ||
| ) | 
As dbm_filter.
| matrix | ... | 
| eps | ... | 
Definition at line 1130 of file dbt_tas_base.F.