![]() |
(git:07c9450)
|
tensor index and mapping to DBM index More...
Data Types | |
| type | nd_to_2d_mapping |
Functions/Subroutines | |
| subroutine, public | create_nd_to_2d_mapping (map, dims, map1_2d, map2_2d, base, col_major) |
| Create all data needed to quickly map between nd index and 2d index. | |
| subroutine, public | destroy_nd_to_2d_mapping (map) |
| pure integer function, public | ndims_mapping (map) |
| pure integer function, public | ndims_mapping_row (map) |
| how many tensor dimensions are mapped to matrix row | |
| pure integer function, public | ndims_mapping_column (map) |
| how many tensor dimensions are mapped to matrix column | |
| pure subroutine, public | dbt_get_mapping_info (map, ndim_nd, ndim1_2d, ndim2_2d, dims_2d_i8, dims_2d, dims_nd, dims1_2d, dims2_2d, map1_2d, map2_2d, map_nd, base, col_major) |
| get mapping info | |
| pure integer(kind=int_8) function, public | combine_tensor_index (ind_in, dims) |
| transform nd index to flat index | |
| pure integer function, public | combine_pgrid_index (ind_in, dims) |
| transform nd index to flat index | |
| pure integer function, dimension(size(dims)), public | split_tensor_index (ind_in, dims) |
| transform flat index to nd index | |
| pure integer function, dimension(size(dims)), public | split_pgrid_index (ind_in, dims) |
| transform flat index to nd index | |
| pure integer(kind=int_8) function, dimension(2), public | get_2d_indices_tensor (map, ind_in) |
| transform nd index to 2d index, using info from index mapping. | |
| pure integer function, dimension(2), public | get_2d_indices_pgrid (map, ind_in) |
| transform nd index to 2d index, using info from index mapping. | |
| pure integer function, dimension(map%ndim_nd), public | get_nd_indices_tensor (map, ind_in) |
| transform 2d index to nd index, using info from index mapping. | |
| pure integer function, dimension(map%ndim_nd), public | get_nd_indices_pgrid (map, ind_in) |
| transform 2d index to nd index, using info from index mapping. | |
| pure integer function, dimension(size(order)), public | dbt_inverse_order (order) |
| Invert order. | |
| subroutine, public | permute_index (map_in, map_out, order) |
| reorder tensor index (no data) | |
tensor index and mapping to DBM index
| subroutine, public dbt_index::create_nd_to_2d_mapping | ( | type(nd_to_2d_mapping), intent(out) | map, |
| integer, dimension(:), intent(in) | dims, | ||
| integer, dimension(:), intent(in) | map1_2d, | ||
| integer, dimension(:), intent(in) | map2_2d, | ||
| integer, intent(in), optional | base, | ||
| logical, intent(in), optional | col_major | ||
| ) |
Create all data needed to quickly map between nd index and 2d index.
| map | index mapping data |
| dims | nd sizes |
| map1_2d | which nd-indices map to first matrix index and in which order |
| map2_2d | which nd-indices map to second matrix index and in which order |
| base | base index (1 for Fortran-style, 0 for C-style, default is 1) |
| col_major | whether index should be column major order (.TRUE. for Fortran-style, .FALSE. for C-style, default is .TRUE.). |
Definition at line 72 of file dbt_index.F.
| subroutine, public dbt_index::destroy_nd_to_2d_mapping | ( | type(nd_to_2d_mapping), intent(inout) | map | ) |
| pure integer function, public dbt_index::ndims_mapping | ( | type(nd_to_2d_mapping), intent(in) | map | ) |
Definition at line 129 of file dbt_index.F.
| pure integer function, public dbt_index::ndims_mapping_row | ( | type(nd_to_2d_mapping), intent(in) | map | ) |
how many tensor dimensions are mapped to matrix row
Definition at line 140 of file dbt_index.F.
| pure integer function, public dbt_index::ndims_mapping_column | ( | type(nd_to_2d_mapping), intent(in) | map | ) |
how many tensor dimensions are mapped to matrix column
Definition at line 150 of file dbt_index.F.
| pure subroutine, public dbt_index::dbt_get_mapping_info | ( | type(nd_to_2d_mapping), intent(in) | map, |
| integer, intent(out), optional | ndim_nd, | ||
| integer, intent(out), optional | ndim1_2d, | ||
| integer, intent(out), optional | ndim2_2d, | ||
| integer(kind=int_8), dimension(2), intent(out), optional | dims_2d_i8, | ||
| integer, dimension(2), intent(out), optional | dims_2d, | ||
| integer, dimension(ndims_mapping(map)), intent(out), optional | dims_nd, | ||
| integer, dimension(ndims_mapping_row(map)), intent(out), optional | dims1_2d, | ||
| integer, dimension(ndims_mapping_column(map)), intent(out), optional | dims2_2d, | ||
| integer, dimension(ndims_mapping_row(map)), intent(out), optional | map1_2d, | ||
| integer, dimension(ndims_mapping_column(map)), intent(out), optional | map2_2d, | ||
| integer, dimension(ndims_mapping(map)), intent(out), optional | map_nd, | ||
| integer, intent(out), optional | base, | ||
| logical, intent(out), optional | col_major | ||
| ) |
get mapping info
| map | index mapping data |
| ndim_nd | number of dimensions |
| ndim1_2d | number of dimensions that map to first 2d index |
| ndim2_2d | number of dimensions that map to first 2d index |
| dims_2d | 2d dimensions |
| dims_nd | nd dimensions |
| dims1_2d | dimensions that map to first 2d index |
| dims2_2d | dimensions that map to second 2d index |
| map1_2d | indices that map to first 2d index |
| map2_2d | indices that map to second 2d index |
| map_nd | inverse of [map1_2d, map2_2d] |
| base | base index |
| col_major | is index in column major order |
Definition at line 173 of file dbt_index.F.
| pure integer(kind=int_8) function, public dbt_index::combine_tensor_index | ( | integer, dimension(:), intent(in) | ind_in, |
| integer, dimension(:), intent(in) | dims | ||
| ) |
transform nd index to flat index
| ind_in | nd index |
| dims | nd dimensions |
| ind_out | flat index |
Definition at line 234 of file dbt_index.F.
| pure integer function, public dbt_index::combine_pgrid_index | ( | integer, dimension(:), intent(in) | ind_in, |
| integer, dimension(:), intent(in) | dims | ||
| ) |
transform nd index to flat index
| ind_in | nd index |
| dims | nd dimensions |
| ind_out | flat index |
Definition at line 253 of file dbt_index.F.
| pure integer function, dimension(size(dims)), public dbt_index::split_tensor_index | ( | integer(kind=int_8), intent(in) | ind_in, |
| integer, dimension(:), intent(in) | dims | ||
| ) |
transform flat index to nd index
| ind_in | flat index |
| dims | nd dimensions |
| ind_out | nd index |
Definition at line 272 of file dbt_index.F.
| pure integer function, dimension(size(dims)), public dbt_index::split_pgrid_index | ( | integer, intent(in) | ind_in, |
| integer, dimension(:), intent(in) | dims | ||
| ) |
transform flat index to nd index
| ind_in | flat index |
| dims | nd dimensions |
| ind_out | nd index |
Definition at line 295 of file dbt_index.F.
| pure integer(kind=int_8) function, dimension(2), public dbt_index::get_2d_indices_tensor | ( | type(nd_to_2d_mapping), intent(in) | map, |
| integer, dimension(map%ndim_nd), intent(in) | ind_in | ||
| ) |
transform nd index to 2d index, using info from index mapping.
| map | index mapping |
| ind_in | nd index |
| ind_out | 2d index |
Definition at line 317 of file dbt_index.F.
| pure integer function, dimension(2), public dbt_index::get_2d_indices_pgrid | ( | type(nd_to_2d_mapping), intent(in) | map, |
| integer, dimension(map%ndim_nd), intent(in) | ind_in | ||
| ) |
transform nd index to 2d index, using info from index mapping.
| map | index mapping |
| ind_in | nd index |
| ind_out | 2d index |
Definition at line 342 of file dbt_index.F.
| pure integer function, dimension(map%ndim_nd), public dbt_index::get_nd_indices_tensor | ( | type(nd_to_2d_mapping), intent(in) | map, |
| integer(kind=int_8), dimension(2), intent(in) | ind_in | ||
| ) |
transform 2d index to nd index, using info from index mapping.
| map | index mapping |
| ind_in | 2d index |
| ind_out | nd index |
Definition at line 367 of file dbt_index.F.
| pure integer function, dimension(map%ndim_nd), public dbt_index::get_nd_indices_pgrid | ( | type(nd_to_2d_mapping), intent(in) | map, |
| integer, dimension(2), intent(in) | ind_in | ||
| ) |
transform 2d index to nd index, using info from index mapping.
| map | index mapping |
| ind_in | 2d index |
| ind_out | nd index |
Definition at line 395 of file dbt_index.F.
| pure integer function, dimension(size(order)), public dbt_index::dbt_inverse_order | ( | integer, dimension(:), intent(in) | order | ) |
Invert order.
Definition at line 409 of file dbt_index.F.
| subroutine, public dbt_index::permute_index | ( | type(nd_to_2d_mapping), intent(in) | map_in, |
| type(nd_to_2d_mapping), intent(out) | map_out, | ||
| integer, dimension(ndims_mapping(map_in)), intent(in) | order | ||
| ) |
reorder tensor index (no data)
Definition at line 422 of file dbt_index.F.