Functions/Subroutines | |
subroutine | z_matvec_user_c (trans, M, N, num_vect, Vin, Vout, ker) |
****** Fortran interface for the matvec function required by z_BPACK_construction_Matvec, inside which a c++ function pointer kerC_FuncHMatVec is called ******! It is assumed the kerC_FuncHMatVec interfaces with local input and output vectors, which assume an already ordered hierarchical matrix More... | |
subroutine | z_matvec_user_c_md (Ndim, trans, M, N, num_vect, Vin, Vout, ker) |
****** Fortran interface for the matvec function required by z_BPACK_construction_Matvec, inside which a c++ function pointer kerC_FuncHMatVec is called ******! It is assumed the kerC_FuncHMatVec interfaces with local input and output vectors, which assume an already ordered hierarchical matrix More... | |
subroutine | z_bmatvec_user_c (ker, block_o, trans, M, N, num_vect, Vin, ldi, Vout, ldo, a, b, ptree, stats, operand1) |
****** Fortran interface for the matvec function required by z_BF_randomized, inside which a c++ function pointer kerC_FuncBMatVec is called ******! It is assumed the kerC_FuncBMatVec does not need ldi and ldo! ******! It is assumed the kerC_FuncBMatVec interfaces with local input and output vectors, which assume already ordered rows/columns More... | |
subroutine | z_c_bpack_createptree (nmpi, groupmembers, MPIcomm, ptree_Cptr) |
**** C interface of process tree construction More... | |
subroutine | z_c_bpack_createstats (stats_Cptr) |
**** C interface of initializing statistics More... | |
subroutine | z_c_bpack_getstats (stats_Cptr, nam, val_d) |
**** C interface of getting one entry in stats More... | |
subroutine | z_c_bpack_printstats (stats_Cptr, ptree_Cptr) |
**** C interface of printing statistics More... | |
subroutine | z_c_bpack_createoption (option_Cptr) |
**** C interface of initializing option More... | |
subroutine | z_c_bpack_copyoption (option_Cptr, option_Cptr1) |
**** C interface of copy option More... | |
subroutine | z_c_bpack_printoption (option_Cptr, ptree_Cptr) |
**** C interface of printing option More... | |
subroutine | z_c_bpack_getoption (option_Cptr, nam, val_d) |
**** C interface of getting one entry in option, always returning double More... | |
subroutine | z_c_bpack_setoption (option_Cptr, nam, val_Cptr) |
**** C interface of set one entry in option More... | |
subroutine | z_c_bpack_construct_element_compute (bmat_Cptr, option_Cptr, stats_Cptr, msh_Cptr, ker_Cptr, ptree_Cptr, C_FuncZmn, C_FuncZmnBlock, C_QuantApp) |
**** C interface of matrix construction More... | |
subroutine | z_c_bpack_md_construct_element_compute (Ndim, bmat_Cptr, option_Cptr, stats_Cptr, msh_Cptr, ker_Cptr, ptree_Cptr, C_FuncZmn_MD, C_QuantApp) |
**** C interface of tensor construction More... | |
subroutine | z_c_bpack_construct_init (N, Ndim, Locations, nns, nlevel, tree, Permutation, N_loc, bmat_Cptr, option_Cptr, stats_Cptr, msh_Cptr, ker_Cptr, ptree_Cptr, C_FuncDistmn, C_FuncNearFar, C_QuantApp) |
**** C interface of matrix construction via entry evaluation More... | |
subroutine | z_c_bpack_md_construct_init (Ns, Nmax, Ndim, Locations, Permutation, N_loc, bmat_Cptr, option_Cptr, stats_Cptr, msh_Cptr, ker_Cptr, ptree_Cptr, C_FuncNearFar_MD, C_QuantApp) |
**** C interface of multi-dimensional BF construction via entry evaluation More... | |
subroutine | z_c_bpack_new2old (msh_Cptr, newidx_loc, oldidx) |
**** C interface of converting from new,local index to old, global index, the indexs start from 1 More... | |
subroutine | z_c_bpack_md_new2old (Ndim, msh_Cptr, newidx_loc, oldidx) |
**** C interface of converting from new,local index to old, global index, the indexs start from 1. Both newidx_loc and oldidx are Ndim dimensional. More... | |
subroutine | z_c_singleindextomultiindex (Ndim, dims, single_index_in, multi_index) |
**** C interface of Fortran subroutine z_SingleIndexToMultiIndex for converting single index to multi-index More... | |
subroutine | z_c_multiindextosingleindex (Ndim, dims, single_index_in, multi_index) |
**** C interface of Fortran subroutine z_MultiIndexToSingleIndex for converting multi-index to single index More... | |
subroutine | z_c_bf_new2old_row (mshr_Cptr, newidx_loc, oldidx) |
**** C interface of converting from new,local index to old, global index, the indexs start from 1 More... | |
subroutine | z_c_bf_new2old_col (mshc_Cptr, newidx_loc, oldidx) |
**** C interface of converting from new,local index to old, global index, the indexs start from 1 More... | |
subroutine | z_c_bpack_construct_init_gram (N, Ndim, Locations, nns, nlevel, tree, Permutation, N_loc, bmat_Cptr, option_Cptr, stats_Cptr, msh_Cptr, ker_Cptr, ptree_Cptr, C_FuncZmn, C_FuncZmnBlock, C_QuantApp) |
**** C interface of matrix construction via entry evaluation and using it for gram distance More... | |
subroutine | z_c_bpack_construct_matvec_compute (bmat_Cptr, option_Cptr, stats_Cptr, msh_Cptr, ker_Cptr, ptree_Cptr, C_FuncHMatVec, C_QuantApp) |
**** C interface of matrix construction via blackbox matvec More... | |
subroutine | z_c_bf_construct_init (M, N, M_loc, N_loc, nnsr, nnsc, mshr_Cptr, mshc_Cptr, bf_Cptr, option_Cptr, stats_Cptr, msh_Cptr, ker_Cptr, ptree_Cptr, C_FuncDistmn, C_FuncNearFar, C_QuantApp) |
**** C interface of BF construction via blackbox matvec or entry extraction More... | |
subroutine | z_c_bf_construct_matvec_compute (bf_Cptr, option_Cptr, stats_Cptr, msh_Cptr, ker_Cptr, ptree_Cptr, C_FuncBMatVec, C_QuantApp) |
**** C interface of BF construction via blackbox matvec More... | |
subroutine | z_c_bf_construct_element_compute (bf_Cptr, option_Cptr, stats_Cptr, msh_Cptr, ker_Cptr, ptree_Cptr, C_FuncZmn, C_FuncZmnBlock, C_QuantApp) |
**** C interface of BF construction via entry extraction More... | |
subroutine | z_c_bpack_factor (bmat_Cptr, option_Cptr, stats_Cptr, ptree_Cptr, msh_Cptr) |
**** C interface of BPACK factorization More... | |
subroutine | z_c_bpack_solve (x, b, Nloc, Nrhs, bmat_Cptr, option_Cptr, stats_Cptr, ptree_Cptr) |
**** C interface of BPACK solve More... | |
subroutine | z_c_bpack_md_solve (Ndim, x, b, Nloc, Nrhs, bmat_Cptr, option_Cptr, stats_Cptr, ptree_Cptr, msh_Cptr) |
**** C interface of H-tensor solve More... | |
subroutine | z_c_bpack_tfqmr_noprecon (x, b, Nloc, Nrhs, option_Cptr, stats_Cptr, ptree_Cptr, ker_Cptr, C_FuncHMatVec, C_QuantApp) |
**** C interface of a blackbox tfqmr without preconditioner, or assuming preconditioner is applied in the blackbox matvec More... | |
subroutine | z_c_bpack_md_tfqmr_noprecon (Ndim, x, b, Nloc, Nrhs, option_Cptr, stats_Cptr, ptree_Cptr, ker_Cptr, C_FuncHMatVec_MD, C_QuantApp) |
**** C interface of a blackbox tfqmr without preconditioner, or assuming preconditioner is applied in the blackbox matvec (tensor) More... | |
subroutine | z_c_bf_mult (trans, xin, xout, Ninloc, Noutloc, Ncol, bf_for_Cptr, option_Cptr, stats_Cptr, ptree_Cptr) |
**** C interface of butterfly-vector multiplication More... | |
subroutine | z_c_bf_extractelement (block_Cptr, option_Cptr, msh_Cptr, stats_Cptr, ptree_Cptr, Ninter, Nallrows, Nallcols, Nalldat_loc, allrows, allcols, alldat_loc, rowidx, colidx, pgidx, Npmap, pmaps) |
**** C interface of parallel extraction of a z_list of intersections from a block More... | |
subroutine | z_c_bpack_extractelement (bmat_Cptr, option_Cptr, msh_Cptr, stats_Cptr, ptree_Cptr, Ninter, Nallrows, Nallcols, Nalldat_loc, allrows, allcols, alldat_loc, rowidx, colidx, pgidx, Npmap, pmaps) |
**** C interface of parallel extraction of a z_list of intersections from a Bmat matrix More... | |
subroutine | z_c_bpack_mult (trans, xin, xout, Ninloc, Noutloc, Ncol, bmat_Cptr, option_Cptr, stats_Cptr, ptree_Cptr) |
**** C interface of BPACK-vector multiplication More... | |
subroutine | z_c_bpack_md_mult (Ndim, trans, xin, xout, Ninloc, Noutloc, Ncol, bmat_Cptr, option_Cptr, stats_Cptr, ptree_Cptr, msh_Cptr) |
**** C interface of z_BPACK_MD_Mult for BPACK_MD-vector multiply More... | |
subroutine | z_c_bpack_inv_mult (trans, xin, xout, Ninloc, Noutloc, Ncol, bmat_Cptr, option_Cptr, stats_Cptr, ptree_Cptr) |
**** C interface of BPACK(inverse)-vector multiplication More... | |
subroutine | z_c_bpack_deletestats (stats_Cptr) |
**** C interface of deleting statistics More... | |
subroutine | z_c_bpack_deleteproctree (ptree_Cptr) |
**** C interface of deleting process tree More... | |
subroutine | z_c_bpack_deletemesh (msh_Cptr) |
**** C interface of deleting z_mesh More... | |
subroutine | z_c_bpack_deletekernelquant (ker_Cptr) |
**** C interface of deleting z_kernelquant More... | |
subroutine | z_c_bpack_delete (bmat_Cptr) |
**** C interface of deleting HOBF More... | |
subroutine | z_c_bf_deletebf (bf_Cptr) |
**** C interface of deleting a BF More... | |
subroutine | z_c_bpack_deleteoption (option_Cptr) |
**** C interface of deleting z_Hoption More... | |
subroutine | z_c_bpack_getversionnumber (v_major, v_minor, v_bugfix) |
**** C interface of getting the version number of ButterflyPACK More... | |
subroutine | z_c_bpack_treeindex_merged2child (idx_merge, idx_child) |
**** C interface of converting the tree index to the index in one of its two child trees More... | |
subroutine z_bpack_wrapper::z_bmatvec_user_c | ( | class(*) | ker, |
type(z_matrixblock) | block_o, | ||
character | trans, | ||
integer | M, | ||
integer | N, | ||
integer | num_vect, | ||
complex(kind=8), dimension(ldi, *) | Vin, | ||
integer | ldi, | ||
complex(kind=8), dimension(ldo, *) | Vout, | ||
integer | ldo, | ||
complex(kind=8) | a, | ||
complex(kind=8) | b, | ||
type(z_proctree) | ptree, | ||
type(z_hstat) | stats, | ||
class(*), optional | operand1 | ||
) |
****** Fortran interface for the matvec function required by z_BF_randomized, inside which a c++ function pointer kerC_FuncBMatVec is called
******! It is assumed the kerC_FuncBMatVec does not need ldi and ldo!
******! It is assumed the kerC_FuncBMatVec interfaces with local input and output vectors, which assume already ordered rows/columns
ker | the structure containing kernel quantities |
block_o | not referenced |
trans | 'N', 'C' or 'T' |
M | (local) row dimension of the block |
N | (local) column dimension of the block |
num_vect | number of vectors |
Vin | input vector |
ldi | leading dimension of Vin, needs to be M or N depending on trans |
Vout | output vector |
ldo | leading dimension of Vout, needs to be M or N depending on trans |
a | Vout = a*A*Vin + b*Vout |
b | Vout = a*A*Vin + b*Vout |
ptree | the structure containing process tree |
stats | the structure containing statistics |
operand1 | not referenced |
subroutine z_bpack_wrapper::z_c_bf_construct_element_compute | ( | type(c_ptr) | bf_Cptr, |
type(c_ptr) | option_Cptr, | ||
type(c_ptr) | stats_Cptr, | ||
type(c_ptr) | msh_Cptr, | ||
type(c_ptr) | ker_Cptr, | ||
type(c_ptr) | ptree_Cptr, | ||
type(c_funptr), intent(in), target, value | C_FuncZmn, | ||
type(c_funptr), intent(in), target, value | C_FuncZmnBlock, | ||
type(c_ptr), intent(in), target | C_QuantApp | ||
) |
**** C interface of BF construction via entry extraction
bf_Cptr | the structure containing the block (inout) |
option_Cptr | the structure containing option (in) |
stats_Cptr | the structure containing statistics (inout) |
msh_Cptr | the structure containing points and ordering information (in) |
ker_Cptr | the structure containing kernel quantities (inout) |
ptree_Cptr | the structure containing process tree (in) |
C_FuncZmn | the C_pointer to user-provided function to sample mn^th entry of a block (in) |
C_FuncZmnBlock | the C_pointer to user-provided function to extract a z_list of intersections from a block (in) |
C_QuantApp | the C_pointer to user-defined quantities required to for entry evaluation,sampling,distance and compressibility test (in) |
**** allocate BPACK solver structures
**** delete neighours in msh
**** return the C address of BPACK structures to C caller
subroutine z_bpack_wrapper::z_c_bf_construct_init | ( | integer | M, |
integer | N, | ||
integer | M_loc, | ||
integer | N_loc, | ||
integer, dimension(*) | nnsr, | ||
integer, dimension(*) | nnsc, | ||
type(c_ptr) | mshr_Cptr, | ||
type(c_ptr) | mshc_Cptr, | ||
type(c_ptr) | bf_Cptr, | ||
type(c_ptr) | option_Cptr, | ||
type(c_ptr) | stats_Cptr, | ||
type(c_ptr) | msh_Cptr, | ||
type(c_ptr) | ker_Cptr, | ||
type(c_ptr) | ptree_Cptr, | ||
type(c_funptr), intent(in), target, value | C_FuncDistmn, | ||
type(c_funptr), intent(in), target, value | C_FuncNearFar, | ||
type(c_ptr), intent(in), target | C_QuantApp | ||
) |
**** C interface of BF construction via blackbox matvec or entry extraction
M,N | matrix size (in) |
M_loc,N_loc | number of local row/column indices (out) |
nnsr | (DIM knn*M) nearest neighbours(indexed from 1 to N) for each row (from 1 to M) provided by user (referenced if nogeo=3 or 4) |
nnsc | (DIM knn*N) nearest neighbours(indexed from 1 to M) for each column (from 1 to N) provided by user (referenced if nogeo=3 or 4) |
bf_Cptr | the structure containing the block (out) |
option_Cptr | the structure containing option (in) |
stats_Cptr | the structure containing statistics (inout) |
msh_Cptr | the structure containing points and ordering information combined from mshr_Cptr and mshc_Cptr (out) |
mshr_Cptr | the structure containing points and ordering information for the row dimension (in) |
mshc_Cptr | the structure containing points and ordering information for the column dimension (in) |
ker_Cptr | the structure containing kernel quantities (out) |
ptree_Cptr | the structure containing process tree (in) |
C_FuncDistmn | the C_pointer to user-provided function to compute distance between any row and column of the matrix |
C_FuncNearFar | the C_pointer to user-provided function to determine whether a block (in permuted order) is compressible or not |
C_QuantApp | the C_pointer to user-defined quantities required to for entry evaluation,sampling,distance and compressibility test (in) |
**** allocate BPACK solver structures
**** create a random seed
**** register the user-defined function and type in ker
**** generate mshxyz(1:Dimn,-N:M), needed in KNN
**** construct a z_list of k-nearest neighbours for each point
**** return the C address of BPACK structures to C caller
subroutine z_bpack_wrapper::z_c_bf_construct_matvec_compute | ( | type(c_ptr) | bf_Cptr, |
type(c_ptr) | option_Cptr, | ||
type(c_ptr) | stats_Cptr, | ||
type(c_ptr) | msh_Cptr, | ||
type(c_ptr) | ker_Cptr, | ||
type(c_ptr) | ptree_Cptr, | ||
type(c_funptr), intent(in), target, value | C_FuncBMatVec, | ||
type(c_ptr), intent(in), target | C_QuantApp | ||
) |
**** C interface of BF construction via blackbox matvec
bf_Cptr | the structure containing the block (inout) |
option_Cptr | the structure containing option (in) |
stats_Cptr | the structure containing statistics (inout) |
msh_Cptr | the structure containing points and ordering information (in) |
ker_Cptr | the structure containing kernel quantities (inout) |
ptree_Cptr | the structure containing process tree (in) |
C_FuncBMatVec | the C_pointer to user-provided function to multiply A and A* with vectors (in) |
C_QuantApp | the C_pointer to user-defined quantities required to for entry evaluation,sampling,distance and compressibility test (in) |
**** allocate BPACK solver structures
**** return the C address of BPACK structures to C caller
subroutine z_bpack_wrapper::z_c_bf_deletebf | ( | type(c_ptr), intent(inout) | bf_Cptr | ) |
**** C interface of deleting a BF
bf_Cptr | the structure containing BF |
subroutine z_bpack_wrapper::z_c_bf_extractelement | ( | type(c_ptr), intent(in) | block_Cptr, |
type(c_ptr), intent(in) | option_Cptr, | ||
type(c_ptr), intent(in) | msh_Cptr, | ||
type(c_ptr), intent(in) | stats_Cptr, | ||
type(c_ptr), intent(in) | ptree_Cptr, | ||
integer | Ninter, | ||
integer | Nallrows, | ||
integer | Nallcols, | ||
integer*8 | Nalldat_loc, | ||
integer, dimension(nallrows) | allrows, | ||
integer, dimension(nallcols) | allcols, | ||
complex(kind=8), dimension(nalldat_loc), target | alldat_loc, | ||
integer, dimension(ninter) | rowidx, | ||
integer, dimension(ninter) | colidx, | ||
integer, dimension(ninter) | pgidx, | ||
integer | Npmap, | ||
integer, dimension(npmap, 3) | pmaps | ||
) |
**** C interface of parallel extraction of a z_list of intersections from a block
block_Cptr | the structure containing the block |
option_Cptr | the structure containing option |
stats_Cptr | the structure containing statistics |
ptree_Cptr | the structure containing process tree |
msh_Cptr | the structure containing points and ordering information |
pgidx | 1D array containing the process group number of each intersection, the number starts from 0 |
Npmap | number of process groups |
pmaps | 2D array (Npmapx3) containing number of process rows, number of process columns, and starting process ID in each intersection |
Ninter | number of intersections |
allrows | 1D array containing the global row indices (in original order starting from 1 to M) stacked together |
allcols | 1D array containing the global column indices (in original order starting from 1 to N) stacked together |
alldat_loc | 1D array containing the local entry values defined by pmaps (in column major) stacked together |
rowidx | 1D array containing sizes of rows of each intersection |
colidx | 1D array containing sizes of columns of each intersection |
Nallrows | total number of rows |
Nallcols | total number of columns |
Nalldat_loc | total number of local entries |
subroutine z_bpack_wrapper::z_c_bf_mult | ( | character(kind=c_char, len=1), dimension(*) | trans, |
complex(kind=8), dimension(ninloc, ncol) | xin, | ||
complex(kind=8), dimension(noutloc, ncol) | xout, | ||
integer | Ninloc, | ||
integer | Noutloc, | ||
integer | Ncol, | ||
type(c_ptr), intent(in) | bf_for_Cptr, | ||
type(c_ptr), intent(in) | option_Cptr, | ||
type(c_ptr), intent(in) | stats_Cptr, | ||
type(c_ptr), intent(in) | ptree_Cptr | ||
) |
**** C interface of butterfly-vector multiplication
xin | input vector |
Ninloc | size of local input vectors |
xout | output vector |
Noutloc | size of local output vectors |
Ncol | number of vectors |
bf_for_Cptr | the structure containing butterfly |
option_Cptr | the structure containing options |
stats_Cptr | the structure containing statistics |
ptree_Cptr | the structure containing process tree |
trans | 'N', 'C' or 'T' |
subroutine z_bpack_wrapper::z_c_bf_new2old_col | ( | type(c_ptr) | mshc_Cptr, |
integer | newidx_loc, | ||
integer | oldidx | ||
) |
**** C interface of converting from new,local index to old, global index, the indexs start from 1
newidx_loc | new, local index, from 1 to Nloc (in) |
oldidx | old, global index, from 1 to N (out) |
mshr_Cptr | the structure containing points and ordering information for the column dimension (in) |
subroutine z_bpack_wrapper::z_c_bf_new2old_row | ( | type(c_ptr) | mshr_Cptr, |
integer | newidx_loc, | ||
integer | oldidx | ||
) |
**** C interface of converting from new,local index to old, global index, the indexs start from 1
newidx_loc | new, local index, from 1 to Nloc (in) |
oldidx | old, global index, from 1 to N (out) |
mshr_Cptr | the structure containing points and ordering information for the row dimension (in) |
subroutine z_bpack_wrapper::z_c_bpack_construct_element_compute | ( | type(c_ptr) | bmat_Cptr, |
type(c_ptr) | option_Cptr, | ||
type(c_ptr) | stats_Cptr, | ||
type(c_ptr) | msh_Cptr, | ||
type(c_ptr) | ker_Cptr, | ||
type(c_ptr) | ptree_Cptr, | ||
type(c_funptr), intent(in), target, value | C_FuncZmn, | ||
type(c_funptr), intent(in), target, value | C_FuncZmnBlock, | ||
type(c_ptr), intent(in), target | C_QuantApp | ||
) |
**** C interface of matrix construction
bmat_Cptr | the structure containing BPACK |
option_Cptr | the structure containing option |
stats_Cptr | the structure containing statistics |
msh_Cptr | the structure containing points and ordering information |
ker_Cptr | the structure containing kernel quantities |
ptree_Cptr | the structure containing process tree |
C_FuncZmn | the C_pointer to user-provided function to sample mn^th entry of the matrix |
C_FuncZmnBlock | the C_pointer to user-provided function to sample a z_list of intersections of entries of the matrix |
C_QuantApp | the C_pointer to user-defined quantities required to for entry evaluation,sampling,distance and compressibility test (in) |
**** allocate BPACK solver structures
**** register the user-defined function and type in ker
**** computation of the construction phase
**** delete neighours in msh
**** return the C address of BPACK structures to C caller
subroutine z_bpack_wrapper::z_c_bpack_construct_init | ( | integer | N, |
integer | Ndim, | ||
real(kind=8), dimension(*) | Locations, | ||
integer, dimension(*) | nns, | ||
integer | nlevel, | ||
integer, dimension(*) | tree, | ||
integer, dimension(n) | Permutation, | ||
integer | N_loc, | ||
type(c_ptr) | bmat_Cptr, | ||
type(c_ptr) | option_Cptr, | ||
type(c_ptr) | stats_Cptr, | ||
type(c_ptr) | msh_Cptr, | ||
type(c_ptr) | ker_Cptr, | ||
type(c_ptr) | ptree_Cptr, | ||
type(c_funptr), intent(in), target, value | C_FuncDistmn, | ||
type(c_funptr), intent(in), target, value | C_FuncNearFar, | ||
type(c_ptr), intent(in), target | C_QuantApp | ||
) |
**** C interface of matrix construction via entry evaluation
N | matrix size (in) |
Ndim | data set dimensionality (not used if nogeo=1) |
Locations | coordinates used for clustering (not used if nogeo=1) |
nns | nearest neighbours provided by user (referenced if nogeo=3 or 4) |
nlevel | the number of top levels that have been ordered (in) |
tree | the order tree provided by the caller, if incomplete, the init routine will make it complete (inout) |
Permutation | return the permutation vector new2old (indexed from 1) (out) |
N_loc | number of local row/column indices (out) |
bmat_Cptr | the structure containing BPACK (out) |
option_Cptr | the structure containing option (in) |
stats_Cptr | the structure containing statistics (inout) |
msh_Cptr | the structure containing points and ordering information (out) |
ker_Cptr | the structure containing kernel quantities (out) |
ptree_Cptr | the structure containing process tree (in) |
C_FuncDistmn | the C_pointer to user-provided function to compute distance between any row and column of the matrix |
C_FuncNearFar | the C_pointer to user-provided function to determine whether a block (in permuted order) is compressible or not |
C_QuantApp | the C_pointer to user-defined quantities required to for entry evaluation,sampling,distance and compressibility test (in) |
**** allocate BPACK solver structures
**** create a random seed
**** register the user-defined function and type in ker
**** make 0-element node a 1-element node
**** the geometry points are provided by user
**** return the permutation vector
**** return the C address of BPACK structures to C caller
subroutine z_bpack_wrapper::z_c_bpack_construct_init_gram | ( | integer | N, |
integer | Ndim, | ||
real(kind=8), dimension(*) | Locations, | ||
integer, dimension(*) | nns, | ||
integer | nlevel, | ||
integer, dimension(*) | tree, | ||
integer, dimension(n) | Permutation, | ||
integer | N_loc, | ||
type(c_ptr) | bmat_Cptr, | ||
type(c_ptr) | option_Cptr, | ||
type(c_ptr) | stats_Cptr, | ||
type(c_ptr) | msh_Cptr, | ||
type(c_ptr) | ker_Cptr, | ||
type(c_ptr) | ptree_Cptr, | ||
type(c_funptr), intent(in), target, value | C_FuncZmn, | ||
type(c_funptr), intent(in), target, value | C_FuncZmnBlock, | ||
type(c_ptr), intent(in), target | C_QuantApp | ||
) |
**** C interface of matrix construction via entry evaluation and using it for gram distance
N | matrix size (in) |
Ndim | data set dimensionality (not used if nogeo=1) |
Locations | coordinates used for clustering (not used if nogeo=1) |
nns | nearest neighbours provided by user (referenced if nogeo=3 or 4) |
nlevel | the number of top levels that have been ordered (in) |
tree | the order tree provided by the caller, if incomplete, the init routine will make it complete (inout) |
Permutation | return the permutation vector new2old (indexed from 1) (out) |
N_loc | number of local row/column indices (out) |
bmat_Cptr | the structure containing BPACK (out) |
option_Cptr | the structure containing option (in) |
stats_Cptr | the structure containing statistics (inout) |
msh_Cptr | the structure containing points and ordering information (out) |
ker_Cptr | the structure containing kernel quantities (out) |
ptree_Cptr | the structure containing process tree (in) |
C_FuncZmn | the C_pointer to user-provided function to sample mn^th entry of the matrix |
C_FuncZmnBlock | the C_pointer to user-provided function to sample a z_list of intersections of entries of the matrix |
C_QuantApp | the C_pointer to user-defined quantities required to for entry evaluation,sampling,distance and compressibility test (in) |
**** allocate BPACK solver structures
**** create a random seed
**** register the user-defined function and type in ker
**** make 0-element node a 1-element node
**** the geometry points are provided by user
**** return the permutation vector
**** return the C address of BPACK structures to C caller
subroutine z_bpack_wrapper::z_c_bpack_construct_matvec_compute | ( | type(c_ptr) | bmat_Cptr, |
type(c_ptr) | option_Cptr, | ||
type(c_ptr) | stats_Cptr, | ||
type(c_ptr) | msh_Cptr, | ||
type(c_ptr) | ker_Cptr, | ||
type(c_ptr) | ptree_Cptr, | ||
type(c_funptr), intent(in), target, value | C_FuncHMatVec, | ||
type(c_ptr), intent(in), target | C_QuantApp | ||
) |
**** C interface of matrix construction via blackbox matvec
bmat_Cptr | the structure containing BPACK (inout) |
option_Cptr | the structure containing option (in) |
stats_Cptr | the structure containing statistics (inout) |
msh_Cptr | the structure containing points and ordering information (in) |
ker_Cptr | the structure containing kernel quantities (inout) |
ptree_Cptr | the structure containing process tree (in) |
C_FuncHMatVec | the C_pointer to user-provided function to multiply A and A* with vectors (in) |
C_QuantApp | the C_pointer to user-defined quantities required to for entry evaluation,sampling,distance and compressibility test (in) |
**** register the user-defined function and type in ker
**** computation of the construction phase
**** return the C address of BPACK structures to C caller
subroutine z_bpack_wrapper::z_c_bpack_copyoption | ( | type(c_ptr) | option_Cptr, |
type(c_ptr) | option_Cptr1 | ||
) |
**** C interface of copy option
option_Cptr | the structure containing option |
option_Cptr1 | the structure containing option |
****copy BPACK options
subroutine z_bpack_wrapper::z_c_bpack_createoption | ( | type(c_ptr) | option_Cptr | ) |
**** C interface of initializing option
option_Cptr | the structure containing option |
**** set default BPACK options
subroutine z_bpack_wrapper::z_c_bpack_createptree | ( | integer | nmpi, |
integer, dimension(*) | groupmembers, | ||
integer | MPIcomm, | ||
type(c_ptr) | ptree_Cptr | ||
) |
**** C interface of process tree construction
nmpi | number of MPIs for one BPACK |
MPIcomm | MPI communicator from C caller |
groupmembers | MPI ranks in MPIcomm for one BPACK |
ptree_Cptr | the structure containing process tree |
subroutine z_bpack_wrapper::z_c_bpack_createstats | ( | type(c_ptr), intent(out) | stats_Cptr | ) |
**** C interface of initializing statistics
stats_Cptr | the structure containing statistics |
**** initialize statistics variables
subroutine z_bpack_wrapper::z_c_bpack_delete | ( | type(c_ptr), intent(inout) | bmat_Cptr | ) |
**** C interface of deleting HOBF
bmat_Cptr | the structure containing HOBF |
subroutine z_bpack_wrapper::z_c_bpack_deletekernelquant | ( | type(c_ptr), intent(inout) | ker_Cptr | ) |
**** C interface of deleting z_kernelquant
ker_Cptr | the structure containing z_kernelquant |
subroutine z_bpack_wrapper::z_c_bpack_deletemesh | ( | type(c_ptr), intent(inout) | msh_Cptr | ) |
**** C interface of deleting z_mesh
msh_Cptr | the structure containing z_mesh |
subroutine z_bpack_wrapper::z_c_bpack_deleteoption | ( | type(c_ptr), intent(inout) | option_Cptr | ) |
**** C interface of deleting z_Hoption
option_Cptr | the structure containing z_Hoption |
subroutine z_bpack_wrapper::z_c_bpack_deleteproctree | ( | type(c_ptr), intent(inout) | ptree_Cptr | ) |
**** C interface of deleting process tree
ptree_Cptr | the structure containing process tree |
subroutine z_bpack_wrapper::z_c_bpack_deletestats | ( | type(c_ptr), intent(inout) | stats_Cptr | ) |
**** C interface of deleting statistics
stats_Cptr | the structure containing statistics |
subroutine z_bpack_wrapper::z_c_bpack_extractelement | ( | type(c_ptr), intent(in) | bmat_Cptr, |
type(c_ptr), intent(in) | option_Cptr, | ||
type(c_ptr), intent(in) | msh_Cptr, | ||
type(c_ptr), intent(in) | stats_Cptr, | ||
type(c_ptr), intent(in) | ptree_Cptr, | ||
integer | Ninter, | ||
integer | Nallrows, | ||
integer | Nallcols, | ||
integer*8 | Nalldat_loc, | ||
integer, dimension(nallrows) | allrows, | ||
integer, dimension(nallcols) | allcols, | ||
complex(kind=8), dimension(nalldat_loc), target | alldat_loc, | ||
integer, dimension(ninter) | rowidx, | ||
integer, dimension(ninter) | colidx, | ||
integer, dimension(ninter) | pgidx, | ||
integer | Npmap, | ||
integer, dimension(npmap, 3) | pmaps | ||
) |
**** C interface of parallel extraction of a z_list of intersections from a Bmat matrix
Ninter | number of intersections |
allrows | 1D array containing the global row indices (in original order starting from 0) stacked together |
allcols | 1D array containing the global column indices (in original order starting from 0) stacked together |
alldat_loc | 1D array containing the local entry values defined by pmaps (in column major) stacked together |
rowidx | 1D array containing sizes of rows of each intersection |
colidx | 1D array containing sizes of columns of each intersection |
pgidx | 1D array containing the process group number of each intersection, the number starts from 0 |
Npmap | number of process groups |
pmaps | 2D array (Npmapx3) containing number of process rows, number of process columns, and starting process ID in each intersection |
bmat_Cptr | the structure containing BPACK |
option_Cptr | the structure containing option |
stats_Cptr | the structure containing statistics |
ptree_Cptr | the structure containing process tree |
msh_Cptr | the structure containing points and ordering information |
Nallrows | total number of rows |
Nallcols | total number of columns |
Nalldat_loc | total number of local entries |
subroutine z_bpack_wrapper::z_c_bpack_factor | ( | type(c_ptr), intent(inout) | bmat_Cptr, |
type(c_ptr) | option_Cptr, | ||
type(c_ptr), intent(inout) | stats_Cptr, | ||
type(c_ptr), intent(in) | ptree_Cptr, | ||
type(c_ptr), intent(in) | msh_Cptr | ||
) |
**** C interface of BPACK factorization
bmat_Cptr | the structure containing BPACK |
option_Cptr | the structure containing option |
stats_Cptr | the structure containing statistics |
ptree_Cptr | the structure containing process tree |
msh_Cptr | the structure containing points and ordering information (in) |
subroutine z_bpack_wrapper::z_c_bpack_getoption | ( | type(c_ptr) | option_Cptr, |
character(kind=c_char, len=1), dimension(*) | nam, | ||
real(kind=8) | val_d | ||
) |
**** C interface of getting one entry in option, always returning double
option_Cptr | the structure containing option |
nam | name of the option |
val_d | value of the option |
subroutine z_bpack_wrapper::z_c_bpack_getstats | ( | type(c_ptr) | stats_Cptr, |
character(kind=c_char, len=1), dimension(*) | nam, | ||
real(kind=8) | val_d | ||
) |
**** C interface of getting one entry in stats
stats_Cptr | the structure containing stats |
nam | name of the stats |
val_d | value of the stats |
subroutine z_bpack_wrapper::z_c_bpack_getversionnumber | ( | integer | v_major, |
integer | v_minor, | ||
integer | v_bugfix | ||
) |
**** C interface of getting the version number of ButterflyPACK
v_major | major version number |
v_minor | minor version number |
v_bugfix | bugfix version number |
subroutine z_bpack_wrapper::z_c_bpack_inv_mult | ( | character(kind=c_char, len=1), dimension(*) | trans, |
complex(kind=8), dimension(ninloc, ncol) | xin, | ||
complex(kind=8), dimension(noutloc, ncol) | xout, | ||
integer | Ninloc, | ||
integer | Noutloc, | ||
integer | Ncol, | ||
type(c_ptr), intent(in) | bmat_Cptr, | ||
type(c_ptr), intent(in) | option_Cptr, | ||
type(c_ptr), intent(in) | stats_Cptr, | ||
type(c_ptr), intent(in) | ptree_Cptr | ||
) |
**** C interface of BPACK(inverse)-vector multiplication
xin | input vector |
Ninloc | size of local input vectors |
xout | output vector |
Noutloc | size of local output vectors |
Ncol | number of vectors |
bmat_Cptr | the structure containing BPACK |
option_Cptr | the structure containing option |
stats_Cptr | the structure containing statistics |
ptree_Cptr | the structure containing process tree |
trans | 'C', 'T' or 'N' |
subroutine z_bpack_wrapper::z_c_bpack_md_construct_element_compute | ( | integer | Ndim, |
type(c_ptr) | bmat_Cptr, | ||
type(c_ptr) | option_Cptr, | ||
type(c_ptr) | stats_Cptr, | ||
type(c_ptr) | msh_Cptr, | ||
type(c_ptr) | ker_Cptr, | ||
type(c_ptr) | ptree_Cptr, | ||
type(c_funptr), intent(in), target, value | C_FuncZmn_MD, | ||
type(c_ptr), intent(in), target | C_QuantApp | ||
) |
**** C interface of tensor construction
Ndim | data dimensionality (in) |
bmat_Cptr | the structure containing the hierarchical tensors |
option_Cptr | the structure containing option |
stats_Cptr | the structure containing statistics |
msh_Cptr | the structure containing points and ordering information |
ker_Cptr | the structure containing kernel quantities |
ptree_Cptr | the structure containing process tree |
C_FuncZmn_MD | the C_pointer to user-provided function to sample mn^th entry of the tensor |
C_QuantApp | the C_pointer to user-defined quantities required to for entry evaluation,sampling,distance and compressibility test (in) |
**** allocate BPACK solver structures
**** register the user-defined function and type in ker
**** computation of the construction phase
**** delete neighours in msh
**** return the C address of BPACK structures to C caller
subroutine z_bpack_wrapper::z_c_bpack_md_construct_init | ( | integer, dimension(ndim) | Ns, |
integer | Nmax, | ||
integer | Ndim, | ||
real(kind=8), dimension(*) | Locations, | ||
integer, dimension(nmax*ndim) | Permutation, | ||
integer, dimension(ndim) | N_loc, | ||
type(c_ptr) | bmat_Cptr, | ||
type(c_ptr) | option_Cptr, | ||
type(c_ptr) | stats_Cptr, | ||
type(c_ptr) | msh_Cptr, | ||
type(c_ptr) | ker_Cptr, | ||
type(c_ptr) | ptree_Cptr, | ||
type(c_funptr), intent(in), target, value | C_FuncNearFar_MD, | ||
type(c_ptr), intent(in), target | C_QuantApp | ||
) |
**** C interface of multi-dimensional BF construction via entry evaluation
Ns | size for each dimension (in) |
Nmax | maximum size among all dimensions (in) |
Ndim | data set dimensionality (in) |
Locations | coordinates (1D coordinates per dimension) used for clustering (in) |
Permutation | return the permutation vector (per dimension) new2old (indexed from 1) (out) |
N_loc | number of local row/column indices (per dimension) (out) |
bmat_Cptr | the structure containing the compressed operator (out) |
option_Cptr | the structure containing option (in) |
stats_Cptr | the structure containing statistics (inout) |
msh_Cptr | the structure containing points and ordering information per dimension (out) |
ker_Cptr | the structure containing kernel quantities (out) |
ptree_Cptr | the structure containing process tree (in) |
C_FuncNearFar_MD | the C_pointer to user-provided function to determine whether a block (in permuted order) is compressible or not |
C_QuantApp | the C_pointer to user-defined quantities required to for entry evaluation,sampling,distance and compressibility test (in) |
**** allocate BPACK solver structures
**** create a random seed
**** register the user-defined function and type in ker
**** the geometry points are provided by user
**** return the permutation vector
**** return the C address of BPACK structures to C caller
subroutine z_bpack_wrapper::z_c_bpack_md_mult | ( | integer | Ndim, |
character(kind=c_char, len=1), dimension(*) | trans, | ||
complex(kind=8), dimension(product(ninloc), ncol) | xin, | ||
complex(kind=8), dimension(product(noutloc), ncol) | xout, | ||
integer, dimension(ndim) | Ninloc, | ||
integer, dimension(ndim) | Noutloc, | ||
integer | Ncol, | ||
type(c_ptr), intent(in) | bmat_Cptr, | ||
type(c_ptr), intent(in) | option_Cptr, | ||
type(c_ptr), intent(in) | stats_Cptr, | ||
type(c_ptr), intent(in) | ptree_Cptr, | ||
type(c_ptr) | msh_Cptr | ||
) |
**** C interface of z_BPACK_MD_Mult for BPACK_MD-vector multiply
Ndim | dimensionality of the kernel |
xin | input vector |
Ninloc | size of local input vectors |
xout | output vector |
Noutloc | size of local output vectors |
Ncol | number of vectors |
bmat_Cptr | the structure containing BPACK |
option_Cptr | the structure containing option |
stats_Cptr | the structure containing statistics |
ptree_Cptr | the structure containing process tree |
msh_Cptr | the structure containing points and ordering information |
trans | 'N', 'C' or 'T' |
subroutine z_bpack_wrapper::z_c_bpack_md_new2old | ( | integer | Ndim, |
type(c_ptr) | msh_Cptr, | ||
integer, dimension(ndim) | newidx_loc, | ||
integer, dimension(ndim) | oldidx | ||
) |
**** C interface of converting from new,local index to old, global index, the indexs start from 1. Both newidx_loc and oldidx are Ndim dimensional.
newidx_loc | new, local index, from 1 to Nloc |
oldidx | old, global index, from 1 to N (out) |
msh_Cptr | the structure containing points and ordering information |
subroutine z_bpack_wrapper::z_c_bpack_md_solve | ( | integer | Ndim, |
complex(kind=8), dimension(product(nloc), nrhs) | x, | ||
complex(kind=8), dimension(product(nloc), nrhs) | b, | ||
integer, dimension(ndim) | Nloc, | ||
integer | Nrhs, | ||
type(c_ptr), intent(in) | bmat_Cptr, | ||
type(c_ptr), intent(in) | option_Cptr, | ||
type(c_ptr), intent(in) | stats_Cptr, | ||
type(c_ptr), intent(in) | ptree_Cptr, | ||
type(c_ptr), intent(in) | msh_Cptr | ||
) |
**** C interface of H-tensor solve
Ndim | dimensionality |
x | local solution vector |
b | local RHS |
Nloc | size of local RHS |
Nrhs | number of RHSs |
bmat_Cptr | the structure containing H-tensor |
option_Cptr | the structure containing option |
stats_Cptr | the structure containing statistics |
ptree_Cptr | the structure containing process tree |
msh_Cptr | the structure containing points and ordering information |
subroutine z_bpack_wrapper::z_c_bpack_md_tfqmr_noprecon | ( | integer | Ndim, |
complex(kind=8), dimension(product(nloc), nrhs) | x, | ||
complex(kind=8), dimension(product(nloc), nrhs) | b, | ||
integer, dimension(ndim) | Nloc, | ||
integer | Nrhs, | ||
type(c_ptr), intent(in) | option_Cptr, | ||
type(c_ptr), intent(in) | stats_Cptr, | ||
type(c_ptr), intent(in) | ptree_Cptr, | ||
type(c_ptr) | ker_Cptr, | ||
type(c_funptr), intent(in), target, value | C_FuncHMatVec_MD, | ||
type(c_ptr), intent(in), target | C_QuantApp | ||
) |
**** C interface of a blackbox tfqmr without preconditioner, or assuming preconditioner is applied in the blackbox matvec (tensor)
x | local solution vector |
b | local RHS |
Nloc | size of local RHS |
Nrhs | number of RHSs |
option_Cptr | the structure containing option |
stats_Cptr | the structure containing statistics |
ptree_Cptr | the structure containing process tree |
C_QuantApp | the C_pointer to user-defined quantities required to for entry evaluation,sampling,distance and compressibility test (in) |
ker_Cptr | the structure containing kernel quantities |
C_FuncHMatVec_MD | the C_pointer to user-provided function to multiply A and A* with vectors (in) |
**** register the user-defined function and type in ker
subroutine z_bpack_wrapper::z_c_bpack_mult | ( | character(kind=c_char, len=1), dimension(*) | trans, |
complex(kind=8), dimension(ninloc, ncol) | xin, | ||
complex(kind=8), dimension(noutloc, ncol) | xout, | ||
integer | Ninloc, | ||
integer | Noutloc, | ||
integer | Ncol, | ||
type(c_ptr), intent(in) | bmat_Cptr, | ||
type(c_ptr), intent(in) | option_Cptr, | ||
type(c_ptr), intent(in) | stats_Cptr, | ||
type(c_ptr), intent(in) | ptree_Cptr | ||
) |
**** C interface of BPACK-vector multiplication
xin | input vector |
Ninloc | size of local input vectors |
xout | output vector |
Noutloc | size of local output vectors |
Ncol | number of vectors |
bmat_Cptr | the structure containing BPACK |
option_Cptr | the structure containing option |
stats_Cptr | the structure containing statistics |
ptree_Cptr | the structure containing process tree |
trans | 'N', 'C' or 'T' |
subroutine z_bpack_wrapper::z_c_bpack_new2old | ( | type(c_ptr) | msh_Cptr, |
integer | newidx_loc, | ||
integer | oldidx | ||
) |
**** C interface of converting from new,local index to old, global index, the indexs start from 1
newidx_loc | new, local index, from 1 to Nloc |
oldidx | old, global index, from 1 to N (out) |
msh_Cptr | the structure containing points and ordering information |
subroutine z_bpack_wrapper::z_c_bpack_printoption | ( | type(c_ptr) | option_Cptr, |
type(c_ptr) | ptree_Cptr | ||
) |
**** C interface of printing option
option_Cptr | the structure containing option |
ptree_Cptr | the structure containing process tree |
subroutine z_bpack_wrapper::z_c_bpack_printstats | ( | type(c_ptr) | stats_Cptr, |
type(c_ptr) | ptree_Cptr | ||
) |
**** C interface of printing statistics
stats_Cptr | the structure containing statistics |
ptree_Cptr | the structure containing process tree |
**** print statistics variables
subroutine z_bpack_wrapper::z_c_bpack_setoption | ( | type(c_ptr) | option_Cptr, |
character(kind=c_char, len=1), dimension(*) | nam, | ||
type(c_ptr), value | val_Cptr | ||
) |
**** C interface of set one entry in option
option_Cptr | the structure containing option |
nam | name of the option |
val_Cptr | value of the option |
**** integer parameters
**** double parameters
subroutine z_bpack_wrapper::z_c_bpack_solve | ( | complex(kind=8), dimension(nloc, nrhs) | x, |
complex(kind=8), dimension(nloc, nrhs) | b, | ||
integer | Nloc, | ||
integer | Nrhs, | ||
type(c_ptr), intent(in) | bmat_Cptr, | ||
type(c_ptr), intent(in) | option_Cptr, | ||
type(c_ptr), intent(in) | stats_Cptr, | ||
type(c_ptr), intent(in) | ptree_Cptr | ||
) |
**** C interface of BPACK solve
x | local solution vector |
b | local RHS |
Nloc | size of local RHS |
Nrhs | number of RHSs |
bmat_Cptr | the structure containing BPACK |
option_Cptr | the structure containing option |
stats_Cptr | the structure containing statistics |
ptree_Cptr | the structure containing process tree |
subroutine z_bpack_wrapper::z_c_bpack_tfqmr_noprecon | ( | complex(kind=8), dimension(nloc, nrhs) | x, |
complex(kind=8), dimension(nloc, nrhs) | b, | ||
integer | Nloc, | ||
integer | Nrhs, | ||
type(c_ptr), intent(in) | option_Cptr, | ||
type(c_ptr), intent(in) | stats_Cptr, | ||
type(c_ptr), intent(in) | ptree_Cptr, | ||
type(c_ptr) | ker_Cptr, | ||
type(c_funptr), intent(in), target, value | C_FuncHMatVec, | ||
type(c_ptr), intent(in), target | C_QuantApp | ||
) |
**** C interface of a blackbox tfqmr without preconditioner, or assuming preconditioner is applied in the blackbox matvec
x | local solution vector |
b | local RHS |
Nloc | size of local RHS |
Nrhs | number of RHSs |
option_Cptr | the structure containing option |
stats_Cptr | the structure containing statistics |
ptree_Cptr | the structure containing process tree |
C_QuantApp | the C_pointer to user-defined quantities required to for entry evaluation,sampling,distance and compressibility test (in) |
ker_Cptr | the structure containing kernel quantities |
C_FuncHMatVec | the C_pointer to user-provided function to multiply A and A* with vectors (in) |
**** register the user-defined function and type in ker
subroutine z_bpack_wrapper::z_c_bpack_treeindex_merged2child | ( | integer | idx_merge, |
integer | idx_child | ||
) |
**** C interface of converting the tree index to the index in one of its two child trees
idx_merge | node number in the parent tree |
idx_child | node number in one of the two child trees |
subroutine z_bpack_wrapper::z_c_multiindextosingleindex | ( | integer | Ndim, |
integer, dimension(ndim) | dims, | ||
integer | single_index_in, | ||
integer, dimension(ndim) | multi_index | ||
) |
**** C interface of Fortran subroutine z_MultiIndexToSingleIndex for converting multi-index to single index
Ndim | dimensionality |
dims(Ndim) | size of each dimension |
single_index_in | single index |
multi_index(Ndim) | multi_index **** convert single index to multi-index, assuming first index is the fastest |
subroutine z_bpack_wrapper::z_c_singleindextomultiindex | ( | integer | Ndim, |
integer, dimension(ndim) | dims, | ||
integer | single_index_in, | ||
integer, dimension(ndim) | multi_index | ||
) |
**** C interface of Fortran subroutine z_SingleIndexToMultiIndex for converting single index to multi-index
Ndim | dimensionality |
dims(Ndim) | size of each dimension |
single_index_in | single index |
multi_index(Ndim) | multi_index **** convert single index to multi-index, assuming first index is the fastest |
subroutine z_bpack_wrapper::z_matvec_user_c | ( | character | trans, |
integer, intent(in) | M, | ||
integer, intent(in) | N, | ||
integer, intent(in) | num_vect, | ||
complex(kind=8), dimension(:, :) | Vin, | ||
complex(kind=8), dimension(:, :) | Vout, | ||
type(z_kernelquant) | ker | ||
) |
****** Fortran interface for the matvec function required by z_BPACK_construction_Matvec, inside which a c++ function pointer kerC_FuncHMatVec is called
******! It is assumed the kerC_FuncHMatVec interfaces with local input and output vectors, which assume an already ordered hierarchical matrix
ker | the structure containing kernel quantities |
Vin | input vector |
Vout | output vector |
M | (local) row dimension of the matrix |
N | (local) column dimension of the matrix |
trans | 'N', 'C' or 'T' |
num_vect | number of vectors |
subroutine z_bpack_wrapper::z_matvec_user_c_md | ( | integer | Ndim, |
character | trans, | ||
integer, dimension(ndim), intent(in) | M, | ||
integer, dimension(ndim), intent(in) | N, | ||
integer, intent(in) | num_vect, | ||
complex(kind=8), dimension(:, :) | Vin, | ||
complex(kind=8), dimension(:, :) | Vout, | ||
type(z_kernelquant) | ker | ||
) |
****** Fortran interface for the matvec function required by z_BPACK_construction_Matvec, inside which a c++ function pointer kerC_FuncHMatVec is called
******! It is assumed the kerC_FuncHMatVec interfaces with local input and output vectors, which assume an already ordered hierarchical matrix
ker | the structure containing kernel quantities |
Vin | input vector |
Vout | output vector |
M | (local) row dimension of the matrix |
N | (local) column dimension of the matrix |
trans | 'N', 'C' or 'T' |
num_vect | number of vectors |