PaStiX Handbook
6.4.0
|
Functions | |
void | bcsc_handle_comm_init (const SolverMatrix *solvmtx, pastix_bcsc_t *bcsc) |
Initializes the bcsc_handle_comm_t structure. More... | |
void | bcsc_handle_comm_exit (bcsc_handle_comm_t *bcsc_comm) |
Frees the bcsc_handle_comm pointers. More... | |
pastix_int_t * | bcsc_init_col2cblk_shm (const SolverMatrix *solvmtx, const pastix_bcsc_t *bcsc) |
Creates the array which represents the repartition of each column in the block structure. The array size is spm->gNexp where: More... | |
pastix_int_t * | bcsc_init_col2cblk (const SolverMatrix *solvmtx, const pastix_bcsc_t *bcsc, const spmatrix_t *spm) |
Creates the array which represents the repartition of each column in the block structure. This routine calls bcsc_init_col2cblk_shm or bcsc_init_col2cblk_dst according to the way the matrix is stored in the memory. More... | |
pastix_int_t | bcsc_init_coltab (const spmatrix_t *spm, const pastix_order_t *ord, const SolverMatrix *solvmtx, pastix_bcsc_t *bcsc) |
Initializes the coltab of a block csc matrix. The coltab corresponds to the number of rows (expended) per column (non expended). If the matrix is distributed in the memory, this function also calls the routines which exchange the amount of data for the communication, store the indexes and values to send and exchange the indexes. More... | |
void | bcsc_restore_coltab (pastix_bcsc_t *bcsc) |
Restores the coltab array when it has been modified to initialize the row and values arrays. More... | |
void | bcsc_init_struct (const spmatrix_t *spm, const SolverMatrix *solvmtx, pastix_bcsc_t *bcsc) |
Initializes a block csc. More... | |
void | bcsc_exit_struct (pastix_bcsc_t *bcsc) |
Cleanup the bcsc struct. (symmetric of bcsc_init_struct) More... | |
static pastix_int_t | bcsc_dinit_A (const spmatrix_t *spm, const pastix_order_t *ord, const SolverMatrix *solvmtx, pastix_bcsc_t *bcsc) |
Initializes the A values of the block csc stored in the given spm. More... | |
static pastix_int_t | bcsc_dinit_At (const spmatrix_t *spm, const pastix_order_t *ord, const SolverMatrix *solvmtx, pastix_int_t *rowtab, pastix_bcsc_t *bcsc) |
Initializes the At values in the block cscstored in the given spm. More... | |
static void | bcsc_dsort (const pastix_bcsc_t *bcsc, pastix_int_t *rowtab, double *valtab) |
Sorts the block csc subarray associated to each column block. More... | |
static pastix_int_t | bcsc_sinit_A (const spmatrix_t *spm, const pastix_order_t *ord, const SolverMatrix *solvmtx, pastix_bcsc_t *bcsc) |
Initializes the A values of the block csc stored in the given spm. More... | |
static pastix_int_t | bcsc_sinit_At (const spmatrix_t *spm, const pastix_order_t *ord, const SolverMatrix *solvmtx, pastix_int_t *rowtab, pastix_bcsc_t *bcsc) |
Initializes the At values in the block cscstored in the given spm. More... | |
static void | bcsc_ssort (const pastix_bcsc_t *bcsc, pastix_int_t *rowtab, float *valtab) |
Sorts the block csc subarray associated to each column block. More... | |
static pastix_int_t | bcsc_zinit_A (const spmatrix_t *spm, const pastix_order_t *ord, const SolverMatrix *solvmtx, pastix_bcsc_t *bcsc) |
Initializes the A values of the block csc stored in the given spm. More... | |
static pastix_int_t | bcsc_zinit_At (const spmatrix_t *spm, const pastix_order_t *ord, const SolverMatrix *solvmtx, pastix_int_t *rowtab, pastix_bcsc_t *bcsc) |
Initializes the At values in the block cscstored in the given spm. More... | |
static void | bcsc_zsort (const pastix_bcsc_t *bcsc, pastix_int_t *rowtab, pastix_complex64_t *valtab) |
Sorts the block csc subarray associated to each column block. More... | |
static pastix_int_t | bcsc_cinit_A (const spmatrix_t *spm, const pastix_order_t *ord, const SolverMatrix *solvmtx, pastix_bcsc_t *bcsc) |
Initializes the A values of the block csc stored in the given spm. More... | |
static pastix_int_t | bcsc_cinit_At (const spmatrix_t *spm, const pastix_order_t *ord, const SolverMatrix *solvmtx, pastix_int_t *rowtab, pastix_bcsc_t *bcsc) |
Initializes the At values in the block cscstored in the given spm. More... | |
static void | bcsc_csort (const pastix_bcsc_t *bcsc, pastix_int_t *rowtab, pastix_complex32_t *valtab) |
Sorts the block csc subarray associated to each column block. More... | |
double | bcsc_dnorm_max (const pastix_bcsc_t *bcsc) |
Compute the max norm of a bcsc matrix. More... | |
double | bcsc_dnorm_inf (const pastix_bcsc_t *bcsc) |
Compute the infinity norm of a bcsc matrix. The infinity norm is equal to the maximum value of the sum of the absolute values of the elements of each rows. More... | |
double | bcsc_dnorm_one (const pastix_bcsc_t *bcsc) |
Compute the norm 1 of a bcsc matrix. Norm 1 is equal to the maximum value of the sum of the absolute values of the elements of each columns. More... | |
double | bcsc_dnorm_frobenius (const pastix_bcsc_t *bcsc) |
Compute the frobenius norm of a bcsc matrix. More... | |
float | bcsc_snorm_max (const pastix_bcsc_t *bcsc) |
Compute the max norm of a bcsc matrix. More... | |
float | bcsc_snorm_inf (const pastix_bcsc_t *bcsc) |
Compute the infinity norm of a bcsc matrix. The infinity norm is equal to the maximum value of the sum of the absolute values of the elements of each rows. More... | |
float | bcsc_snorm_one (const pastix_bcsc_t *bcsc) |
Compute the norm 1 of a bcsc matrix. Norm 1 is equal to the maximum value of the sum of the absolute values of the elements of each columns. More... | |
float | bcsc_snorm_frobenius (const pastix_bcsc_t *bcsc) |
Compute the frobenius norm of a bcsc matrix. More... | |
double | bcsc_znorm_max (const pastix_bcsc_t *bcsc) |
Compute the max norm of a bcsc matrix. More... | |
double | bcsc_znorm_inf (const pastix_bcsc_t *bcsc) |
Compute the infinity norm of a bcsc matrix. The infinity norm is equal to the maximum value of the sum of the absolute values of the elements of each rows. More... | |
double | bcsc_znorm_one (const pastix_bcsc_t *bcsc) |
Compute the norm 1 of a bcsc matrix. Norm 1 is equal to the maximum value of the sum of the absolute values of the elements of each columns. More... | |
double | bcsc_znorm_frobenius (const pastix_bcsc_t *bcsc) |
Compute the frobenius norm of a bcsc matrix. More... | |
float | bcsc_cnorm_max (const pastix_bcsc_t *bcsc) |
Compute the max norm of a bcsc matrix. More... | |
float | bcsc_cnorm_inf (const pastix_bcsc_t *bcsc) |
Compute the infinity norm of a bcsc matrix. The infinity norm is equal to the maximum value of the sum of the absolute values of the elements of each rows. More... | |
float | bcsc_cnorm_one (const pastix_bcsc_t *bcsc) |
Compute the norm 1 of a bcsc matrix. Norm 1 is equal to the maximum value of the sum of the absolute values of the elements of each columns. More... | |
float | bcsc_cnorm_frobenius (const pastix_bcsc_t *bcsc) |
Compute the frobenius norm of a bcsc matrix. More... | |
void | pthread_bcsc_dspmv (isched_thread_t *ctx, void *args) |
Compute the matrix-vector product y = alpha * op(A) * x + beta * y. More... | |
void | pthread_bcsc_dspmv_tasktab (isched_thread_t *ctx, void *args) |
Compute the matrix-vector product y = alpha * op(A) * x + beta * y. More... | |
void | bcsc_dspmv_get_balanced_indexes (const pastix_data_t *pastix_data, struct d_argument_spmv_s *args) |
Initialize indexes for vector pointer and bloc indexes for parallel version of spmv. More... | |
void | pthread_bcsc_sspmv (isched_thread_t *ctx, void *args) |
Compute the matrix-vector product y = alpha * op(A) * x + beta * y. More... | |
void | pthread_bcsc_sspmv_tasktab (isched_thread_t *ctx, void *args) |
Compute the matrix-vector product y = alpha * op(A) * x + beta * y. More... | |
void | bcsc_sspmv_get_balanced_indexes (const pastix_data_t *pastix_data, struct s_argument_spmv_s *args) |
Initialize indexes for vector pointer and bloc indexes for parallel version of spmv. More... | |
void | pthread_bcsc_zspmv (isched_thread_t *ctx, void *args) |
Compute the matrix-vector product y = alpha * op(A) * x + beta * y. More... | |
void | pthread_bcsc_zspmv_tasktab (isched_thread_t *ctx, void *args) |
Compute the matrix-vector product y = alpha * op(A) * x + beta * y. More... | |
void | bcsc_zspmv_get_balanced_indexes (const pastix_data_t *pastix_data, struct z_argument_spmv_s *args) |
Initialize indexes for vector pointer and bloc indexes for parallel version of spmv. More... | |
void | pthread_bcsc_cspmv (isched_thread_t *ctx, void *args) |
Compute the matrix-vector product y = alpha * op(A) * x + beta * y. More... | |
void | pthread_bcsc_cspmv_tasktab (isched_thread_t *ctx, void *args) |
Compute the matrix-vector product y = alpha * op(A) * x + beta * y. More... | |
void | bcsc_cspmv_get_balanced_indexes (const pastix_data_t *pastix_data, struct c_argument_spmv_s *args) |
Initialize indexes for vector pointer and bloc indexes for parallel version of spmv. More... | |
static void | pthread_bvec_daxpy (isched_thread_t *ctx, void *args) |
Compute y <- alpha * x + y (Parallel version). More... | |
static void | pthread_bvec_ddot (isched_thread_t *ctx, void *args) |
Compute the scalar product x.y. (Parallel version) More... | |
static void | pthread_bvec_dcopy (isched_thread_t *ctx, void *args) |
Copy a vector y = x (parallel version) More... | |
static void | pthread_bvec_dgemv (isched_thread_t *ctx, void *args) |
Compute. More... | |
static void | pthread_bvec_saxpy (isched_thread_t *ctx, void *args) |
Compute y <- alpha * x + y (Parallel version). More... | |
static void | pthread_bvec_sdot (isched_thread_t *ctx, void *args) |
Compute the scalar product x.y. (Parallel version) More... | |
static void | pthread_bvec_scopy (isched_thread_t *ctx, void *args) |
Copy a vector y = x (parallel version) More... | |
static void | pthread_bvec_sgemv (isched_thread_t *ctx, void *args) |
Compute. More... | |
static void | pthread_bvec_zaxpy (isched_thread_t *ctx, void *args) |
Compute y <- alpha * x + y (Parallel version). More... | |
static void | pthread_bvec_zdotu (isched_thread_t *ctx, void *args) |
Compute the scalar product x.y. (Parallel version) More... | |
static void | pthread_bvec_zcopy (isched_thread_t *ctx, void *args) |
Copy a vector y = x (parallel version) More... | |
static void | pthread_bvec_zgemv (isched_thread_t *ctx, void *args) |
Compute. More... | |
static void | pthread_bvec_caxpy (isched_thread_t *ctx, void *args) |
Compute y <- alpha * x + y (Parallel version). More... | |
static void | pthread_bvec_cdotu (isched_thread_t *ctx, void *args) |
Compute the scalar product x.y. (Parallel version) More... | |
static void | pthread_bvec_ccopy (isched_thread_t *ctx, void *args) |
Copy a vector y = x (parallel version) More... | |
static void | pthread_bvec_cgemv (isched_thread_t *ctx, void *args) |
Compute. More... | |
static int | bvec_dlapmr_shm (pastix_data_t *pastix_data, pastix_dir_t dir, pastix_int_t m, pastix_int_t n, double *A, pastix_int_t lda, pastix_rhs_t PA) |
Apply a row permutation to a right hand side A (LAPACK xlatmr) in the shared memory case. More... | |
int | bvec_dlapmr (pastix_data_t *pastix_data, pastix_dir_t dir, pastix_int_t m, pastix_int_t n, double *A, pastix_int_t lda, pastix_rhs_t PA) |
Apply a row permutation to a right hand side A (LAPACK xlatmr) More... | |
static int | bvec_slapmr_shm (pastix_data_t *pastix_data, pastix_dir_t dir, pastix_int_t m, pastix_int_t n, float *A, pastix_int_t lda, pastix_rhs_t PA) |
Apply a row permutation to a right hand side A (LAPACK xlatmr) in the shared memory case. More... | |
int | bvec_slapmr (pastix_data_t *pastix_data, pastix_dir_t dir, pastix_int_t m, pastix_int_t n, float *A, pastix_int_t lda, pastix_rhs_t PA) |
Apply a row permutation to a right hand side A (LAPACK xlatmr) More... | |
static int | bvec_zlapmr_shm (pastix_data_t *pastix_data, pastix_dir_t dir, pastix_int_t m, pastix_int_t n, pastix_complex64_t *A, pastix_int_t lda, pastix_rhs_t PA) |
Apply a row permutation to a right hand side A (LAPACK xlatmr) in the shared memory case. More... | |
int | bvec_zlapmr (pastix_data_t *pastix_data, pastix_dir_t dir, pastix_int_t m, pastix_int_t n, pastix_complex64_t *A, pastix_int_t lda, pastix_rhs_t PA) |
Apply a row permutation to a right hand side A (LAPACK xlatmr) More... | |
static int | bvec_clapmr_shm (pastix_data_t *pastix_data, pastix_dir_t dir, pastix_int_t m, pastix_int_t n, pastix_complex32_t *A, pastix_int_t lda, pastix_rhs_t PA) |
Apply a row permutation to a right hand side A (LAPACK xlatmr) in the shared memory case. More... | |
int | bvec_clapmr (pastix_data_t *pastix_data, pastix_dir_t dir, pastix_int_t m, pastix_int_t n, pastix_complex32_t *A, pastix_int_t lda, pastix_rhs_t PA) |
Apply a row permutation to a right hand side A (LAPACK xlatmr) More... | |
PastixDouble initialization functions | |
void | bcsc_dinit (const spmatrix_t *spm, const pastix_order_t *ord, const SolverMatrix *solvmtx, int initAt, pastix_bcsc_t *bcsc, pastix_int_t valuesize) |
Initializes a centralize double block csc. More... | |
PastixComplex32 initialization functions | |
void | bcsc_cinit (const spmatrix_t *spm, const pastix_order_t *ord, const SolverMatrix *solvmtx, int initAt, pastix_bcsc_t *bcsc, pastix_int_t valuesize) |
Initializes a centralize pastix_complex32_t block csc. More... | |
PastixComplex64 initialization functions | |
void | bcsc_zinit (const spmatrix_t *spm, const pastix_order_t *ord, const SolverMatrix *solvmtx, int initAt, pastix_bcsc_t *bcsc, pastix_int_t valuesize) |
Initializes a centralize pastix_complex64_t block csc. More... | |
PastixFloat initialization functions | |
void | bcsc_sinit (const spmatrix_t *spm, const pastix_order_t *ord, const SolverMatrix *solvmtx, int initAt, pastix_bcsc_t *bcsc, pastix_int_t valuesize) |
Initializes a centralize float block csc. More... | |
void bcsc_handle_comm_init | ( | const SolverMatrix * | solvmtx, |
pastix_bcsc_t * | bcsc | ||
) |
Initializes the bcsc_handle_comm_t structure.
[in] | solvmtx | The solver matrix structure which describes the data distribution. |
[out] | bcsc | The bcsc. |
Definition at line 48 of file bcsc.c.
References bcsc_handle_comm_s::clustnbr, bcsc_handle_comm_s::clustnum, bcsc_handle_comm_s::comm, bcsc_handle_comm_s::data_comm, bcsc_handle_comm_s::flttype, and pastix_int_t.
Referenced by bcsc_init_struct().
void bcsc_handle_comm_exit | ( | bcsc_handle_comm_t * | bcsc_comm | ) |
Frees the bcsc_handle_comm pointers.
[in,out] | bcsc_comm | The bcsc_handle_comm_t structure. |
Definition at line 79 of file bcsc.c.
References bcsc_handle_comm_s::clustnbr, bcsc_handle_comm_s::data_comm, bcsc_exch_comm_s::idxbuf, bcsc_proc_comm_s::recvAAt, bcsc_proc_comm_s::sendA, bcsc_proc_comm_s::sendAAt, bcsc_proc_comm_s::sendAt, and bcsc_exch_comm_s::valbuf.
Referenced by bcsc_exit_struct().
pastix_int_t * bcsc_init_col2cblk_shm | ( | const SolverMatrix * | solvmtx, |
const pastix_bcsc_t * | bcsc | ||
) |
Creates the array which represents the repartition of each column in the block structure. The array size is spm->gNexp where:
[in] | solvmtx | The solvmtx structure associated to the problem. |
[in,out] | bcsc | The internal block CSC structure. The number of local columns is updated. |
Definition at line 522 of file bcsc.c.
References solver_matrix_s::cblknbr, solver_matrix_s::cblktab, solver_cblk_s::cblktype, solver_cblk_s::fcolnum, and pastix_int_t.
Referenced by bcsc_init_col2cblk().
pastix_int_t * bcsc_init_col2cblk | ( | const SolverMatrix * | solvmtx, |
const pastix_bcsc_t * | bcsc, | ||
const spmatrix_t * | spm | ||
) |
Creates the array which represents the repartition of each column in the block structure. This routine calls bcsc_init_col2cblk_shm or bcsc_init_col2cblk_dst according to the way the matrix is stored in the memory.
[in] | solvmtx | The solvmtx structure associated to the problem. |
[in] | bcsc | The internal block CSC structure. The number of local columns is updated. |
[in] | spm | The initial sparse matrix in the spm format. |
Definition at line 721 of file bcsc.c.
References bcsc_init_col2cblk_shm(), and pastix_int_t.
Referenced by bcsc_init_struct().
pastix_int_t bcsc_init_coltab | ( | const spmatrix_t * | spm, |
const pastix_order_t * | ord, | ||
const SolverMatrix * | solvmtx, | ||
pastix_bcsc_t * | bcsc | ||
) |
Initializes the coltab of a block csc matrix. The coltab corresponds to the number of rows (expended) per column (non expended). If the matrix is distributed in the memory, this function also calls the routines which exchange the amount of data for the communication, store the indexes and values to send and exchange the indexes.
[in] | spm | The spm structure that stores the dofs. |
[in] | ord | The ordering which needs to be applied on the spm to generate the block csc. |
[in] | solvmtx | The solver matrix structure which describes the data distribution. |
[in,out] | bcsc | On entry, the pointer to an allocated bcsc. On exit, the bcsc stores the initialized coltab split per block corresponding to the input spm with the permutation applied and grouped accordingly to the distribution described in solvmtx. |
Definition at line 1616 of file bcsc.c.
References bcsc_init_dofshift(), bcsc_init_global_coltab(), solver_cblk_s::bcscnum, cblk_colnbr(), solver_matrix_s::cblknbr, bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::cblktype, bcsc_cblk_s::colnbr, bcsc_cblk_s::coltab, solver_matrix_s::faninnbr, solver_cblk_s::fcolnum, pastix_int_t, and solver_matrix_s::recvnbr.
Referenced by bcsc_init().
void bcsc_restore_coltab | ( | pastix_bcsc_t * | bcsc | ) |
Restores the coltab array when it has been modified to initialize the row and values arrays.
[in,out] | bcsc | On entry, the bcsc to restore. On exit, the coltab array of the bcsc is restored to the correct indexes. |
Definition at line 1700 of file bcsc.c.
References bcsc_cblk_s::colnbr, bcsc_cblk_s::coltab, and pastix_int_t.
Referenced by bcsc_cinit(), bcsc_dinit(), bcsc_sinit(), and bcsc_zinit().
void bcsc_init_struct | ( | const spmatrix_t * | spm, |
const SolverMatrix * | solvmtx, | ||
pastix_bcsc_t * | bcsc | ||
) |
Initializes a block csc.
[in] | spm | The initial sparse matrix in the spm format. |
[in] | solvmtx | The solver matrix structure which describes the data distribution. |
[in,out] | bcsc | On entry, the pointer to an allocated bcsc. On exit, the bcsc stores the input spm with the permutation applied and grouped accordingly to the distribution described in solvmtx. |
Definition at line 1739 of file bcsc.c.
References bcsc_handle_comm_init(), bcsc_init_col2cblk(), solver_matrix_s::nodenbr, and pastix_int_t.
Referenced by bcsc_init().
void bcsc_exit_struct | ( | pastix_bcsc_t * | bcsc | ) |
Cleanup the bcsc struct. (symmetric of bcsc_init_struct)
[in,out] | bcsc | On entry, the pointer to the initialized bcsc. On exit, the bcsc freed from the informations initialized by bcsc_init_struct(). |
Definition at line 1781 of file bcsc.c.
References bcsc_handle_comm_exit().
Referenced by bcscExit().
void bcsc_dinit | ( | const spmatrix_t * | spm, |
const pastix_order_t * | ord, | ||
const SolverMatrix * | solvmtx, | ||
int | initAt, | ||
pastix_bcsc_t * | bcsc, | ||
pastix_int_t | valuesize | ||
) |
Initializes a centralize double block csc.
[in] | spm | The initial sparse matrix in the spm format. |
[in] | ord | The ordering that needs to be applied on the spm to generate the block csc. |
[in] | solvmtx | The solver matrix structure that describe the data distribution. |
[in] | initAt | A flag to enable/disable the initialization of A'. |
[in,out] | bcsc | On entry, the pointer to an allocated bcsc. On exit, the bcsc stores the input spm with the permutation applied and grouped according to the distribution described in solvmtx. |
[in] | valuesize | The number of non zero unknowns in the matrix. |
Definition at line 1378 of file bcsc_dinit.c.
References bcsc_dinit_A(), bcsc_dinit_At(), bcsc_dsort(), bcsc_restore_coltab(), and pastix_int_t.
Referenced by bcsc_init().
void bcsc_cinit | ( | const spmatrix_t * | spm, |
const pastix_order_t * | ord, | ||
const SolverMatrix * | solvmtx, | ||
int | initAt, | ||
pastix_bcsc_t * | bcsc, | ||
pastix_int_t | valuesize | ||
) |
Initializes a centralize pastix_complex32_t block csc.
[in] | spm | The initial sparse matrix in the spm format. |
[in] | ord | The ordering that needs to be applied on the spm to generate the block csc. |
[in] | solvmtx | The solver matrix structure that describe the data distribution. |
[in] | initAt | A flag to enable/disable the initialization of A'. |
[in,out] | bcsc | On entry, the pointer to an allocated bcsc. On exit, the bcsc stores the input spm with the permutation applied and grouped according to the distribution described in solvmtx. |
[in] | valuesize | The number of non zero unknowns in the matrix. |
Definition at line 1378 of file bcsc_cinit.c.
References bcsc_cinit_A(), bcsc_cinit_At(), bcsc_csort(), bcsc_restore_coltab(), and pastix_int_t.
Referenced by bcsc_init().
void bcsc_zinit | ( | const spmatrix_t * | spm, |
const pastix_order_t * | ord, | ||
const SolverMatrix * | solvmtx, | ||
int | initAt, | ||
pastix_bcsc_t * | bcsc, | ||
pastix_int_t | valuesize | ||
) |
Initializes a centralize pastix_complex64_t block csc.
[in] | spm | The initial sparse matrix in the spm format. |
[in] | ord | The ordering that needs to be applied on the spm to generate the block csc. |
[in] | solvmtx | The solver matrix structure that describe the data distribution. |
[in] | initAt | A flag to enable/disable the initialization of A'. |
[in,out] | bcsc | On entry, the pointer to an allocated bcsc. On exit, the bcsc stores the input spm with the permutation applied and grouped according to the distribution described in solvmtx. |
[in] | valuesize | The number of non zero unknowns in the matrix. |
Definition at line 1378 of file bcsc_zinit.c.
References bcsc_restore_coltab(), bcsc_zinit_A(), bcsc_zinit_At(), bcsc_zsort(), and pastix_int_t.
Referenced by bcsc_init().
void bcsc_sinit | ( | const spmatrix_t * | spm, |
const pastix_order_t * | ord, | ||
const SolverMatrix * | solvmtx, | ||
int | initAt, | ||
pastix_bcsc_t * | bcsc, | ||
pastix_int_t | valuesize | ||
) |
Initializes a centralize float block csc.
[in] | spm | The initial sparse matrix in the spm format. |
[in] | ord | The ordering that needs to be applied on the spm to generate the block csc. |
[in] | solvmtx | The solver matrix structure that describe the data distribution. |
[in] | initAt | A flag to enable/disable the initialization of A'. |
[in,out] | bcsc | On entry, the pointer to an allocated bcsc. On exit, the bcsc stores the input spm with the permutation applied and grouped according to the distribution described in solvmtx. |
[in] | valuesize | The number of non zero unknowns in the matrix. |
Definition at line 1378 of file bcsc_sinit.c.
References bcsc_restore_coltab(), bcsc_sinit_A(), bcsc_sinit_At(), bcsc_ssort(), and pastix_int_t.
Referenced by bcsc_init().
|
inlinestatic |
Initializes the A values of the block csc stored in the given spm.
[in] | spm | The initial sparse matrix in the spm format. |
[in] | ord | The ordering which needs to be applied on the spm to generate the block csc. |
[in] | solvmtx | The solver matrix structure which describes the data distribution. |
[in,out] | bcsc | On entry, the pointer to an allocated bcsc. On exit, the bcsc fields are updated. |
TODO |
Definition at line 1050 of file bcsc_dinit.c.
References solver_cblk_s::bcscnum, solver_matrix_s::cblktab, solver_cblk_s::fcolnum, pastix_int_t, and pastix_order_s::permtab.
Referenced by bcsc_dinit().
|
inlinestatic |
Initializes the At values in the block cscstored in the given spm.
This routine initializes either : The symmetric upper part (L^t) The symmetric upper part (L^h) The transpose part of A (A^t -> U)
[in] | spm | The initial sparse matrix in the spm format. |
[in] | ord | The ordering which needs to be applied on the spm to generate the block csc. |
[in] | solvmtx | The solver matrix structure which describes the data distribution. |
[in,out] | rowtab | The row tab of the bcsc or the row tab associated to At. |
[in,out] | bcsc | On entry, the pointer to an allocated bcsc. On exit, the bcsc fields are updated. |
TODO |
Definition at line 1176 of file bcsc_dinit.c.
References solver_cblk_s::bcscnum, solver_matrix_s::cblktab, solver_cblk_s::fcolnum, pastix_int_t, and pastix_order_s::permtab.
Referenced by bcsc_dinit().
|
inlinestatic |
Sorts the block csc subarray associated to each column block.
[in] | bcsc | On entry, the pointer to an allocated bcsc. |
[in] | rowtab | The initial sparse matrix in the spm format. |
[in] | valtab | The ordering that needs to be applied on the spm to generate the block csc. |
Definition at line 1312 of file bcsc_dinit.c.
References bcsc_cblk_s::colnbr, bcsc_cblk_s::coltab, and pastix_int_t.
Referenced by bcsc_dinit().
|
inlinestatic |
Initializes the A values of the block csc stored in the given spm.
[in] | spm | The initial sparse matrix in the spm format. |
[in] | ord | The ordering which needs to be applied on the spm to generate the block csc. |
[in] | solvmtx | The solver matrix structure which describes the data distribution. |
[in,out] | bcsc | On entry, the pointer to an allocated bcsc. On exit, the bcsc fields are updated. |
TODO |
Definition at line 1050 of file bcsc_sinit.c.
References solver_cblk_s::bcscnum, solver_matrix_s::cblktab, solver_cblk_s::fcolnum, pastix_int_t, and pastix_order_s::permtab.
Referenced by bcsc_sinit().
|
inlinestatic |
Initializes the At values in the block cscstored in the given spm.
This routine initializes either : The symmetric upper part (L^t) The symmetric upper part (L^h) The transpose part of A (A^t -> U)
[in] | spm | The initial sparse matrix in the spm format. |
[in] | ord | The ordering which needs to be applied on the spm to generate the block csc. |
[in] | solvmtx | The solver matrix structure which describes the data distribution. |
[in,out] | rowtab | The row tab of the bcsc or the row tab associated to At. |
[in,out] | bcsc | On entry, the pointer to an allocated bcsc. On exit, the bcsc fields are updated. |
TODO |
Definition at line 1176 of file bcsc_sinit.c.
References solver_cblk_s::bcscnum, solver_matrix_s::cblktab, solver_cblk_s::fcolnum, pastix_int_t, and pastix_order_s::permtab.
Referenced by bcsc_sinit().
|
inlinestatic |
Sorts the block csc subarray associated to each column block.
[in] | bcsc | On entry, the pointer to an allocated bcsc. |
[in] | rowtab | The initial sparse matrix in the spm format. |
[in] | valtab | The ordering that needs to be applied on the spm to generate the block csc. |
Definition at line 1312 of file bcsc_sinit.c.
References bcsc_cblk_s::colnbr, bcsc_cblk_s::coltab, and pastix_int_t.
Referenced by bcsc_sinit().
|
inlinestatic |
Initializes the A values of the block csc stored in the given spm.
[in] | spm | The initial sparse matrix in the spm format. |
[in] | ord | The ordering which needs to be applied on the spm to generate the block csc. |
[in] | solvmtx | The solver matrix structure which describes the data distribution. |
[in,out] | bcsc | On entry, the pointer to an allocated bcsc. On exit, the bcsc fields are updated. |
TODO |
Definition at line 1050 of file bcsc_zinit.c.
References solver_cblk_s::bcscnum, solver_matrix_s::cblktab, solver_cblk_s::fcolnum, pastix_int_t, and pastix_order_s::permtab.
Referenced by bcsc_zinit().
|
inlinestatic |
Initializes the At values in the block cscstored in the given spm.
This routine initializes either : The symmetric upper part (L^t) The hermitian upper part (L^h) The transpose part of A (A^t -> U)
[in] | spm | The initial sparse matrix in the spm format. |
[in] | ord | The ordering which needs to be applied on the spm to generate the block csc. |
[in] | solvmtx | The solver matrix structure which describes the data distribution. |
[in,out] | rowtab | The row tab of the bcsc or the row tab associated to At. |
[in,out] | bcsc | On entry, the pointer to an allocated bcsc. On exit, the bcsc fields are updated. |
TODO |
Definition at line 1176 of file bcsc_zinit.c.
References pastix_int_t.
Referenced by bcsc_zinit().
|
inlinestatic |
Sorts the block csc subarray associated to each column block.
[in] | bcsc | On entry, the pointer to an allocated bcsc. |
[in] | rowtab | The initial sparse matrix in the spm format. |
[in] | valtab | The ordering that needs to be applied on the spm to generate the block csc. |
Definition at line 1312 of file bcsc_zinit.c.
References bcsc_cblk_s::colnbr, bcsc_cblk_s::coltab, and pastix_int_t.
Referenced by bcsc_zinit().
|
inlinestatic |
Initializes the A values of the block csc stored in the given spm.
[in] | spm | The initial sparse matrix in the spm format. |
[in] | ord | The ordering which needs to be applied on the spm to generate the block csc. |
[in] | solvmtx | The solver matrix structure which describes the data distribution. |
[in,out] | bcsc | On entry, the pointer to an allocated bcsc. On exit, the bcsc fields are updated. |
TODO |
Definition at line 1050 of file bcsc_cinit.c.
References solver_cblk_s::bcscnum, solver_matrix_s::cblktab, solver_cblk_s::fcolnum, pastix_int_t, and pastix_order_s::permtab.
Referenced by bcsc_cinit().
|
inlinestatic |
Initializes the At values in the block cscstored in the given spm.
This routine initializes either : The symmetric upper part (L^t) The hermitian upper part (L^h) The transpose part of A (A^t -> U)
[in] | spm | The initial sparse matrix in the spm format. |
[in] | ord | The ordering which needs to be applied on the spm to generate the block csc. |
[in] | solvmtx | The solver matrix structure which describes the data distribution. |
[in,out] | rowtab | The row tab of the bcsc or the row tab associated to At. |
[in,out] | bcsc | On entry, the pointer to an allocated bcsc. On exit, the bcsc fields are updated. |
TODO |
Definition at line 1176 of file bcsc_cinit.c.
References solver_cblk_s::bcscnum, solver_matrix_s::cblktab, solver_cblk_s::fcolnum, pastix_int_t, and pastix_order_s::permtab.
Referenced by bcsc_cinit().
|
inlinestatic |
Sorts the block csc subarray associated to each column block.
[in] | bcsc | On entry, the pointer to an allocated bcsc. |
[in] | rowtab | The initial sparse matrix in the spm format. |
[in] | valtab | The ordering that needs to be applied on the spm to generate the block csc. |
Definition at line 1312 of file bcsc_cinit.c.
References bcsc_cblk_s::colnbr, bcsc_cblk_s::coltab, and pastix_int_t.
Referenced by bcsc_cinit().
double bcsc_dnorm_max | ( | const pastix_bcsc_t * | bcsc | ) |
Compute the max norm of a bcsc matrix.
[in] | bcsc | TODO |
The | norm of the matrix. |
Definition at line 38 of file bcsc_dnorm.c.
References pastix_int_t.
Referenced by bcsc_dnorm().
double bcsc_dnorm_inf | ( | const pastix_bcsc_t * | bcsc | ) |
Compute the infinity norm of a bcsc matrix. The infinity norm is equal to the maximum value of the sum of the absolute values of the elements of each rows.
[in] | bcsc | The Pastix bcsc. |
The | norm of the matrix. |
Definition at line 83 of file bcsc_dnorm.c.
Referenced by bcsc_dnorm().
double bcsc_dnorm_one | ( | const pastix_bcsc_t * | bcsc | ) |
Compute the norm 1 of a bcsc matrix. Norm 1 is equal to the maximum value of the sum of the absolute values of the elements of each columns.
[in] | bcsc | The Pastix bcsc. |
The | norm of the matrix. |
Definition at line 160 of file bcsc_dnorm.c.
Referenced by bcsc_dnorm().
double bcsc_dnorm_frobenius | ( | const pastix_bcsc_t * | bcsc | ) |
Compute the frobenius norm of a bcsc matrix.
[in] | bcsc | The Pastix bcsc. |
The | norm of the matrix |
Definition at line 202 of file bcsc_dnorm.c.
References pastix_int_t.
Referenced by bcsc_dnorm().
float bcsc_snorm_max | ( | const pastix_bcsc_t * | bcsc | ) |
Compute the max norm of a bcsc matrix.
[in] | bcsc | TODO |
The | norm of the matrix. |
Definition at line 38 of file bcsc_snorm.c.
References pastix_int_t.
Referenced by bcsc_snorm().
float bcsc_snorm_inf | ( | const pastix_bcsc_t * | bcsc | ) |
Compute the infinity norm of a bcsc matrix. The infinity norm is equal to the maximum value of the sum of the absolute values of the elements of each rows.
[in] | bcsc | The Pastix bcsc. |
The | norm of the matrix. |
Definition at line 83 of file bcsc_snorm.c.
Referenced by bcsc_snorm().
float bcsc_snorm_one | ( | const pastix_bcsc_t * | bcsc | ) |
Compute the norm 1 of a bcsc matrix. Norm 1 is equal to the maximum value of the sum of the absolute values of the elements of each columns.
[in] | bcsc | The Pastix bcsc. |
The | norm of the matrix. |
Definition at line 160 of file bcsc_snorm.c.
Referenced by bcsc_snorm().
float bcsc_snorm_frobenius | ( | const pastix_bcsc_t * | bcsc | ) |
Compute the frobenius norm of a bcsc matrix.
[in] | bcsc | The Pastix bcsc. |
The | norm of the matrix |
Definition at line 202 of file bcsc_snorm.c.
References pastix_int_t.
Referenced by bcsc_snorm().
double bcsc_znorm_max | ( | const pastix_bcsc_t * | bcsc | ) |
Compute the max norm of a bcsc matrix.
[in] | bcsc | TODO |
The | norm of the matrix. |
Definition at line 38 of file bcsc_znorm.c.
References pastix_int_t.
Referenced by bcsc_znorm().
double bcsc_znorm_inf | ( | const pastix_bcsc_t * | bcsc | ) |
Compute the infinity norm of a bcsc matrix. The infinity norm is equal to the maximum value of the sum of the absolute values of the elements of each rows.
[in] | bcsc | The Pastix bcsc. |
The | norm of the matrix. |
Definition at line 83 of file bcsc_znorm.c.
Referenced by bcsc_znorm().
double bcsc_znorm_one | ( | const pastix_bcsc_t * | bcsc | ) |
Compute the norm 1 of a bcsc matrix. Norm 1 is equal to the maximum value of the sum of the absolute values of the elements of each columns.
[in] | bcsc | The Pastix bcsc. |
The | norm of the matrix. |
Definition at line 160 of file bcsc_znorm.c.
Referenced by bcsc_znorm().
double bcsc_znorm_frobenius | ( | const pastix_bcsc_t * | bcsc | ) |
Compute the frobenius norm of a bcsc matrix.
[in] | bcsc | The Pastix bcsc. |
The | norm of the matrix |
Definition at line 202 of file bcsc_znorm.c.
References pastix_int_t.
Referenced by bcsc_znorm().
float bcsc_cnorm_max | ( | const pastix_bcsc_t * | bcsc | ) |
Compute the max norm of a bcsc matrix.
[in] | bcsc | TODO |
The | norm of the matrix. |
Definition at line 38 of file bcsc_cnorm.c.
References pastix_int_t.
Referenced by bcsc_cnorm().
float bcsc_cnorm_inf | ( | const pastix_bcsc_t * | bcsc | ) |
Compute the infinity norm of a bcsc matrix. The infinity norm is equal to the maximum value of the sum of the absolute values of the elements of each rows.
[in] | bcsc | The Pastix bcsc. |
The | norm of the matrix. |
Definition at line 83 of file bcsc_cnorm.c.
Referenced by bcsc_cnorm().
float bcsc_cnorm_one | ( | const pastix_bcsc_t * | bcsc | ) |
Compute the norm 1 of a bcsc matrix. Norm 1 is equal to the maximum value of the sum of the absolute values of the elements of each columns.
[in] | bcsc | The Pastix bcsc. |
The | norm of the matrix. |
Definition at line 160 of file bcsc_cnorm.c.
Referenced by bcsc_cnorm().
float bcsc_cnorm_frobenius | ( | const pastix_bcsc_t * | bcsc | ) |
Compute the frobenius norm of a bcsc matrix.
[in] | bcsc | The Pastix bcsc. |
The | norm of the matrix |
Definition at line 202 of file bcsc_cnorm.c.
References pastix_int_t.
Referenced by bcsc_cnorm().
void pthread_bcsc_dspmv | ( | isched_thread_t * | ctx, |
void * | args | ||
) |
Compute the matrix-vector product y = alpha * op(A) * x + beta * y.
Where A is given in the bcsc format, x and y are two vectors of size n, and alpha and beta are two scalars. The op function is specified by the trans parameter and performs the operation as follows: trans = PastixNoTrans y := alpha*A x + beta*y trans = PastixTrans y := alpha*A' *x + beta*y trans = PastixTrans y := alpha(A')*x + beta*y
[in] | ctx | the context of the current thread |
[in,out] | args | The parameter as specified in bcsc_dspmv. |
Definition at line 305 of file bcsc_dspmv.c.
References pastix_int_t.
Referenced by bcsc_dspmv_smp().
void pthread_bcsc_dspmv_tasktab | ( | isched_thread_t * | ctx, |
void * | args | ||
) |
Compute the matrix-vector product y = alpha * op(A) * x + beta * y.
Where A is given in the bcsc format, x and y are two vectors of size n, and alpha and beta are two scalars. The op function is specified by the trans parameter and performs the operation as follows: trans = PastixNoTrans y := alpha*A x + beta*y trans = PastixTrans y := alpha*A' *x + beta*y trans = PastixTrans y := alpha(A')*x + beta*y
[in] | ctx | the context of the current thread |
[in,out] | args | The parameter as specified in bcsc_dspmv. |
Definition at line 357 of file bcsc_dspmv.c.
References solver_cblk_s::bcscnum, task_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_int_t, PastixGeneral, PastixNoTrans, PastixSymmetric, and PastixTrans.
Referenced by bcsc_dspmv_smp().
void bcsc_dspmv_get_balanced_indexes | ( | const pastix_data_t * | pastix_data, |
struct d_argument_spmv_s * | args | ||
) |
Initialize indexes for vector pointer and bloc indexes for parallel version of spmv.
This function Initial indexes for each thread in order to computes it once instead of once per thread. This is a more sophisticated version trying to balance the load for each thread in terms of bloc size.
[in] | pastix_data | The pastix_data structure providing number of threads and holding the A matrix. |
[out] | args | The argument containing arrays to initialise (blocs and indexes). |
Definition at line 472 of file bcsc_dspmv.c.
References pastix_data_s::bcsc, solver_matrix_s::cblktab, bcsc_cblk_s::colnbr, bcsc_cblk_s::coltab, pastix_data_s::csc, solver_cblk_s::fcolnum, pastix_data_s::isched, pastix_int_t, PastixGeneral, and pastix_data_s::solvmatr.
Referenced by bcsc_dspmv_smp().
void pthread_bcsc_sspmv | ( | isched_thread_t * | ctx, |
void * | args | ||
) |
Compute the matrix-vector product y = alpha * op(A) * x + beta * y.
Where A is given in the bcsc format, x and y are two vectors of size n, and alpha and beta are two scalars. The op function is specified by the trans parameter and performs the operation as follows: trans = PastixNoTrans y := alpha*A x + beta*y trans = PastixTrans y := alpha*A' *x + beta*y trans = PastixTrans y := alpha(A')*x + beta*y
[in] | ctx | the context of the current thread |
[in,out] | args | The parameter as specified in bcsc_sspmv. |
Definition at line 305 of file bcsc_sspmv.c.
References pastix_int_t.
Referenced by bcsc_sspmv_smp().
void pthread_bcsc_sspmv_tasktab | ( | isched_thread_t * | ctx, |
void * | args | ||
) |
Compute the matrix-vector product y = alpha * op(A) * x + beta * y.
Where A is given in the bcsc format, x and y are two vectors of size n, and alpha and beta are two scalars. The op function is specified by the trans parameter and performs the operation as follows: trans = PastixNoTrans y := alpha*A x + beta*y trans = PastixTrans y := alpha*A' *x + beta*y trans = PastixTrans y := alpha(A')*x + beta*y
[in] | ctx | the context of the current thread |
[in,out] | args | The parameter as specified in bcsc_sspmv. |
Definition at line 357 of file bcsc_sspmv.c.
References solver_cblk_s::bcscnum, task_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_int_t, PastixGeneral, PastixNoTrans, PastixSymmetric, and PastixTrans.
Referenced by bcsc_sspmv_smp().
void bcsc_sspmv_get_balanced_indexes | ( | const pastix_data_t * | pastix_data, |
struct s_argument_spmv_s * | args | ||
) |
Initialize indexes for vector pointer and bloc indexes for parallel version of spmv.
This function Initial indexes for each thread in order to computes it once instead of once per thread. This is a more sophisticated version trying to balance the load for each thread in terms of bloc size.
[in] | pastix_data | The pastix_data structure providing number of threads and holding the A matrix. |
[out] | args | The argument containing arrays to initialise (blocs and indexes). |
Definition at line 472 of file bcsc_sspmv.c.
References pastix_data_s::bcsc, solver_matrix_s::cblktab, bcsc_cblk_s::colnbr, bcsc_cblk_s::coltab, pastix_data_s::csc, solver_cblk_s::fcolnum, pastix_data_s::isched, pastix_int_t, PastixGeneral, and pastix_data_s::solvmatr.
Referenced by bcsc_sspmv_smp().
void pthread_bcsc_zspmv | ( | isched_thread_t * | ctx, |
void * | args | ||
) |
Compute the matrix-vector product y = alpha * op(A) * x + beta * y.
Where A is given in the bcsc format, x and y are two vectors of size n, and alpha and beta are two scalars. The op function is specified by the trans parameter and performs the operation as follows: trans = PastixNoTrans y := alpha*A *x + beta*y trans = PastixTrans y := alpha*A' *x + beta*y trans = PastixConjTrans y := alpha*conj(A')*x + beta*y
[in] | ctx | the context of the current thread |
[in,out] | args | The parameter as specified in bcsc_zspmv. |
Definition at line 305 of file bcsc_zspmv.c.
References pastix_int_t.
Referenced by bcsc_zspmv_smp().
void pthread_bcsc_zspmv_tasktab | ( | isched_thread_t * | ctx, |
void * | args | ||
) |
Compute the matrix-vector product y = alpha * op(A) * x + beta * y.
Where A is given in the bcsc format, x and y are two vectors of size n, and alpha and beta are two scalars. The op function is specified by the trans parameter and performs the operation as follows: trans = PastixNoTrans y := alpha*A *x + beta*y trans = PastixTrans y := alpha*A' *x + beta*y trans = PastixConjTrans y := alpha*conj(A')*x + beta*y
[in] | ctx | the context of the current thread |
[in,out] | args | The parameter as specified in bcsc_zspmv. |
Definition at line 357 of file bcsc_zspmv.c.
References solver_cblk_s::bcscnum, task_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_int_t, PastixConjTrans, PastixGeneral, PastixHermitian, PastixNoTrans, PastixSymmetric, and PastixTrans.
Referenced by bcsc_zspmv_smp().
void bcsc_zspmv_get_balanced_indexes | ( | const pastix_data_t * | pastix_data, |
struct z_argument_spmv_s * | args | ||
) |
Initialize indexes for vector pointer and bloc indexes for parallel version of spmv.
This function Initial indexes for each thread in order to computes it once instead of once per thread. This is a more sophisticated version trying to balance the load for each thread in terms of bloc size.
[in] | pastix_data | The pastix_data structure providing number of threads and holding the A matrix. |
[out] | args | The argument containing arrays to initialise (blocs and indexes). |
Definition at line 472 of file bcsc_zspmv.c.
References pastix_data_s::bcsc, solver_matrix_s::cblktab, bcsc_cblk_s::colnbr, bcsc_cblk_s::coltab, pastix_data_s::csc, solver_cblk_s::fcolnum, pastix_data_s::isched, pastix_int_t, PastixGeneral, and pastix_data_s::solvmatr.
Referenced by bcsc_zspmv_smp().
void pthread_bcsc_cspmv | ( | isched_thread_t * | ctx, |
void * | args | ||
) |
Compute the matrix-vector product y = alpha * op(A) * x + beta * y.
Where A is given in the bcsc format, x and y are two vectors of size n, and alpha and beta are two scalars. The op function is specified by the trans parameter and performs the operation as follows: trans = PastixNoTrans y := alpha*A *x + beta*y trans = PastixTrans y := alpha*A' *x + beta*y trans = PastixConjTrans y := alpha*conjf(A')*x + beta*y
[in] | ctx | the context of the current thread |
[in,out] | args | The parameter as specified in bcsc_cspmv. |
Definition at line 305 of file bcsc_cspmv.c.
References pastix_int_t.
Referenced by bcsc_cspmv_smp().
void pthread_bcsc_cspmv_tasktab | ( | isched_thread_t * | ctx, |
void * | args | ||
) |
Compute the matrix-vector product y = alpha * op(A) * x + beta * y.
Where A is given in the bcsc format, x and y are two vectors of size n, and alpha and beta are two scalars. The op function is specified by the trans parameter and performs the operation as follows: trans = PastixNoTrans y := alpha*A *x + beta*y trans = PastixTrans y := alpha*A' *x + beta*y trans = PastixConjTrans y := alpha*conjf(A')*x + beta*y
[in] | ctx | the context of the current thread |
[in,out] | args | The parameter as specified in bcsc_cspmv. |
Definition at line 357 of file bcsc_cspmv.c.
References solver_cblk_s::bcscnum, task_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_int_t, PastixConjTrans, PastixGeneral, PastixHermitian, PastixNoTrans, PastixSymmetric, and PastixTrans.
Referenced by bcsc_cspmv_smp().
void bcsc_cspmv_get_balanced_indexes | ( | const pastix_data_t * | pastix_data, |
struct c_argument_spmv_s * | args | ||
) |
Initialize indexes for vector pointer and bloc indexes for parallel version of spmv.
This function Initial indexes for each thread in order to computes it once instead of once per thread. This is a more sophisticated version trying to balance the load for each thread in terms of bloc size.
[in] | pastix_data | The pastix_data structure providing number of threads and holding the A matrix. |
[out] | args | The argument containing arrays to initialise (blocs and indexes). |
Definition at line 472 of file bcsc_cspmv.c.
References pastix_data_s::bcsc, solver_matrix_s::cblktab, bcsc_cblk_s::colnbr, bcsc_cblk_s::coltab, pastix_data_s::csc, solver_cblk_s::fcolnum, pastix_data_s::isched, pastix_int_t, PastixGeneral, and pastix_data_s::solvmatr.
Referenced by bcsc_cspmv_smp().
|
inlinestatic |
Compute y <- alpha * x + y (Parallel version).
[in] | ctx | The context about the current thread |
[in,out] | args | The parameter providing the size of the vectors, a scalar, the vectors x and y. |
Definition at line 452 of file bvec_dcompute.c.
References pastix_int_t.
Referenced by bvec_daxpy_smp().
|
inlinestatic |
Compute the scalar product x.y. (Parallel version)
[in] | ctx | The context of the current thread. |
[in] | args | The argument providing the vectors x and y and their size n. |
Definition at line 772 of file bvec_dcompute.c.
References pastix_int_t.
Referenced by bvec_ddot_smp().
|
inlinestatic |
Copy a vector y = x (parallel version)
Perform the coopy of x into y.
[in] | ctx | The context of the current thread |
[in,out] | args | The argument containing the vector copy and the one to copy and their size. |
Definition at line 930 of file bvec_dcompute.c.
References pastix_int_t.
Referenced by bvec_dcopy_smp().
|
inlinestatic |
Compute.
\[ y = \alpha A x + \beta y \]
(Parallel version)
This is the function called by bvec_dgemv_smp to perform gemv (Parallel version)
[in] | ctx | Information about number of thread and rank of current thread. |
[in,out] | args | The number of rows (m) and columns (n) of the matrix A, vecteors y (size m) and x (size n), scalars alpha and beta. The dense matrix A of size lda-by-n, and its leading dimension lda >= max(1,m), and the vector x of size n. The result is stored in y. |
Definition at line 1182 of file bvec_dcompute.c.
References pastix_int_t.
Referenced by bvec_dgemv_smp().
|
inlinestatic |
Compute y <- alpha * x + y (Parallel version).
[in] | ctx | The context about the current thread |
[in,out] | args | The parameter providing the size of the vectors, a scalar, the vectors x and y. |
Definition at line 452 of file bvec_scompute.c.
References pastix_int_t.
Referenced by bvec_saxpy_smp().
|
inlinestatic |
Compute the scalar product x.y. (Parallel version)
[in] | ctx | The context of the current thread. |
[in] | args | The argument providing the vectors x and y and their size n. |
Definition at line 772 of file bvec_scompute.c.
References pastix_int_t.
Referenced by bvec_sdot_smp().
|
inlinestatic |
Copy a vector y = x (parallel version)
Perform the coopy of x into y.
[in] | ctx | The context of the current thread |
[in,out] | args | The argument containing the vector copy and the one to copy and their size. |
Definition at line 930 of file bvec_scompute.c.
References pastix_int_t.
Referenced by bvec_scopy_smp().
|
inlinestatic |
Compute.
\[ y = \alpha A x + \beta y \]
(Parallel version)
This is the function called by bvec_sgemv_smp to perform gemv (Parallel version)
[in] | ctx | Information about number of thread and rank of current thread. |
[in,out] | args | The number of rows (m) and columns (n) of the matrix A, vecteors y (size m) and x (size n), scalars alpha and beta. The dense matrix A of size lda-by-n, and its leading dimension lda >= max(1,m), and the vector x of size n. The result is stored in y. |
Definition at line 1182 of file bvec_scompute.c.
References pastix_int_t.
Referenced by bvec_sgemv_smp().
|
inlinestatic |
Compute y <- alpha * x + y (Parallel version).
[in] | ctx | The context about the current thread |
[in,out] | args | The parameter providing the size of the vectors, a scalar, the vectors x and y. |
Definition at line 452 of file bvec_zcompute.c.
References pastix_int_t.
Referenced by bvec_zaxpy_smp().
|
inlinestatic |
Compute the scalar product x.y. (Parallel version)
[in] | ctx | The context of the current thread. |
[in] | args | The argument providing the vectors x and y and their size n. |
Definition at line 772 of file bvec_zcompute.c.
References pastix_int_t.
Referenced by bvec_zdotu_smp().
|
inlinestatic |
Copy a vector y = x (parallel version)
Perform the coopy of x into y.
[in] | ctx | The context of the current thread |
[in,out] | args | The argument containing the vector copy and the one to copy and their size. |
Definition at line 930 of file bvec_zcompute.c.
References pastix_int_t.
Referenced by bvec_zcopy_smp().
|
inlinestatic |
Compute.
\[ y = \alpha A x + \beta y \]
(Parallel version)
This is the function called by bvec_zgemv_smp to perform gemv (Parallel version)
[in] | ctx | Information about number of thread and rank of current thread. |
[in,out] | args | The number of rows (m) and columns (n) of the matrix A, vecteors y (size m) and x (size n), scalars alpha and beta. The dense matrix A of size lda-by-n, and its leading dimension lda >= max(1,m), and the vector x of size n. The result is stored in y. |
Definition at line 1182 of file bvec_zcompute.c.
References pastix_int_t.
Referenced by bvec_zgemv_smp().
|
inlinestatic |
Compute y <- alpha * x + y (Parallel version).
[in] | ctx | The context about the current thread |
[in,out] | args | The parameter providing the size of the vectors, a scalar, the vectors x and y. |
Definition at line 452 of file bvec_ccompute.c.
References pastix_int_t.
Referenced by bvec_caxpy_smp().
|
inlinestatic |
Compute the scalar product x.y. (Parallel version)
[in] | ctx | The context of the current thread. |
[in] | args | The argument providing the vectors x and y and their size n. |
Definition at line 772 of file bvec_ccompute.c.
References pastix_int_t.
Referenced by bvec_cdotu_smp().
|
inlinestatic |
Copy a vector y = x (parallel version)
Perform the coopy of x into y.
[in] | ctx | The context of the current thread |
[in,out] | args | The argument containing the vector copy and the one to copy and their size. |
Definition at line 930 of file bvec_ccompute.c.
References pastix_int_t.
Referenced by bvec_ccopy_smp().
|
inlinestatic |
Compute.
\[ y = \alpha A x + \beta y \]
(Parallel version)
This is the function called by bvec_cgemv_smp to perform gemv (Parallel version)
[in] | ctx | Information about number of thread and rank of current thread. |
[in,out] | args | The number of rows (m) and columns (n) of the matrix A, vecteors y (size m) and x (size n), scalars alpha and beta. The dense matrix A of size lda-by-n, and its leading dimension lda >= max(1,m), and the vector x of size n. The result is stored in y. |
Definition at line 1182 of file bvec_ccompute.c.
References pastix_int_t.
Referenced by bvec_cgemv_smp().
|
inlinestatic |
Apply a row permutation to a right hand side A (LAPACK xlatmr) in the shared memory case.
[in] | pastix_data | The pastix_data structure. |
[in] | dir | The direction of the permutation. If PastixDirForward, A is permuted into PA. If PastixDirBackward, PA is permuted into A. |
[in] | m | The number of rows in the right hand side A, and the number of elements in perm. |
[in] | n | The number of columns in the right hand side A. |
[in,out] | A | A right hand side of size lda-by-n. Referenced as input if dir is PastixDirForward, as output otherwise. |
[in] | lda | The leading dimension of A. |
[in,out] | PA | The structure of the permuted right hand side A. Referenced as inout if dir is PastixDirForward, as input otherwise. |
PASTIX_SUCCESS |
Definition at line 668 of file bvec_dlapmr.c.
References pastix_rhs_s::allocated, pastix_rhs_s::b, pastix_data_s::csc, pastix_data_s::iparm, IPARM_APPLYPERM_WS, pastix_rhs_s::ld, pastix_rhs_s::m, pastix_rhs_s::n, pastix_data_s::ordemesh, orderGetExpandedPeritab(), PASTIX_ERR_BADPARAMETER, pastix_int_t, PASTIX_SUCCESS, and PastixDirBackward.
int bvec_dlapmr | ( | pastix_data_t * | pastix_data, |
pastix_dir_t | dir, | ||
pastix_int_t | m, | ||
pastix_int_t | n, | ||
double * | A, | ||
pastix_int_t | lda, | ||
pastix_rhs_t | PA | ||
) |
Apply a row permutation to a right hand side A (LAPACK xlatmr)
[in] | pastix_data | The pastix_data structure. |
[in] | dir | The direction of the permutation. If PastixDirForward, A is permuted into PA. If PastixDirBackward, PA is permuted into A. |
[in] | m | The number of rows in the right hand side A, and the number of elements in perm. |
[in] | n | The number of columns in the right hand side A. |
[in,out] | A | A right hand side of size lda-by-n. Referenced as input if dir is PastixDirForward, as output otherwise. |
[in] | lda | The leading dimension of A. |
[in,out] | PA | The structure of the permuted right hand side A. Referenced as inout if dir is PastixDirForward, as input otherwise. |
PASTIX_SUCCESS |
Definition at line 816 of file bvec_dlapmr.c.
References pastix_rhs_s::allocated, pastix_rhs_s::b, pastix_data_s::bcsc, pastix_data_s::csc, pastix_rhs_s::flttype, pastix_rhs_s::ld, pastix_rhs_s::m, pastix_rhs_s::n, PastixDirForward, and pastix_data_s::solvmatr.
Referenced by pastix_subtask_applyorder().
|
inlinestatic |
Apply a row permutation to a right hand side A (LAPACK xlatmr) in the shared memory case.
[in] | pastix_data | The pastix_data structure. |
[in] | dir | The direction of the permutation. If PastixDirForward, A is permuted into PA. If PastixDirBackward, PA is permuted into A. |
[in] | m | The number of rows in the right hand side A, and the number of elements in perm. |
[in] | n | The number of columns in the right hand side A. |
[in,out] | A | A right hand side of size lda-by-n. Referenced as input if dir is PastixDirForward, as output otherwise. |
[in] | lda | The leading dimension of A. |
[in,out] | PA | The structure of the permuted right hand side A. Referenced as inout if dir is PastixDirForward, as input otherwise. |
PASTIX_SUCCESS |
Definition at line 668 of file bvec_slapmr.c.
References pastix_rhs_s::allocated, pastix_rhs_s::b, pastix_data_s::csc, pastix_data_s::iparm, IPARM_APPLYPERM_WS, pastix_rhs_s::ld, pastix_rhs_s::m, pastix_rhs_s::n, pastix_data_s::ordemesh, orderGetExpandedPeritab(), PASTIX_ERR_BADPARAMETER, pastix_int_t, PASTIX_SUCCESS, and PastixDirBackward.
int bvec_slapmr | ( | pastix_data_t * | pastix_data, |
pastix_dir_t | dir, | ||
pastix_int_t | m, | ||
pastix_int_t | n, | ||
float * | A, | ||
pastix_int_t | lda, | ||
pastix_rhs_t | PA | ||
) |
Apply a row permutation to a right hand side A (LAPACK xlatmr)
[in] | pastix_data | The pastix_data structure. |
[in] | dir | The direction of the permutation. If PastixDirForward, A is permuted into PA. If PastixDirBackward, PA is permuted into A. |
[in] | m | The number of rows in the right hand side A, and the number of elements in perm. |
[in] | n | The number of columns in the right hand side A. |
[in,out] | A | A right hand side of size lda-by-n. Referenced as input if dir is PastixDirForward, as output otherwise. |
[in] | lda | The leading dimension of A. |
[in,out] | PA | The structure of the permuted right hand side A. Referenced as inout if dir is PastixDirForward, as input otherwise. |
PASTIX_SUCCESS |
Definition at line 816 of file bvec_slapmr.c.
References pastix_rhs_s::allocated, pastix_rhs_s::b, pastix_data_s::bcsc, pastix_data_s::csc, pastix_rhs_s::flttype, pastix_rhs_s::ld, pastix_rhs_s::m, pastix_rhs_s::n, PastixDirForward, and pastix_data_s::solvmatr.
Referenced by pastix_subtask_applyorder().
|
inlinestatic |
Apply a row permutation to a right hand side A (LAPACK xlatmr) in the shared memory case.
[in] | pastix_data | The pastix_data structure. |
[in] | dir | The direction of the permutation. If PastixDirForward, A is permuted into PA. If PastixDirBackward, PA is permuted into A. |
[in] | m | The number of rows in the right hand side A, and the number of elements in perm. |
[in] | n | The number of columns in the right hand side A. |
[in,out] | A | A right hand side of size lda-by-n. Referenced as input if dir is PastixDirForward, as output otherwise. |
[in] | lda | The leading dimension of A. |
[in,out] | PA | The structure of the permuted right hand side A. Referenced as inout if dir is PastixDirForward, as input otherwise. |
PASTIX_SUCCESS |
Definition at line 668 of file bvec_zlapmr.c.
References pastix_rhs_s::allocated, pastix_rhs_s::b, pastix_data_s::csc, pastix_data_s::iparm, IPARM_APPLYPERM_WS, pastix_rhs_s::ld, pastix_rhs_s::m, pastix_rhs_s::n, pastix_data_s::ordemesh, orderGetExpandedPeritab(), PASTIX_ERR_BADPARAMETER, pastix_int_t, PASTIX_SUCCESS, and PastixDirBackward.
int bvec_zlapmr | ( | pastix_data_t * | pastix_data, |
pastix_dir_t | dir, | ||
pastix_int_t | m, | ||
pastix_int_t | n, | ||
pastix_complex64_t * | A, | ||
pastix_int_t | lda, | ||
pastix_rhs_t | PA | ||
) |
Apply a row permutation to a right hand side A (LAPACK xlatmr)
[in] | pastix_data | The pastix_data structure. |
[in] | dir | The direction of the permutation. If PastixDirForward, A is permuted into PA. If PastixDirBackward, PA is permuted into A. |
[in] | m | The number of rows in the right hand side A, and the number of elements in perm. |
[in] | n | The number of columns in the right hand side A. |
[in,out] | A | A right hand side of size lda-by-n. Referenced as input if dir is PastixDirForward, as output otherwise. |
[in] | lda | The leading dimension of A. |
[in,out] | PA | The structure of the permuted right hand side A. Referenced as inout if dir is PastixDirForward, as input otherwise. |
PASTIX_SUCCESS |
Definition at line 816 of file bvec_zlapmr.c.
References pastix_rhs_s::allocated, pastix_rhs_s::b, pastix_data_s::bcsc, pastix_data_s::csc, pastix_rhs_s::flttype, pastix_rhs_s::ld, pastix_rhs_s::m, pastix_rhs_s::n, PastixDirForward, and pastix_data_s::solvmatr.
Referenced by pastix_subtask_applyorder().
|
inlinestatic |
Apply a row permutation to a right hand side A (LAPACK xlatmr) in the shared memory case.
[in] | pastix_data | The pastix_data structure. |
[in] | dir | The direction of the permutation. If PastixDirForward, A is permuted into PA. If PastixDirBackward, PA is permuted into A. |
[in] | m | The number of rows in the right hand side A, and the number of elements in perm. |
[in] | n | The number of columns in the right hand side A. |
[in,out] | A | A right hand side of size lda-by-n. Referenced as input if dir is PastixDirForward, as output otherwise. |
[in] | lda | The leading dimension of A. |
[in,out] | PA | The structure of the permuted right hand side A. Referenced as inout if dir is PastixDirForward, as input otherwise. |
PASTIX_SUCCESS |
Definition at line 668 of file bvec_clapmr.c.
References pastix_rhs_s::allocated, pastix_rhs_s::b, pastix_data_s::csc, pastix_data_s::iparm, IPARM_APPLYPERM_WS, pastix_rhs_s::ld, pastix_rhs_s::m, pastix_rhs_s::n, pastix_data_s::ordemesh, orderGetExpandedPeritab(), PASTIX_ERR_BADPARAMETER, pastix_int_t, PASTIX_SUCCESS, and PastixDirBackward.
int bvec_clapmr | ( | pastix_data_t * | pastix_data, |
pastix_dir_t | dir, | ||
pastix_int_t | m, | ||
pastix_int_t | n, | ||
pastix_complex32_t * | A, | ||
pastix_int_t | lda, | ||
pastix_rhs_t | PA | ||
) |
Apply a row permutation to a right hand side A (LAPACK xlatmr)
[in] | pastix_data | The pastix_data structure. |
[in] | dir | The direction of the permutation. If PastixDirForward, A is permuted into PA. If PastixDirBackward, PA is permuted into A. |
[in] | m | The number of rows in the right hand side A, and the number of elements in perm. |
[in] | n | The number of columns in the right hand side A. |
[in,out] | A | A right hand side of size lda-by-n. Referenced as input if dir is PastixDirForward, as output otherwise. |
[in] | lda | The leading dimension of A. |
[in,out] | PA | The structure of the permuted right hand side A. Referenced as inout if dir is PastixDirForward, as input otherwise. |
PASTIX_SUCCESS |
Definition at line 816 of file bvec_clapmr.c.
References pastix_rhs_s::allocated, pastix_rhs_s::b, pastix_data_s::bcsc, pastix_data_s::csc, pastix_rhs_s::flttype, pastix_rhs_s::ld, pastix_rhs_s::m, pastix_rhs_s::n, PastixDirForward, and pastix_data_s::solvmatr.
Referenced by pastix_subtask_applyorder().