![]() |
(git:d18deda)
|
represent the structure of a full matrix More...
Data Types | |
type | cp_fm_struct_p_type |
type | cp_fm_struct_type |
keeps the information about the structure of a full matrix More... | |
Functions/Subroutines | |
subroutine, public | cp_fm_struct_create (fmstruct, para_env, context, nrow_global, ncol_global, nrow_block, ncol_block, descriptor, first_p_pos, local_leading_dimension, template_fmstruct, square_blocks, force_block) |
allocates and initializes a full matrix structure | |
subroutine, public | cp_fm_struct_retain (fmstruct) |
retains a full matrix structure | |
subroutine, public | cp_fm_struct_release (fmstruct) |
releases a full matrix structure | |
logical function, public | cp_fm_struct_equivalent (fmstruct1, fmstruct2) |
returns true if the two matrix structures are equivalent, false otherwise. | |
subroutine, public | cp_fm_struct_get (fmstruct, para_env, context, descriptor, ncol_block, nrow_block, nrow_global, ncol_global, first_p_pos, row_indices, col_indices, nrow_local, ncol_local, nrow_locals, ncol_locals, local_leading_dimension) |
returns the values of various attributes of the matrix structure | |
subroutine, public | cp_fm_struct_write_info (fmstruct, io_unit) |
Write nicely formatted info about the FM struct to the given I/O unit. | |
subroutine, public | cp_fm_struct_double (fmstruct, struct, context, col, row) |
creates a struct with twice the number of blocks on each core. If matrix A has to be multiplied with B anc C, a significant speedup of pdgemm can be acchieved by joining the matrices in a new one with this structure (see arnoldi in rt_matrix_exp) | |
subroutine, public | cp_fm_struct_config (nrow_block, ncol_block, force_block) |
allows to modify the default settings for matrix creation | |
integer function, public | cp_fm_struct_get_nrow_block () |
... | |
integer function, public | cp_fm_struct_get_ncol_block () |
... | |
represent the structure of a full matrix
subroutine, public cp_fm_struct::cp_fm_struct_create | ( | type(cp_fm_struct_type), pointer | fmstruct, |
type(mp_para_env_type), optional, target | para_env, | ||
type(cp_blacs_env_type), optional, target | context, | ||
integer, intent(in), optional | nrow_global, | ||
integer, intent(in), optional | ncol_global, | ||
integer, intent(in), optional | nrow_block, | ||
integer, intent(in), optional | ncol_block, | ||
integer, dimension(9), intent(in), optional | descriptor, | ||
integer, dimension(2), optional | first_p_pos, | ||
integer, intent(in), optional | local_leading_dimension, | ||
type(cp_fm_struct_type), optional, pointer | template_fmstruct, | ||
logical, intent(in), optional | square_blocks, | ||
logical, intent(in), optional | force_block | ||
) |
allocates and initializes a full matrix structure
fmstruct | the pointer that will point to the new structure |
para_env | the parallel environment |
context | the blacs context of this matrix |
nrow_global | the number of row of the full matrix |
ncol_global | the number of columns of the full matrix |
nrow_block | the number of rows of a block of the matrix, omit or set to -1 to use the built-in defaults |
ncol_block | the number of columns of a block of the matrix, omit or set to -1 to use the built-in defaults |
descriptor | the scalapack descriptor of the matrix (if not given a new one is allocated |
first_p_pos | ... |
local_leading_dimension | the leading dimension of the locally stored data block |
template_fmstruct | a matrix structure where to take the default values |
square_blocks | ... |
force_block | ... |
Definition at line 129 of file cp_fm_struct.F.
subroutine, public cp_fm_struct::cp_fm_struct_retain | ( | type(cp_fm_struct_type), intent(inout) | fmstruct | ) |
retains a full matrix structure
fmstruct | the structure to retain |
Definition at line 336 of file cp_fm_struct.F.
subroutine, public cp_fm_struct::cp_fm_struct_release | ( | type(cp_fm_struct_type), pointer | fmstruct | ) |
releases a full matrix structure
fmstruct | the structure to release |
Definition at line 350 of file cp_fm_struct.F.
logical function, public cp_fm_struct::cp_fm_struct_equivalent | ( | type(cp_fm_struct_type), pointer | fmstruct1, |
type(cp_fm_struct_type), pointer | fmstruct2 | ||
) |
returns true if the two matrix structures are equivalent, false otherwise.
fmstruct1 | one of the full matrix structures to compare |
fmstruct2 | the second of the full matrix structures to compare |
Definition at line 387 of file cp_fm_struct.F.
subroutine, public cp_fm_struct::cp_fm_struct_get | ( | type(cp_fm_struct_type), intent(in) | fmstruct, |
type(mp_para_env_type), optional, pointer | para_env, | ||
type(cp_blacs_env_type), optional, pointer | context, | ||
integer, dimension(9), intent(out), optional | descriptor, | ||
integer, intent(out), optional | ncol_block, | ||
integer, intent(out), optional | nrow_block, | ||
integer, intent(out), optional | nrow_global, | ||
integer, intent(out), optional | ncol_global, | ||
integer, dimension(2), intent(out), optional | first_p_pos, | ||
integer, dimension(:), optional, pointer | row_indices, | ||
integer, dimension(:), optional, pointer | col_indices, | ||
integer, intent(out), optional | nrow_local, | ||
integer, intent(out), optional | ncol_local, | ||
integer, dimension(:), optional, pointer | nrow_locals, | ||
integer, dimension(:), optional, pointer | ncol_locals, | ||
integer, intent(out), optional | local_leading_dimension | ||
) |
returns the values of various attributes of the matrix structure
fmstruct | the structure you want info about |
para_env | ... |
context | ... |
descriptor | ... |
ncol_block | ... |
nrow_block | ... |
nrow_global | ... |
ncol_global | ... |
first_p_pos | ... |
row_indices | ... |
col_indices | ... |
nrow_local | ... |
ncol_local | ... |
nrow_locals | ... |
ncol_locals | ... |
local_leading_dimension | ... |
Definition at line 435 of file cp_fm_struct.F.
subroutine, public cp_fm_struct::cp_fm_struct_write_info | ( | type(cp_fm_struct_type), intent(in) | fmstruct, |
integer, intent(in) | io_unit | ||
) |
Write nicely formatted info about the FM struct to the given I/O unit.
fmstruct | a cp_fm_struct_type instance |
io_unit | the I/O unit to use for writing |
Definition at line 477 of file cp_fm_struct.F.
subroutine, public cp_fm_struct::cp_fm_struct_double | ( | type(cp_fm_struct_type), pointer | fmstruct, |
type(cp_fm_struct_type), intent(inout) | struct, | ||
type(cp_blacs_env_type), intent(inout), target | context, | ||
logical, intent(in) | col, | ||
logical, intent(in) | row | ||
) |
creates a struct with twice the number of blocks on each core. If matrix A has to be multiplied with B anc C, a significant speedup of pdgemm can be acchieved by joining the matrices in a new one with this structure (see arnoldi in rt_matrix_exp)
fmstruct | the struct to create |
struct | struct of either A or B |
context | ... |
col | in which direction the matrix should be enlarged |
row | in which direction the matrix should be enlarged |
Definition at line 522 of file cp_fm_struct.F.
subroutine, public cp_fm_struct::cp_fm_struct_config | ( | integer, intent(in), optional | nrow_block, |
integer, intent(in), optional | ncol_block, | ||
logical, intent(in), optional | force_block | ||
) |
allows to modify the default settings for matrix creation
nrow_block | ... |
ncol_block | ... |
force_block | ... |
Definition at line 618 of file cp_fm_struct.F.
integer function, public cp_fm_struct::cp_fm_struct_get_nrow_block |
...
Definition at line 643 of file cp_fm_struct.F.
integer function, public cp_fm_struct::cp_fm_struct_get_ncol_block |
...
Definition at line 653 of file cp_fm_struct.F.