![]() |
(git:b77b4be)
|
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.