PaStiX Handbook
6.4.0
|
Describe all the internals routines to manipulate the internal block csc. More...
Modules | |
Internal functions to the sparse matrix blocked CSC module | |
Data Structures | |
struct | bcsc_data_amount_s |
Information about the amount of data. More... | |
struct | bcsc_exch_comm_s |
Information about the sending data. More... | |
struct | bcsc_proc_comm_s |
Informations of the data exchanged with other processors. More... | |
struct | bcsc_handle_comm_s |
Structure to manage communications with distributed spm. More... | |
struct | bcsc_cblk_s |
Compressed colptr format for the bcsc. More... | |
struct | pastix_bcsc_s |
Internal column block distributed CSC matrix. More... | |
struct | bvec_data_amount_s |
Information about the amount of data exchanged to permute the pivots. More... | |
struct | bvec_proc_comm_s |
Informations of the data exchanged with other processes. More... | |
struct | bvec_handle_comm_s |
Structure to manage communications with distributed rhs. More... | |
Typedefs | |
typedef enum bcsc_tag_ | bcsc_tag_e |
Tags used in MPI communications. | |
typedef struct bcsc_data_amount_s | bcsc_data_amount_t |
Information about the amount of data. | |
typedef struct bcsc_exch_comm_s | bcsc_exch_comm_t |
Information about the sending data. | |
typedef struct bcsc_proc_comm_s | bcsc_proc_comm_t |
Informations of the data exchanged with other processors. | |
typedef struct bcsc_handle_comm_s | bcsc_handle_comm_t |
Structure to manage communications with distributed spm. | |
typedef struct bcsc_cblk_s | bcsc_cblk_t |
Compressed colptr format for the bcsc. | |
typedef enum bvec_tag_ | bvec_tag_e |
Tags used in MPI communications. | |
typedef struct bvec_data_amount_s | bvec_data_amount_t |
Information about the amount of data exchanged to permute the pivots. | |
typedef struct bvec_proc_comm_s | bvec_proc_comm_t |
Informations of the data exchanged with other processes. | |
typedef struct bvec_handle_comm_s | bvec_handle_comm_t |
Structure to manage communications with distributed rhs. | |
Enumerations | |
enum | bcsc_tag_ { PastixTagCountA , PastixTagCountAt , PastixTagCountAAt , PastixTagIndexesA , PastixTagIndexesAt , PastixTagIndexesAAt , PastixTagValuesA , PastixTagValuesAt , PastixTagValuesAAt , PastixTagMemSendIdx , PastixTagMemRecvIdx , PastixTagMemSend , PastixTagMemRecvAAt , PastixTagMemSendValA , PastixTagMemSendValAt , PastixTagMemSendValAAt , PastixTagMemRecvIdxA , PastixTagMemRecvIdxAt , PastixTagMemRecvIdxAAt , PastixTagMemRecvValAAt } |
Tags used in MPI communications. | |
enum | bvec_tag_ { PastixTagAmount , PastixTagIndexes , PastixTagValues } |
Tags used in MPI communications. | |
Functions | |
double | bcscInit (const spmatrix_t *spm, const pastix_order_t *ord, const SolverMatrix *solvmtx, pastix_int_t initAt, pastix_bcsc_t *bcsc) |
Initializes the block csc matrix. More... | |
void | bcscExit (pastix_bcsc_t *bcsc) |
Frees the block csc structure but do not free the bcsc pointer. More... | |
void * | bvec_malloc (size_t size) |
Allocate a vector. More... | |
void | bvec_free (void *x) |
Free a vector. More... | |
int | pastixRhsInit (pastix_rhs_t *B_ptr) |
Initialize an RHS data structure. More... | |
int | pastixRhsFinalize (pastix_rhs_t B) |
Cleanup an RHS data structure. More... | |
static void | pthread_bvec_dnrm2 (isched_thread_t *ctx, void *args) |
Compute the norm 2 of a vector. (Parallel version) More... | |
static void | pthread_bvec_dscal (isched_thread_t *ctx, void *args) |
Scale a vector (Parallel version) More... | |
static void | pthread_bvec_snrm2 (isched_thread_t *ctx, void *args) |
Compute the norm 2 of a vector. (Parallel version) More... | |
static void | pthread_bvec_sscal (isched_thread_t *ctx, void *args) |
Scale a vector (Parallel version) More... | |
static void | pthread_bvec_znrm2 (isched_thread_t *ctx, void *args) |
Compute the norm 2 of a vector. (Parallel version) More... | |
static void | pthread_bvec_zscal (isched_thread_t *ctx, void *args) |
Scale a vector (Parallel version) More... | |
static void | pthread_bvec_cnrm2 (isched_thread_t *ctx, void *args) |
Compute the norm 2 of a vector. (Parallel version) More... | |
static void | pthread_bvec_cscal (isched_thread_t *ctx, void *args) |
Scale a vector (Parallel version) More... | |
PastixDouble vector(s) operations | |
void | bvec_daxpy_seq (pastix_data_t *pastix_data, pastix_int_t n, double alpha, const double *x, double *y) |
Compute y <- alpha * x + y. (Sequential version) More... | |
void | bvec_daxpy_smp (pastix_data_t *pastix_data, pastix_int_t n, double alpha, const double *x, double *y) |
Perform y = alpha * x + y (Parallel version) More... | |
void | bvec_dcopy_seq (pastix_data_t *pastix_data, pastix_int_t n, const double *x, double *y) |
Copy a vector y = x (Sequential version) More... | |
void | bvec_dcopy_smp (pastix_data_t *pastix_data, pastix_int_t n, const double *x, double *y) |
Copy a vector y = x (parallel version) More... | |
double | bvec_ddot_seq (pastix_data_t *pastix_data, pastix_int_t n, const double *x, const double *y) |
Compute the scalar product x.y. (Sequential version) More... | |
double | bvec_ddot_smp (pastix_data_t *pastix_data, pastix_int_t n, const double *x, const double *y) |
Compute a regular scalar product x.y (Parallel version) More... | |
void | bvec_dgemv_seq (pastix_data_t *pastix_data, pastix_int_t m, pastix_int_t n, double alpha, const double *A, pastix_int_t lda, const double *x, double beta, double *y) |
Compute. More... | |
void | bvec_dgemv_smp (pastix_data_t *pastix_data, pastix_int_t m, pastix_int_t n, double alpha, const double *A, pastix_int_t lda, const double *x, double beta, double *y) |
Compute. More... | |
double | bvec_dnrm2_seq (pastix_data_t *pastix_data, pastix_int_t n, const double *x) |
Compute the norm 2 of a vector. (Sequential version) More... | |
double | bvec_dnrm2_smp (pastix_data_t *pastix_data, pastix_int_t n, const double *x) |
Compute the norm 2 of a vector. (Parallel version) More... | |
void | bvec_dscal_seq (pastix_data_t *pastix_data, pastix_int_t n, double alpha, double *x) |
Scale a vector by the scalar alpha. (Sequential version) More... | |
void | bvec_dscal_smp (pastix_data_t *pastix_data, pastix_int_t n, double alpha, double *x) |
Scale a vector (Parallel version) 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... | |
PastixDouble matrix operations | |
double | bcsc_dnorm (pastix_normtype_t ntype, const pastix_bcsc_t *bcsc) |
Compute the norm of an bcsc matrix. More... | |
void | bcsc_dspsv (pastix_data_t *pastix_data, double *b, float *work) |
Solve A x = b with A the sparse matrix. More... | |
void | bcsc_dspmv (const pastix_data_t *pastix_data, pastix_trans_t trans, double alpha, const double *x, double beta, double *y) |
Compute the matrix-vector product y = alpha * op(A) * x + beta * y. More... | |
void | bcsc_dspmv_seq (const pastix_data_t *pastix_data, pastix_trans_t trans, double alpha, const double *x, double beta, double *y) |
Compute the matrix-vector product y = alpha * A * x + beta * y (Sequential version) More... | |
void | bcsc_dspmv_smp (const pastix_data_t *pastix_data, pastix_trans_t trans, double alpha, const double *x, double beta, double *y) |
Perform y = alpha A x + beta y (Parallel version) More... | |
PastixDouble MPI vector operations | |
const double * | bvec_dgather_remote (const pastix_data_t *pastix_data, const double *y) |
Gather a distributed right hand side (bvec storage) on all nodes. More... | |
void | bvec_dnullify_remote (const pastix_data_t *pastix_data, double *y) |
Set to 0 remote coefficients. More... | |
void | bvec_dallreduce (const pastix_data_t *pastix_data, double *y) |
Apply an all reduce of the vector on all nodes. More... | |
PastixComplex32 matrix operations | |
float | bcsc_cnorm (pastix_normtype_t ntype, const pastix_bcsc_t *bcsc) |
Compute the norm of an bcsc matrix. More... | |
void | bcsc_cspsv (pastix_data_t *pastix_data, pastix_complex32_t *b, pastix_complex32_t *work) |
Solve A x = b with A the sparse matrix. More... | |
void | bcsc_cspmv (const pastix_data_t *pastix_data, pastix_trans_t trans, pastix_complex32_t alpha, const pastix_complex32_t *x, pastix_complex32_t beta, pastix_complex32_t *y) |
Compute the matrix-vector product y = alpha * op(A) * x + beta * y. More... | |
void | bcsc_cspmv_seq (const pastix_data_t *pastix_data, pastix_trans_t trans, pastix_complex32_t alpha, const pastix_complex32_t *x, pastix_complex32_t beta, pastix_complex32_t *y) |
Compute the matrix-vector product y = alpha * A * x + beta * y (Sequential version) More... | |
void | bcsc_cspmv_smp (const pastix_data_t *pastix_data, pastix_trans_t trans, pastix_complex32_t alpha, const pastix_complex32_t *x, pastix_complex32_t beta, pastix_complex32_t *y) |
Perform y = alpha A x + beta y (Parallel version) More... | |
PastixComplex32 MPI vector operations | |
const pastix_complex32_t * | bvec_cgather_remote (const pastix_data_t *pastix_data, const pastix_complex32_t *y) |
Gather a distributed right hand side (bvec storage) on all nodes. More... | |
void | bvec_cnullify_remote (const pastix_data_t *pastix_data, pastix_complex32_t *y) |
Set to 0 remote coefficients. More... | |
void | bvec_callreduce (const pastix_data_t *pastix_data, pastix_complex32_t *y) |
Apply an all reduce of the vector on all nodes. More... | |
PastixComplex64 vector(s) operations | |
void | bvec_zaxpy_seq (pastix_data_t *pastix_data, pastix_int_t n, pastix_complex64_t alpha, const pastix_complex64_t *x, pastix_complex64_t *y) |
Compute y <- alpha * x + y. (Sequential version) More... | |
void | bvec_zaxpy_smp (pastix_data_t *pastix_data, pastix_int_t n, pastix_complex64_t alpha, const pastix_complex64_t *x, pastix_complex64_t *y) |
Perform y = alpha * x + y (Parallel version) More... | |
void | bvec_zcopy_seq (pastix_data_t *pastix_data, pastix_int_t n, const pastix_complex64_t *x, pastix_complex64_t *y) |
Copy a vector y = x (Sequential version) More... | |
void | bvec_zcopy_smp (pastix_data_t *pastix_data, pastix_int_t n, const pastix_complex64_t *x, pastix_complex64_t *y) |
Copy a vector y = x (parallel version) More... | |
pastix_complex64_t | bvec_zdotu_seq (pastix_data_t *pastix_data, pastix_int_t n, const pastix_complex64_t *x, const pastix_complex64_t *y) |
Compute the scalar product x.y. (Sequential version) More... | |
pastix_complex64_t | bvec_zdotu_smp (pastix_data_t *pastix_data, pastix_int_t n, const pastix_complex64_t *x, const pastix_complex64_t *y) |
Compute a regular scalar product x.y (Parallel version) More... | |
void | bvec_zgemv_seq (pastix_data_t *pastix_data, pastix_int_t m, pastix_int_t n, pastix_complex64_t alpha, const pastix_complex64_t *A, pastix_int_t lda, const pastix_complex64_t *x, pastix_complex64_t beta, pastix_complex64_t *y) |
Compute. More... | |
void | bvec_zgemv_smp (pastix_data_t *pastix_data, pastix_int_t m, pastix_int_t n, pastix_complex64_t alpha, const pastix_complex64_t *A, pastix_int_t lda, const pastix_complex64_t *x, pastix_complex64_t beta, pastix_complex64_t *y) |
Compute. More... | |
double | bvec_znrm2_seq (pastix_data_t *pastix_data, pastix_int_t n, const pastix_complex64_t *x) |
Compute the norm 2 of a vector. (Sequential version) More... | |
double | bvec_znrm2_smp (pastix_data_t *pastix_data, pastix_int_t n, const pastix_complex64_t *x) |
Compute the norm 2 of a vector. (Parallel version) More... | |
void | bvec_zscal_seq (pastix_data_t *pastix_data, pastix_int_t n, pastix_complex64_t alpha, pastix_complex64_t *x) |
Scale a vector by the scalar alpha. (Sequential version) More... | |
void | bvec_zscal_smp (pastix_data_t *pastix_data, pastix_int_t n, pastix_complex64_t alpha, pastix_complex64_t *x) |
Scale a vector (Parallel version) 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... | |
PastixComplex64 matrix operations | |
double | bcsc_znorm (pastix_normtype_t ntype, const pastix_bcsc_t *bcsc) |
Compute the norm of an bcsc matrix. More... | |
void | bcsc_zspsv (pastix_data_t *pastix_data, pastix_complex64_t *b, pastix_complex32_t *work) |
Solve A x = b with A the sparse matrix. More... | |
void | bcsc_zspmv (const pastix_data_t *pastix_data, pastix_trans_t trans, pastix_complex64_t alpha, const pastix_complex64_t *x, pastix_complex64_t beta, pastix_complex64_t *y) |
Compute the matrix-vector product y = alpha * op(A) * x + beta * y. More... | |
void | bcsc_zspmv_seq (const pastix_data_t *pastix_data, pastix_trans_t trans, pastix_complex64_t alpha, const pastix_complex64_t *x, pastix_complex64_t beta, pastix_complex64_t *y) |
Compute the matrix-vector product y = alpha * A * x + beta * y (Sequential version) More... | |
void | bcsc_zspmv_smp (const pastix_data_t *pastix_data, pastix_trans_t trans, pastix_complex64_t alpha, const pastix_complex64_t *x, pastix_complex64_t beta, pastix_complex64_t *y) |
Perform y = alpha A x + beta y (Parallel version) More... | |
PastixComplex64 MPI vector operations | |
const pastix_complex64_t * | bvec_zgather_remote (const pastix_data_t *pastix_data, const pastix_complex64_t *y) |
Gather a distributed right hand side (bvec storage) on all nodes. More... | |
void | bvec_znullify_remote (const pastix_data_t *pastix_data, pastix_complex64_t *y) |
Set to 0 remote coefficients. More... | |
void | bvec_zallreduce (const pastix_data_t *pastix_data, pastix_complex64_t *y) |
Apply an all reduce of the vector on all nodes. More... | |
PastixFloat vector(s) operations | |
void | bvec_saxpy_seq (pastix_data_t *pastix_data, pastix_int_t n, float alpha, const float *x, float *y) |
Compute y <- alpha * x + y. (Sequential version) More... | |
void | bvec_saxpy_smp (pastix_data_t *pastix_data, pastix_int_t n, float alpha, const float *x, float *y) |
Perform y = alpha * x + y (Parallel version) More... | |
void | bvec_scopy_seq (pastix_data_t *pastix_data, pastix_int_t n, const float *x, float *y) |
Copy a vector y = x (Sequential version) More... | |
void | bvec_scopy_smp (pastix_data_t *pastix_data, pastix_int_t n, const float *x, float *y) |
Copy a vector y = x (parallel version) More... | |
float | bvec_sdot_seq (pastix_data_t *pastix_data, pastix_int_t n, const float *x, const float *y) |
Compute the scalar product x.y. (Sequential version) More... | |
float | bvec_sdot_smp (pastix_data_t *pastix_data, pastix_int_t n, const float *x, const float *y) |
Compute a regular scalar product x.y (Parallel version) More... | |
void | bvec_sgemv_seq (pastix_data_t *pastix_data, pastix_int_t m, pastix_int_t n, float alpha, const float *A, pastix_int_t lda, const float *x, float beta, float *y) |
Compute. More... | |
void | bvec_sgemv_smp (pastix_data_t *pastix_data, pastix_int_t m, pastix_int_t n, float alpha, const float *A, pastix_int_t lda, const float *x, float beta, float *y) |
Compute. More... | |
float | bvec_snrm2_seq (pastix_data_t *pastix_data, pastix_int_t n, const float *x) |
Compute the norm 2 of a vector. (Sequential version) More... | |
float | bvec_snrm2_smp (pastix_data_t *pastix_data, pastix_int_t n, const float *x) |
Compute the norm 2 of a vector. (Parallel version) More... | |
void | bvec_sscal_seq (pastix_data_t *pastix_data, pastix_int_t n, float alpha, float *x) |
Scale a vector by the scalar alpha. (Sequential version) More... | |
void | bvec_sscal_smp (pastix_data_t *pastix_data, pastix_int_t n, float alpha, float *x) |
Scale a vector (Parallel version) 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... | |
PastixFloat matrix operations | |
float | bcsc_snorm (pastix_normtype_t ntype, const pastix_bcsc_t *bcsc) |
Compute the norm of an bcsc matrix. More... | |
void | bcsc_sspsv (pastix_data_t *pastix_data, float *b, float *work) |
Solve A x = b with A the sparse matrix. More... | |
void | bcsc_sspmv (const pastix_data_t *pastix_data, pastix_trans_t trans, float alpha, const float *x, float beta, float *y) |
Compute the matrix-vector product y = alpha * op(A) * x + beta * y. More... | |
void | bcsc_sspmv_seq (const pastix_data_t *pastix_data, pastix_trans_t trans, float alpha, const float *x, float beta, float *y) |
Compute the matrix-vector product y = alpha * A * x + beta * y (Sequential version) More... | |
void | bcsc_sspmv_smp (const pastix_data_t *pastix_data, pastix_trans_t trans, float alpha, const float *x, float beta, float *y) |
Perform y = alpha A x + beta y (Parallel version) More... | |
PastixFloat MPI vector operations | |
const float * | bvec_sgather_remote (const pastix_data_t *pastix_data, const float *y) |
Gather a distributed right hand side (bvec storage) on all nodes. More... | |
void | bvec_snullify_remote (const pastix_data_t *pastix_data, float *y) |
Set to 0 remote coefficients. More... | |
void | bvec_sallreduce (const pastix_data_t *pastix_data, float *y) |
Apply an all reduce of the vector on all nodes. More... | |
Describe all the internals routines to manipulate the internal block csc.
These functions provide a set of subroutines to manipulate the permuted sparse matrix stored in block of columns following the partition.
struct bcsc_data_amount_s |
Data Fields | ||
---|---|---|
pastix_int_t | idxcnt |
Amount of indexes of A or At which will be exchanged. |
pastix_int_t | valcnt |
Amount of values of A or At which will be exchanged. |
struct bcsc_exch_comm_s |
Data Fields | ||
---|---|---|
bcsc_data_amount_t | size |
Amount of indexes of A which will be send to clustnum. |
pastix_int_t * | idxbuf |
Array of indexes of A to send to clustnum. |
void * | valbuf |
Array of values of A to send to clustnum. |
struct bcsc_proc_comm_s |
Data Fields | ||
---|---|---|
bcsc_exch_comm_t | sendA |
Sending data of A. |
bcsc_exch_comm_t | sendAt |
Sending data of At. |
bcsc_exch_comm_t | sendAAt |
Sending data of A and At. |
bcsc_data_amount_t | recvA |
Receving data of A. |
bcsc_data_amount_t | recvAt |
Receving data of At. |
bcsc_exch_comm_t | recvAAt |
Receving data of A and At. |
struct bcsc_handle_comm_s |
Data Fields | ||
---|---|---|
pastix_int_t | clustnbr |
Number of processes in the cluster. |
pastix_int_t | clustnum |
ID of the current process in the cluster. |
PASTIX_Comm | comm |
PaStiX MPI communicator used for the ordering step. |
pastix_coeftype_t | flttype |
valtab datatype: PastixFloat, PastixDouble, PastixComplex32 or PastixComplex64 |
pastix_int_t | max_idx |
Maximum amount of indexes received, used to allocate the receiving buffer. |
pastix_int_t | max_val |
Maximum amount of values received, used to allocate the receiving buffer. |
bcsc_proc_comm_t | data_comm[1] |
Array of size clustnbr. |
struct bcsc_cblk_s |
Data Fields | ||
---|---|---|
pastix_int_t | colnbr |
Number of columns in the block column. |
pastix_int_t | cblknum |
Index of the corresponding cblk in the local solver matrix |
pastix_int_t * | coltab |
Array of indexes of the start of each column in the row and value arrays. |
struct pastix_bcsc_s |
Data Fields | ||
---|---|---|
pastix_int_t | gN |
Global number of vertices |
pastix_int_t | n |
Local number of vertices |
pastix_mtxtype_t | mtxtype |
Matrix structure: PastixGeneral, PastixSymmetric or PastixHermitian. |
pastix_coeftype_t | flttype |
valtab datatype: PastixFloat, PastixDouble, PastixComplex32 or PastixComplex64 |
pastix_int_t | cscfnbr |
Number of column blocks. |
bcsc_cblk_t * | cscftab |
Array of Block column structures of size cscfnbr. (pastix_bcscFormat_t) |
pastix_int_t * | rowtab |
Array of rows in the matrix. |
void * | Lvalues |
Array of values of the matrix A |
void * | Uvalues |
Array of values of the matrix A^t |
pastix_int_t * | col2cblk |
Array which gives the repartition of the solvmtx columns into the block structure. |
bcsc_handle_comm_t * | bcsc_comm |
Structure which handles the MPI communication (= NULL if PASTIX_WITH_MPI=OFF). |
struct bvec_data_amount_s |
Information about the amount of data exchanged to permute the pivots.
Data Fields | ||
---|---|---|
pastix_int_t | idxcnt |
Amount of indexes of b or x which will be exchanged. |
pastix_int_t | valcnt |
Amount of values of b or x which will be exchanged. |
struct bvec_proc_comm_s |
Data Fields | ||
---|---|---|
bvec_data_amount_t | nsends |
Number of indexes and values to send to clustnum. |
bvec_data_amount_t | nrecvs |
Number of indexes and values to receive from clustnum. |
pastix_int_t * | send_idxbuf |
Array of indexes of b or x to exchange. |
void * | send_valbuf |
Array of values of b or x to exchange. |
struct bvec_handle_comm_s |
Data Fields | ||
---|---|---|
pastix_int_t | clustnbr |
Number of processes in the communicator. |
pastix_int_t | clustnum |
ID of the current process in the communicator. |
PASTIX_Comm | comm |
PaStiX MPI communicator used for the ordering step. |
pastix_coeftype_t | flttype |
valtab datatype: PastixFloat, PastixDouble, PastixComplex32 or PastixComplex64 |
pastix_int_t | max_idx |
Maximum amount of indexes received, used to allocate the receiving buffer. |
pastix_int_t | max_val |
Maximum amount of values received, used to allocate the receiving buffer. |
bvec_proc_comm_t | data_comm[1] |
Array of size clustnbr. |
double bcscInit | ( | const spmatrix_t * | spm, |
const pastix_order_t * | ord, | ||
const SolverMatrix * | solvmtx, | ||
pastix_int_t | initAt, | ||
pastix_bcsc_t * | bcsc | ||
) |
Initializes the block csc matrix.
The block csc matrix is used to initialize the factorized matrix, and to perform the matvec operations in refinement.
[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] | initAt | The test to know if At has to be initialized:
|
[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 1899 of file bcsc.c.
References pastix_order_s::baseval, bcsc_init(), and pastix_order_s::vertnbr.
Referenced by pastix_subtask_spm2bcsc().
void bcscExit | ( | pastix_bcsc_t * | bcsc | ) |
Frees the block csc structure but do not free the bcsc pointer.
[in,out] | bcsc | The block csc matrix to free. |
Definition at line 1929 of file bcsc.c.
References bcsc_exit_struct(), bcsc_cblk_s::coltab, and pastix_int_t.
Referenced by pastix_subtask_spm2bcsc(), and pastixFinalize().
void * bvec_malloc | ( | size_t | size | ) |
Allocate a vector.
[in] | size | The size of the vector |
Definition at line 42 of file bvec.c.
Referenced by c_refine_init(), d_refine_init(), s_refine_init(), and z_refine_init().
void bvec_free | ( | void * | x | ) |
Free a vector.
[in,out] | x | The vector to be free |
Definition at line 62 of file bvec.c.
Referenced by c_refine_init(), d_refine_init(), s_refine_init(), and z_refine_init().
int pastixRhsInit | ( | pastix_rhs_t * | B_ptr | ) |
Initialize an RHS data structure.
[in,out] | B_ptr | On entry, an allocated pastix_rhs_t data structure. On exit, the data is initialized to be used by the pastix_subtask_* functions. |
PASTIX_SUCCESS | on successful exit, |
PASTIX_ERR_BADPARAMETER | if one parameter is incorrect. |
Definition at line 44 of file pastix_rhs.c.
References pastix_rhs_s::allocated, pastix_rhs_s::b, pastix_rhs_s::cblkb, pastix_rhs_s::flttype, pastix_rhs_s::ld, pastix_rhs_s::m, pastix_rhs_s::n, PASTIX_ERR_BADPARAMETER, PASTIX_SUCCESS, pastix_rhs_s::Ploc2Pglob, and pastix_rhs_s::rhs_comm.
Referenced by pastix_subtask_solve_adv(), and pastix_task_solve().
int pastixRhsFinalize | ( | pastix_rhs_t | B | ) |
Cleanup an RHS data structure.
[in,out] | B | On entry, the initialized pastix_rhs_t data structure. On exit, the structure is destroyed and should no longer be used. |
PASTIX_SUCCESS | on successful exit, |
PASTIX_ERR_BADPARAMETER | if one parameter is incorrect. |
Definition at line 92 of file pastix_rhs.c.
References pastix_rhs_s::allocated, pastix_rhs_s::b, pastix_rhs_s::cblkb, PASTIX_ERR_BADPARAMETER, PASTIX_SUCCESS, pastix_rhs_s::Ploc2Pglob, pastix_rhs_s::rhs_comm, and starpu_rhs_destroy().
Referenced by pastix_subtask_solve_adv(), and pastix_task_solve().
void bvec_daxpy_seq | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
double | alpha, | ||
const double * | x, | ||
double * | y | ||
) |
Compute y <- alpha * x + y. (Sequential version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). -* |
[in] | n | The size of the vectors. |
[in] | alpha | A scalar. |
[in] | x | The vector x. |
[in,out] | y | The vector y. |
Definition at line 398 of file bvec_dcompute.c.
References pastix_data_s::bcsc, cblk_colnbr(), bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_int_t, and pastix_data_s::solvmatr.
Referenced by d_refine_init().
void bvec_daxpy_smp | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
double | alpha, | ||
const double * | x, | ||
double * | y | ||
) |
Perform y = alpha * x + y (Parallel version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | n | The number of elements of vectors x and y |
[in] | alpha | The scalar to scale x |
[in] | x | The vector to be scaled |
[in,out] | y | The resulting solution |
Definition at line 513 of file bvec_dcompute.c.
References pastix_data_s::isched, and pthread_bvec_daxpy().
Referenced by d_refine_init().
void bvec_dcopy_seq | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
const double * | x, | ||
double * | y | ||
) |
Copy a vector y = x (Sequential version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | n | The number of elements of vectors x and y |
[in] | x | The vector to be copied |
[in,out] | y | The vector copy of x |
Definition at line 879 of file bvec_dcompute.c.
References pastix_data_s::bcsc, cblk_colnbr(), bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_int_t, and pastix_data_s::solvmatr.
Referenced by d_refine_init().
void bvec_dcopy_smp | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
const double * | x, | ||
double * | y | ||
) |
Copy a vector y = x (parallel version)
Initialise argument for the parallel function
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | n | The number of elements of vectors x and y |
[in] | x | The vector to be copied |
[in,out] | y | The vector copy of x |
Definition at line 980 of file bvec_dcompute.c.
References pastix_data_s::isched, and pthread_bvec_dcopy().
Referenced by d_refine_init().
double bvec_ddot_seq | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
const double * | x, | ||
const double * | y | ||
) |
Compute the scalar product x.y. (Sequential version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | x | The vector x. |
[in] | y | The vector y. |
[in] | n | The size of the vectors. |
the | scalar product of x and y. |
Definition at line 721 of file bvec_dcompute.c.
References pastix_data_s::bcsc, cblk_colnbr(), bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_int_t, and pastix_data_s::solvmatr.
Referenced by d_refine_init().
double bvec_ddot_smp | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
const double * | x, | ||
const double * | y | ||
) |
Compute a regular scalar product x.y (Parallel version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | n | The number of elements of vectors x, y and r |
[in] | x | The first vector of the scalar product |
[in] | y | The second vector of the scalar product |
Definition at line 839 of file bvec_dcompute.c.
References pastix_data_s::isched, and pthread_bvec_ddot().
Referenced by d_refine_init().
void bvec_dgemv_seq | ( | pastix_data_t * | pastix_data, |
pastix_int_t | m, | ||
pastix_int_t | n, | ||
double | alpha, | ||
const double * | A, | ||
pastix_int_t | lda, | ||
const double * | x, | ||
double | beta, | ||
double * | y | ||
) |
Compute.
\[ y = \alpha A x + \beta y \]
(Sequential version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | m | The number of rows of the matrix A, and the size of y. |
[in] | n | The number of columns of the matrix A, and the size of x. |
[in] | alpha | The scalar alpha. |
[in] | A | The dense matrix A of size lda-by-n. |
[in] | lda | The leading dimension of the matrix A. lda >= max(1,m) |
[in] | x | The vector x of size n. |
[in] | beta | The scalar beta. |
[in,out] | y | On entry, the initial vector y of size m. On exit, the updated vector. |
Definition at line 1112 of file bvec_dcompute.c.
References pastix_data_s::bcsc, cblk_colnbr(), bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_rhs_s::m, pastix_rhs_s::n, pastix_int_t, and pastix_data_s::solvmatr.
Referenced by d_refine_init().
void bvec_dgemv_smp | ( | pastix_data_t * | pastix_data, |
pastix_int_t | m, | ||
pastix_int_t | n, | ||
double | alpha, | ||
const double * | A, | ||
pastix_int_t | lda, | ||
const double * | x, | ||
double | beta, | ||
double * | y | ||
) |
Compute.
\[ y = \alpha A x + \beta y \]
(Parallel version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | m | The number of rows of the matrix A, and the size of y. |
[in] | n | The number of columns of the matrix A, and the size of x. |
[in] | alpha | The scalar alpha. |
[in] | A | The dense matrix A of size lda-by-n. |
[in] | lda | The leading dimension of the matrix A. lda >= max(1,m) |
[in] | x | The vector x of size n. |
[in] | beta | The scalar beta. |
[in,out] | y | On entry, the initial vector y of size m. On exit, the updated vector. |
Definition at line 1262 of file bvec_dcompute.c.
References pastix_data_s::isched, and pthread_bvec_dgemv().
Referenced by d_refine_init().
double bvec_dnrm2_seq | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
const double * | x | ||
) |
Compute the norm 2 of a vector. (Sequential version)
[in] | pastix_data | Provide information to the parallel version, to know the global context (Number of thread, barrier, ...). |
[in] | n | The size of the vector x. |
[in] | x | The vector x of size n. |
the | norm 2 of x. |
Definition at line 71 of file bvec_dcompute.c.
References pastix_data_s::bcsc, cblk_colnbr(), bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_int_t, and pastix_data_s::solvmatr.
Referenced by d_refine_init().
double bvec_dnrm2_smp | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
const double * | x | ||
) |
Compute the norm 2 of a vector. (Parallel version)
[in] | pastix_data | Provide information to the parallel version, to know the global context (Number of thread, barrier, ...). |
[in] | x | The vector which norm2 is to be computed |
[in] | n | The number of elements of x |
Definition at line 215 of file bvec_dcompute.c.
References pastix_data_s::isched, pthread_bvec_dnrm2(), and pastix_data_s::solvmatr.
Referenced by d_refine_init().
void bvec_dscal_seq | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
double | alpha, | ||
double * | x | ||
) |
Scale a vector by the scalar alpha. (Sequential version)
[in] | pastix_data | Provide information to the parallel version, to know the global context (Number of thread, barrier, ...). |
[in] | n | The size of the vector x. |
[in] | alpha | The scalar to scale the vector x. |
[in,out] | x | The vector x to scale. |
Definition at line 259 of file bvec_dcompute.c.
References pastix_data_s::bcsc, cblk_colnbr(), bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_int_t, and pastix_data_s::solvmatr.
Referenced by d_refine_init().
void bvec_dscal_smp | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
double | alpha, | ||
double * | x | ||
) |
Scale a vector (Parallel version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | n | The number of elements of the vector |
[in] | alpha | The scaling parameter |
[in,out] | x | The vector to be scaled |
Definition at line 362 of file bvec_dcompute.c.
References pastix_data_s::isched, and pthread_bvec_dscal().
Referenced by d_refine_init().
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().
double bcsc_dnorm | ( | pastix_normtype_t | ntype, |
const pastix_bcsc_t * | bcsc | ||
) |
Compute the norm of an bcsc matrix.
[in] | ntype | = PastixMaxNorm: Max norm = PastixOneNorm: One norm = PastixInfNorm: Infinity norm = PastixFrobeniusNorm: Frobenius norm |
[in] | bcsc | The bcsc structure describing the matrix. |
The | norm of the matrix. |
Definition at line 252 of file bcsc_dnorm.c.
References bcsc_dnorm_frobenius(), bcsc_dnorm_inf(), bcsc_dnorm_max(), bcsc_dnorm_one(), PastixFrobeniusNorm, PastixInfNorm, PastixMaxNorm, and PastixOneNorm.
void bcsc_dspsv | ( | pastix_data_t * | pastix_data, |
double * | b, | ||
float * | work | ||
) |
Solve A x = b with A the sparse matrix.
In Complex64 and Double precision and if mixed-precision is enabled, solve SA sx = sb with SA the sparse matrix previously initialized respectively in Complex32 or Float precision.
[in] | pastix_data | The PaStiX data structure that describes the solver instance. |
[in,out] | b | On entry, the right hand side On exit, the solution of the problem A x = b |
[in,out] | work | On entry, if mixed-precision is disabled or incompatible with the sparse matrix's precision, the normal solve function is called and work must be NULL. On exit, works stays NULL If mixed-precision is enabled, work must be allocated as a vector half the size of b, so that the solve function can be performed in in mixed-precision. On exit, work is undefined. |
Definition at line 1017 of file bvec_dcompute.c.
References pastix_rhs_s::allocated, pastix_rhs_s::b, pastix_data_s::bcsc, pastix_rhs_s::cblkb, pastix_rhs_s::flttype, pastix_data_s::iparm, IPARM_MIXED, IPARM_VERBOSE, pastix_rhs_s::m, pastix_rhs_s::n, pastix_int_t, and pastix_subtask_solve().
Referenced by d_refine_init().
void bcsc_dspmv | ( | const pastix_data_t * | pastix_data, |
pastix_trans_t | trans, | ||
double | alpha, | ||
const double * | x, | ||
double | beta, | ||
double * | y | ||
) |
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
This function is used only in testings.
[in] | pastix_data | Provide information about bcsc, and select the scheduling version based on iparm[IPARM_SCHEDULER]. |
[in] | trans | Specifies whether the matrix A from the bcsc is transposed, not transposed or conjugate transposed: = PastixNoTrans: A is not transposed; = PastixTrans: A is transposed; = PastixTrans: A is conjugate transposed. |
[in] | alpha | alpha specifies the scalar alpha |
[in] | x | The vector x. |
[in] | beta | beta specifies the scalar beta |
[in,out] | y | The vector y. |
Definition at line 629 of file bcsc_dspmv.c.
References bcsc_dspmv_seq(), bcsc_dspmv_smp(), bvec_dgather_remote(), pastix_data_s::iparm, IPARM_SCHEDULER, IPARM_TRANSPOSE_SOLVE, pastix_int_t, PastixNoTrans, PastixSchedDynamic, and PastixSchedStatic.
Referenced by d_refine_init().
void bcsc_dspmv_seq | ( | const pastix_data_t * | pastix_data, |
pastix_trans_t | trans, | ||
double | alpha, | ||
const double * | x, | ||
double | beta, | ||
double * | y | ||
) |
Compute the matrix-vector product y = alpha * A * x + beta * y (Sequential version)
Where A is given in the bcsc format, x and y are two vectors of size n, and alpha and beta are two scalars.
[in] | pastix_data | Provide information about bcsc |
[in] | trans | Specifies whether the matrix A from the bcsc is transposed, not transposed or conjugate transposed: = PastixNoTrans: A is not transposed; = PastixTrans: A is transposed; = PastixTrans: A is conjugate transposed. |
[in] | alpha | alpha specifies the scalar alpha |
[in] | x | The vector x. |
[in] | beta | beta specifies the scalar beta |
[in,out] | y | The vector y. |
Definition at line 246 of file bcsc_dspmv.c.
References pastix_data_s::bcsc, and pastix_data_s::solvmatr.
Referenced by bcsc_dspmv().
void bcsc_dspmv_smp | ( | const pastix_data_t * | pastix_data, |
pastix_trans_t | trans, | ||
double | alpha, | ||
const double * | x, | ||
double | beta, | ||
double * | y | ||
) |
Perform y = alpha A x + beta y (Parallel version)
This functions is parallelized through the internal static scheduler.
[in] | pastix_data | The pastix_data structure that holds the A matrix. |
[in] | trans | Specifies whether the matrix A from the bcsc is transposed, not transposed or conjugate transposed: = PastixNoTrans: A is not transposed; = PastixTrans: A is transposed; = PastixTrans: A is conjugate transposed. |
[in] | alpha | The scalar alpha. |
[in] | x | The vector x |
[in] | beta | The scalar beta. |
[in,out] | y | On entry, the vector y On exit, alpha A x + y |
Definition at line 552 of file bcsc_dspmv.c.
References pastix_data_s::bcsc, bcsc_dspmv_get_balanced_indexes(), pastix_data_s::isched, pastix_int_t, pthread_bcsc_dspmv(), pthread_bcsc_dspmv_tasktab(), and pastix_data_s::solvmatr.
Referenced by bcsc_dspmv().
const double * bvec_dgather_remote | ( | const pastix_data_t * | pastix_data, |
const double * | y | ||
) |
Gather a distributed right hand side (bvec storage) on all nodes.
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in,out] | y | On entry, the local portion of the vector y. On exit, the complete vector y. |
TODO |
Definition at line 1352 of file bvec_dcompute.c.
References pastix_data_s::bcsc, solver_matrix_s::cblktab, pastix_int_t, pastix_data_s::procnbr, and pastix_data_s::solvmatr.
Referenced by bcsc_dspmv().
void bvec_dnullify_remote | ( | const pastix_data_t * | pastix_data, |
double * | y | ||
) |
Set to 0 remote coefficients.
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in,out] | y | On entry, the initial vector y of size m. On exit, the y vector with remote section set to 0. |
Definition at line 1296 of file bvec_dcompute.c.
References solver_matrix_s::cblknbr, solver_matrix_s::cblktab, solver_cblk_s::cblktype, pastix_data_s::csc, solver_cblk_s::fcolnum, solver_cblk_s::lcolnum, pastix_int_t, and pastix_data_s::solvmatr.
void bvec_dallreduce | ( | const pastix_data_t * | pastix_data, |
double * | y | ||
) |
Apply an all reduce of the vector on all nodes.
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in,out] | y | On entry, the initial vector y of size m. On exit, the y vector with remote section set to 0. |
Definition at line 1479 of file bvec_dcompute.c.
References pastix_data_s::csc.
void bvec_caxpy_seq | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
pastix_complex32_t | alpha, | ||
const pastix_complex32_t * | x, | ||
pastix_complex32_t * | y | ||
) |
Compute y <- alpha * x + y. (Sequential version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). -* |
[in] | n | The size of the vectors. |
[in] | alpha | A scalar. |
[in] | x | The vector x. |
[in,out] | y | The vector y. |
Definition at line 398 of file bvec_ccompute.c.
References pastix_data_s::bcsc, cblk_colnbr(), bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_int_t, and pastix_data_s::solvmatr.
Referenced by c_refine_init().
void bvec_caxpy_smp | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
pastix_complex32_t | alpha, | ||
const pastix_complex32_t * | x, | ||
pastix_complex32_t * | y | ||
) |
Perform y = alpha * x + y (Parallel version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | n | The number of elements of vectors x and y |
[in] | alpha | The scalar to scale x |
[in] | x | The vector to be scaled |
[in,out] | y | The resulting solution |
Definition at line 513 of file bvec_ccompute.c.
References pastix_data_s::isched, and pthread_bvec_caxpy().
Referenced by c_refine_init().
void bvec_ccopy_seq | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
const pastix_complex32_t * | x, | ||
pastix_complex32_t * | y | ||
) |
Copy a vector y = x (Sequential version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | n | The number of elements of vectors x and y |
[in] | x | The vector to be copied |
[in,out] | y | The vector copy of x |
Definition at line 879 of file bvec_ccompute.c.
References pastix_data_s::bcsc, cblk_colnbr(), bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_int_t, and pastix_data_s::solvmatr.
Referenced by c_refine_init().
void bvec_ccopy_smp | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
const pastix_complex32_t * | x, | ||
pastix_complex32_t * | y | ||
) |
Copy a vector y = x (parallel version)
Initialise argument for the parallel function
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | n | The number of elements of vectors x and y |
[in] | x | The vector to be copied |
[in,out] | y | The vector copy of x |
Definition at line 980 of file bvec_ccompute.c.
References pastix_data_s::isched, and pthread_bvec_ccopy().
Referenced by c_refine_init().
pastix_complex32_t bvec_cdotu_seq | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
const pastix_complex32_t * | x, | ||
const pastix_complex32_t * | y | ||
) |
Compute the scalar product x.y. (Sequential version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | x | The vector x. |
[in] | y | The vector y. |
[in] | n | The size of the vectors. |
the | scalar product of x and y. |
Definition at line 721 of file bvec_ccompute.c.
References pastix_data_s::bcsc, cblk_colnbr(), bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_int_t, and pastix_data_s::solvmatr.
pastix_complex32_t bvec_cdotu_smp | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
const pastix_complex32_t * | x, | ||
const pastix_complex32_t * | y | ||
) |
Compute a regular scalar product x.y (Parallel version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | n | The number of elements of vectors x, y and r |
[in] | x | The first vector of the scalar product |
[in] | y | The second vector of the scalar product |
Definition at line 839 of file bvec_ccompute.c.
References pastix_data_s::isched, and pthread_bvec_cdotu().
void bvec_cgemv_seq | ( | pastix_data_t * | pastix_data, |
pastix_int_t | m, | ||
pastix_int_t | n, | ||
pastix_complex32_t | alpha, | ||
const pastix_complex32_t * | A, | ||
pastix_int_t | lda, | ||
const pastix_complex32_t * | x, | ||
pastix_complex32_t | beta, | ||
pastix_complex32_t * | y | ||
) |
Compute.
\[ y = \alpha A x + \beta y \]
(Sequential version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | m | The number of rows of the matrix A, and the size of y. |
[in] | n | The number of columns of the matrix A, and the size of x. |
[in] | alpha | The scalar alpha. |
[in] | A | The dense matrix A of size lda-by-n. |
[in] | lda | The leading dimension of the matrix A. lda >= max(1,m) |
[in] | x | The vector x of size n. |
[in] | beta | The scalar beta. |
[in,out] | y | On entry, the initial vector y of size m. On exit, the updated vector. |
Definition at line 1112 of file bvec_ccompute.c.
References pastix_data_s::bcsc, cblk_colnbr(), bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_rhs_s::m, pastix_rhs_s::n, pastix_int_t, and pastix_data_s::solvmatr.
Referenced by c_refine_init().
void bvec_cgemv_smp | ( | pastix_data_t * | pastix_data, |
pastix_int_t | m, | ||
pastix_int_t | n, | ||
pastix_complex32_t | alpha, | ||
const pastix_complex32_t * | A, | ||
pastix_int_t | lda, | ||
const pastix_complex32_t * | x, | ||
pastix_complex32_t | beta, | ||
pastix_complex32_t * | y | ||
) |
Compute.
\[ y = \alpha A x + \beta y \]
(Parallel version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | m | The number of rows of the matrix A, and the size of y. |
[in] | n | The number of columns of the matrix A, and the size of x. |
[in] | alpha | The scalar alpha. |
[in] | A | The dense matrix A of size lda-by-n. |
[in] | lda | The leading dimension of the matrix A. lda >= max(1,m) |
[in] | x | The vector x of size n. |
[in] | beta | The scalar beta. |
[in,out] | y | On entry, the initial vector y of size m. On exit, the updated vector. |
Definition at line 1262 of file bvec_ccompute.c.
References pastix_data_s::isched, and pthread_bvec_cgemv().
Referenced by c_refine_init().
float bvec_cnrm2_seq | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
const pastix_complex32_t * | x | ||
) |
Compute the norm 2 of a vector. (Sequential version)
[in] | pastix_data | Provide information to the parallel version, to know the global context (Number of thread, barrier, ...). |
[in] | n | The size of the vector x. |
[in] | x | The vector x of size n. |
the | norm 2 of x. |
Definition at line 71 of file bvec_ccompute.c.
References pastix_data_s::bcsc, cblk_colnbr(), bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_int_t, and pastix_data_s::solvmatr.
Referenced by c_refine_init().
float bvec_cnrm2_smp | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
const pastix_complex32_t * | x | ||
) |
Compute the norm 2 of a vector. (Parallel version)
[in] | pastix_data | Provide information to the parallel version, to know the global context (Number of thread, barrier, ...). |
[in] | x | The vector which norm2 is to be computed |
[in] | n | The number of elements of x |
Definition at line 215 of file bvec_ccompute.c.
References pastix_data_s::isched, pthread_bvec_cnrm2(), and pastix_data_s::solvmatr.
Referenced by c_refine_init().
void bvec_cscal_seq | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
pastix_complex32_t | alpha, | ||
pastix_complex32_t * | x | ||
) |
Scale a vector by the scalar alpha. (Sequential version)
[in] | pastix_data | Provide information to the parallel version, to know the global context (Number of thread, barrier, ...). |
[in] | n | The size of the vector x. |
[in] | alpha | The scalar to scale the vector x. |
[in,out] | x | The vector x to scale. |
Definition at line 259 of file bvec_ccompute.c.
References pastix_data_s::bcsc, cblk_colnbr(), bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_int_t, and pastix_data_s::solvmatr.
Referenced by c_refine_init().
void bvec_cscal_smp | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
pastix_complex32_t | alpha, | ||
pastix_complex32_t * | x | ||
) |
Scale a vector (Parallel version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | n | The number of elements of the vector |
[in] | alpha | The scaling parameter |
[in,out] | x | The vector to be scaled |
Definition at line 362 of file bvec_ccompute.c.
References pastix_data_s::isched, and pthread_bvec_cscal().
Referenced by c_refine_init().
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().
float bcsc_cnorm | ( | pastix_normtype_t | ntype, |
const pastix_bcsc_t * | bcsc | ||
) |
Compute the norm of an bcsc matrix.
[in] | ntype | = PastixMaxNorm: Max norm = PastixOneNorm: One norm = PastixInfNorm: Infinity norm = PastixFrobeniusNorm: Frobenius norm |
[in] | bcsc | The bcsc structure describing the matrix. |
The | norm of the matrix. |
Definition at line 252 of file bcsc_cnorm.c.
References bcsc_cnorm_frobenius(), bcsc_cnorm_inf(), bcsc_cnorm_max(), bcsc_cnorm_one(), PastixFrobeniusNorm, PastixInfNorm, PastixMaxNorm, and PastixOneNorm.
void bcsc_cspsv | ( | pastix_data_t * | pastix_data, |
pastix_complex32_t * | b, | ||
pastix_complex32_t * | work | ||
) |
Solve A x = b with A the sparse matrix.
In Complex64 and Double precision and if mixed-precision is enabled, solve SA sx = sb with SA the sparse matrix previously initialized respectively in Complex32 or Float precision.
[in] | pastix_data | The PaStiX data structure that describes the solver instance. |
[in,out] | b | On entry, the right hand side On exit, the solution of the problem A x = b |
[in,out] | work | On entry, if mixed-precision is disabled or incompatible with the sparse matrix's precision, the normal solve function is called and work must be NULL. On exit, works stays NULL If mixed-precision is enabled, work must be allocated as a vector half the size of b, so that the solve function can be performed in in mixed-precision. On exit, work is undefined. |
Definition at line 1017 of file bvec_ccompute.c.
References pastix_rhs_s::allocated, pastix_rhs_s::b, pastix_data_s::bcsc, pastix_rhs_s::cblkb, pastix_rhs_s::flttype, pastix_data_s::iparm, IPARM_MIXED, IPARM_VERBOSE, pastix_rhs_s::m, pastix_rhs_s::n, pastix_int_t, and pastix_subtask_solve().
Referenced by c_refine_init().
void bcsc_cspmv | ( | const pastix_data_t * | pastix_data, |
pastix_trans_t | trans, | ||
pastix_complex32_t | alpha, | ||
const pastix_complex32_t * | x, | ||
pastix_complex32_t | beta, | ||
pastix_complex32_t * | y | ||
) |
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
This function is used only in testings.
[in] | pastix_data | Provide information about bcsc, and select the scheduling version based on iparm[IPARM_SCHEDULER]. |
[in] | trans | Specifies whether the matrix A from the bcsc is transposed, not transposed or conjugate transposed: = PastixNoTrans: A is not transposed; = PastixTrans: A is transposed; = PastixConjTrans: A is conjugate transposed. |
[in] | alpha | alpha specifies the scalar alpha |
[in] | x | The vector x. |
[in] | beta | beta specifies the scalar beta |
[in,out] | y | The vector y. |
Definition at line 629 of file bcsc_cspmv.c.
References bcsc_cspmv_seq(), bcsc_cspmv_smp(), bvec_cgather_remote(), pastix_data_s::iparm, IPARM_SCHEDULER, IPARM_TRANSPOSE_SOLVE, pastix_int_t, PastixNoTrans, PastixSchedDynamic, and PastixSchedStatic.
Referenced by c_refine_init().
void bcsc_cspmv_seq | ( | const pastix_data_t * | pastix_data, |
pastix_trans_t | trans, | ||
pastix_complex32_t | alpha, | ||
const pastix_complex32_t * | x, | ||
pastix_complex32_t | beta, | ||
pastix_complex32_t * | y | ||
) |
Compute the matrix-vector product y = alpha * A * x + beta * y (Sequential version)
Where A is given in the bcsc format, x and y are two vectors of size n, and alpha and beta are two scalars.
[in] | pastix_data | Provide information about bcsc |
[in] | trans | Specifies whether the matrix A from the bcsc is transposed, not transposed or conjugate transposed: = PastixNoTrans: A is not transposed; = PastixTrans: A is transposed; = PastixConjTrans: A is conjugate transposed. |
[in] | alpha | alpha specifies the scalar alpha |
[in] | x | The vector x. |
[in] | beta | beta specifies the scalar beta |
[in,out] | y | The vector y. |
Definition at line 246 of file bcsc_cspmv.c.
References pastix_data_s::bcsc, and pastix_data_s::solvmatr.
Referenced by bcsc_cspmv().
void bcsc_cspmv_smp | ( | const pastix_data_t * | pastix_data, |
pastix_trans_t | trans, | ||
pastix_complex32_t | alpha, | ||
const pastix_complex32_t * | x, | ||
pastix_complex32_t | beta, | ||
pastix_complex32_t * | y | ||
) |
Perform y = alpha A x + beta y (Parallel version)
This functions is parallelized through the internal static scheduler.
[in] | pastix_data | The pastix_data structure that holds the A matrix. |
[in] | trans | Specifies whether the matrix A from the bcsc is transposed, not transposed or conjugate transposed: = PastixNoTrans: A is not transposed; = PastixTrans: A is transposed; = PastixConjTrans: A is conjugate transposed. |
[in] | alpha | The scalar alpha. |
[in] | x | The vector x |
[in] | beta | The scalar beta. |
[in,out] | y | On entry, the vector y On exit, alpha A x + y |
Definition at line 552 of file bcsc_cspmv.c.
References pastix_data_s::bcsc, bcsc_cspmv_get_balanced_indexes(), pastix_data_s::isched, pastix_int_t, pthread_bcsc_cspmv(), pthread_bcsc_cspmv_tasktab(), and pastix_data_s::solvmatr.
Referenced by bcsc_cspmv().
const pastix_complex32_t * bvec_cgather_remote | ( | const pastix_data_t * | pastix_data, |
const pastix_complex32_t * | y | ||
) |
Gather a distributed right hand side (bvec storage) on all nodes.
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in,out] | y | On entry, the local portion of the vector y. On exit, the complete vector y. |
TODO |
Definition at line 1352 of file bvec_ccompute.c.
References pastix_data_s::bcsc, solver_matrix_s::cblktab, pastix_int_t, pastix_data_s::procnbr, and pastix_data_s::solvmatr.
Referenced by bcsc_cspmv().
void bvec_cnullify_remote | ( | const pastix_data_t * | pastix_data, |
pastix_complex32_t * | y | ||
) |
Set to 0 remote coefficients.
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in,out] | y | On entry, the initial vector y of size m. On exit, the y vector with remote section set to 0. |
Definition at line 1296 of file bvec_ccompute.c.
References solver_matrix_s::cblknbr, solver_matrix_s::cblktab, solver_cblk_s::cblktype, pastix_data_s::csc, solver_cblk_s::fcolnum, solver_cblk_s::lcolnum, pastix_int_t, and pastix_data_s::solvmatr.
void bvec_callreduce | ( | const pastix_data_t * | pastix_data, |
pastix_complex32_t * | y | ||
) |
Apply an all reduce of the vector on all nodes.
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in,out] | y | On entry, the initial vector y of size m. On exit, the y vector with remote section set to 0. |
Definition at line 1479 of file bvec_ccompute.c.
References pastix_data_s::csc.
void bvec_zaxpy_seq | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
pastix_complex64_t | alpha, | ||
const pastix_complex64_t * | x, | ||
pastix_complex64_t * | y | ||
) |
Compute y <- alpha * x + y. (Sequential version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). -* |
[in] | n | The size of the vectors. |
[in] | alpha | A scalar. |
[in] | x | The vector x. |
[in,out] | y | The vector y. |
Definition at line 398 of file bvec_zcompute.c.
References pastix_data_s::bcsc, cblk_colnbr(), bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_int_t, and pastix_data_s::solvmatr.
Referenced by z_refine_init().
void bvec_zaxpy_smp | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
pastix_complex64_t | alpha, | ||
const pastix_complex64_t * | x, | ||
pastix_complex64_t * | y | ||
) |
Perform y = alpha * x + y (Parallel version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | n | The number of elements of vectors x and y |
[in] | alpha | The scalar to scale x |
[in] | x | The vector to be scaled |
[in,out] | y | The resulting solution |
Definition at line 513 of file bvec_zcompute.c.
References pastix_data_s::isched, and pthread_bvec_zaxpy().
Referenced by z_refine_init().
void bvec_zcopy_seq | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
const pastix_complex64_t * | x, | ||
pastix_complex64_t * | y | ||
) |
Copy a vector y = x (Sequential version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | n | The number of elements of vectors x and y |
[in] | x | The vector to be copied |
[in,out] | y | The vector copy of x |
Definition at line 879 of file bvec_zcompute.c.
References pastix_data_s::bcsc, cblk_colnbr(), bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_int_t, and pastix_data_s::solvmatr.
Referenced by z_refine_init().
void bvec_zcopy_smp | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
const pastix_complex64_t * | x, | ||
pastix_complex64_t * | y | ||
) |
Copy a vector y = x (parallel version)
Initialise argument for the parallel function
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | n | The number of elements of vectors x and y |
[in] | x | The vector to be copied |
[in,out] | y | The vector copy of x |
Definition at line 980 of file bvec_zcompute.c.
References pastix_data_s::isched, and pthread_bvec_zcopy().
Referenced by z_refine_init().
pastix_complex64_t bvec_zdotu_seq | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
const pastix_complex64_t * | x, | ||
const pastix_complex64_t * | y | ||
) |
Compute the scalar product x.y. (Sequential version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | x | The vector x. |
[in] | y | The vector y. |
[in] | n | The size of the vectors. |
the | scalar product of x and y. |
Definition at line 721 of file bvec_zcompute.c.
References pastix_data_s::bcsc, cblk_colnbr(), bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_int_t, and pastix_data_s::solvmatr.
pastix_complex64_t bvec_zdotu_smp | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
const pastix_complex64_t * | x, | ||
const pastix_complex64_t * | y | ||
) |
Compute a regular scalar product x.y (Parallel version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | n | The number of elements of vectors x, y and r |
[in] | x | The first vector of the scalar product |
[in] | y | The second vector of the scalar product |
Definition at line 839 of file bvec_zcompute.c.
References pastix_data_s::isched, and pthread_bvec_zdotu().
void bvec_zgemv_seq | ( | pastix_data_t * | pastix_data, |
pastix_int_t | m, | ||
pastix_int_t | n, | ||
pastix_complex64_t | alpha, | ||
const pastix_complex64_t * | A, | ||
pastix_int_t | lda, | ||
const pastix_complex64_t * | x, | ||
pastix_complex64_t | beta, | ||
pastix_complex64_t * | y | ||
) |
Compute.
\[ y = \alpha A x + \beta y \]
(Sequential version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | m | The number of rows of the matrix A, and the size of y. |
[in] | n | The number of columns of the matrix A, and the size of x. |
[in] | alpha | The scalar alpha. |
[in] | A | The dense matrix A of size lda-by-n. |
[in] | lda | The leading dimension of the matrix A. lda >= max(1,m) |
[in] | x | The vector x of size n. |
[in] | beta | The scalar beta. |
[in,out] | y | On entry, the initial vector y of size m. On exit, the updated vector. |
Definition at line 1112 of file bvec_zcompute.c.
References pastix_data_s::bcsc, cblk_colnbr(), bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_rhs_s::m, pastix_rhs_s::n, pastix_int_t, and pastix_data_s::solvmatr.
Referenced by z_refine_init().
void bvec_zgemv_smp | ( | pastix_data_t * | pastix_data, |
pastix_int_t | m, | ||
pastix_int_t | n, | ||
pastix_complex64_t | alpha, | ||
const pastix_complex64_t * | A, | ||
pastix_int_t | lda, | ||
const pastix_complex64_t * | x, | ||
pastix_complex64_t | beta, | ||
pastix_complex64_t * | y | ||
) |
Compute.
\[ y = \alpha A x + \beta y \]
(Parallel version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | m | The number of rows of the matrix A, and the size of y. |
[in] | n | The number of columns of the matrix A, and the size of x. |
[in] | alpha | The scalar alpha. |
[in] | A | The dense matrix A of size lda-by-n. |
[in] | lda | The leading dimension of the matrix A. lda >= max(1,m) |
[in] | x | The vector x of size n. |
[in] | beta | The scalar beta. |
[in,out] | y | On entry, the initial vector y of size m. On exit, the updated vector. |
Definition at line 1262 of file bvec_zcompute.c.
References pastix_data_s::isched, and pthread_bvec_zgemv().
Referenced by z_refine_init().
double bvec_znrm2_seq | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
const pastix_complex64_t * | x | ||
) |
Compute the norm 2 of a vector. (Sequential version)
[in] | pastix_data | Provide information to the parallel version, to know the global context (Number of thread, barrier, ...). |
[in] | n | The size of the vector x. |
[in] | x | The vector x of size n. |
the | norm 2 of x. |
Definition at line 71 of file bvec_zcompute.c.
References pastix_data_s::bcsc, cblk_colnbr(), bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_int_t, and pastix_data_s::solvmatr.
Referenced by z_refine_init().
double bvec_znrm2_smp | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
const pastix_complex64_t * | x | ||
) |
Compute the norm 2 of a vector. (Parallel version)
[in] | pastix_data | Provide information to the parallel version, to know the global context (Number of thread, barrier, ...). |
[in] | x | The vector which norm2 is to be computed |
[in] | n | The number of elements of x |
Definition at line 215 of file bvec_zcompute.c.
References pastix_data_s::isched, pthread_bvec_znrm2(), and pastix_data_s::solvmatr.
Referenced by z_refine_init().
void bvec_zscal_seq | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
pastix_complex64_t | alpha, | ||
pastix_complex64_t * | x | ||
) |
Scale a vector by the scalar alpha. (Sequential version)
[in] | pastix_data | Provide information to the parallel version, to know the global context (Number of thread, barrier, ...). |
[in] | n | The size of the vector x. |
[in] | alpha | The scalar to scale the vector x. |
[in,out] | x | The vector x to scale. |
Definition at line 259 of file bvec_zcompute.c.
References pastix_data_s::bcsc, cblk_colnbr(), bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_int_t, and pastix_data_s::solvmatr.
Referenced by z_refine_init().
void bvec_zscal_smp | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
pastix_complex64_t | alpha, | ||
pastix_complex64_t * | x | ||
) |
Scale a vector (Parallel version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | n | The number of elements of the vector |
[in] | alpha | The scaling parameter |
[in,out] | x | The vector to be scaled |
Definition at line 362 of file bvec_zcompute.c.
References pastix_data_s::isched, and pthread_bvec_zscal().
Referenced by z_refine_init().
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().
double bcsc_znorm | ( | pastix_normtype_t | ntype, |
const pastix_bcsc_t * | bcsc | ||
) |
Compute the norm of an bcsc matrix.
[in] | ntype | = PastixMaxNorm: Max norm = PastixOneNorm: One norm = PastixInfNorm: Infinity norm = PastixFrobeniusNorm: Frobenius norm |
[in] | bcsc | The bcsc structure describing the matrix. |
The | norm of the matrix. |
Definition at line 252 of file bcsc_znorm.c.
References bcsc_znorm_frobenius(), bcsc_znorm_inf(), bcsc_znorm_max(), bcsc_znorm_one(), PastixFrobeniusNorm, PastixInfNorm, PastixMaxNorm, and PastixOneNorm.
void bcsc_zspsv | ( | pastix_data_t * | pastix_data, |
pastix_complex64_t * | b, | ||
pastix_complex32_t * | work | ||
) |
Solve A x = b with A the sparse matrix.
In Complex64 and Double precision and if mixed-precision is enabled, solve SA sx = sb with SA the sparse matrix previously initialized respectively in Complex32 or Float precision.
[in] | pastix_data | The PaStiX data structure that describes the solver instance. |
[in,out] | b | On entry, the right hand side On exit, the solution of the problem A x = b |
[in,out] | work | On entry, if mixed-precision is disabled or incompatible with the sparse matrix's precision, the normal solve function is called and work must be NULL. On exit, works stays NULL If mixed-precision is enabled, work must be allocated as a vector half the size of b, so that the solve function can be performed in in mixed-precision. On exit, work is undefined. |
Definition at line 1017 of file bvec_zcompute.c.
References pastix_rhs_s::allocated, pastix_rhs_s::b, pastix_data_s::bcsc, pastix_rhs_s::cblkb, pastix_rhs_s::flttype, pastix_data_s::iparm, IPARM_MIXED, IPARM_VERBOSE, pastix_rhs_s::m, pastix_rhs_s::n, pastix_int_t, and pastix_subtask_solve().
Referenced by z_refine_init().
void bcsc_zspmv | ( | const pastix_data_t * | pastix_data, |
pastix_trans_t | trans, | ||
pastix_complex64_t | alpha, | ||
const pastix_complex64_t * | x, | ||
pastix_complex64_t | beta, | ||
pastix_complex64_t * | y | ||
) |
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
This function is used only in testings.
[in] | pastix_data | Provide information about bcsc, and select the scheduling version based on iparm[IPARM_SCHEDULER]. |
[in] | trans | Specifies whether the matrix A from the bcsc is transposed, not transposed or conjugate transposed: = PastixNoTrans: A is not transposed; = PastixTrans: A is transposed; = PastixConjTrans: A is conjugate transposed. |
[in] | alpha | alpha specifies the scalar alpha |
[in] | x | The vector x. |
[in] | beta | beta specifies the scalar beta |
[in,out] | y | The vector y. |
Definition at line 629 of file bcsc_zspmv.c.
References bcsc_zspmv_seq(), bcsc_zspmv_smp(), bvec_zgather_remote(), pastix_data_s::iparm, IPARM_SCHEDULER, IPARM_TRANSPOSE_SOLVE, pastix_int_t, PastixNoTrans, PastixSchedDynamic, and PastixSchedStatic.
Referenced by z_refine_init().
void bcsc_zspmv_seq | ( | const pastix_data_t * | pastix_data, |
pastix_trans_t | trans, | ||
pastix_complex64_t | alpha, | ||
const pastix_complex64_t * | x, | ||
pastix_complex64_t | beta, | ||
pastix_complex64_t * | y | ||
) |
Compute the matrix-vector product y = alpha * A * x + beta * y (Sequential version)
Where A is given in the bcsc format, x and y are two vectors of size n, and alpha and beta are two scalars.
[in] | pastix_data | Provide information about bcsc |
[in] | trans | Specifies whether the matrix A from the bcsc is transposed, not transposed or conjugate transposed: = PastixNoTrans: A is not transposed; = PastixTrans: A is transposed; = PastixConjTrans: A is conjugate transposed. |
[in] | alpha | alpha specifies the scalar alpha |
[in] | x | The vector x. |
[in] | beta | beta specifies the scalar beta |
[in,out] | y | The vector y. |
Definition at line 246 of file bcsc_zspmv.c.
References pastix_data_s::bcsc, and pastix_data_s::solvmatr.
Referenced by bcsc_zspmv().
void bcsc_zspmv_smp | ( | const pastix_data_t * | pastix_data, |
pastix_trans_t | trans, | ||
pastix_complex64_t | alpha, | ||
const pastix_complex64_t * | x, | ||
pastix_complex64_t | beta, | ||
pastix_complex64_t * | y | ||
) |
Perform y = alpha A x + beta y (Parallel version)
This functions is parallelized through the internal static scheduler.
[in] | pastix_data | The pastix_data structure that holds the A matrix. |
[in] | trans | Specifies whether the matrix A from the bcsc is transposed, not transposed or conjugate transposed: = PastixNoTrans: A is not transposed; = PastixTrans: A is transposed; = PastixConjTrans: A is conjugate transposed. |
[in] | alpha | The scalar alpha. |
[in] | x | The vector x |
[in] | beta | The scalar beta. |
[in,out] | y | On entry, the vector y On exit, alpha A x + y |
Definition at line 552 of file bcsc_zspmv.c.
References pastix_data_s::bcsc, bcsc_zspmv_get_balanced_indexes(), pastix_data_s::isched, pastix_int_t, pthread_bcsc_zspmv(), pthread_bcsc_zspmv_tasktab(), and pastix_data_s::solvmatr.
Referenced by bcsc_zspmv().
const pastix_complex64_t * bvec_zgather_remote | ( | const pastix_data_t * | pastix_data, |
const pastix_complex64_t * | y | ||
) |
Gather a distributed right hand side (bvec storage) on all nodes.
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in,out] | y | On entry, the local portion of the vector y. On exit, the complete vector y. |
TODO |
Definition at line 1352 of file bvec_zcompute.c.
References pastix_data_s::bcsc, solver_matrix_s::cblktab, pastix_int_t, pastix_data_s::procnbr, and pastix_data_s::solvmatr.
Referenced by bcsc_zspmv().
void bvec_znullify_remote | ( | const pastix_data_t * | pastix_data, |
pastix_complex64_t * | y | ||
) |
Set to 0 remote coefficients.
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in,out] | y | On entry, the initial vector y of size m. On exit, the y vector with remote section set to 0. |
Definition at line 1296 of file bvec_zcompute.c.
References solver_matrix_s::cblknbr, solver_matrix_s::cblktab, solver_cblk_s::cblktype, pastix_data_s::csc, solver_cblk_s::fcolnum, solver_cblk_s::lcolnum, pastix_int_t, and pastix_data_s::solvmatr.
void bvec_zallreduce | ( | const pastix_data_t * | pastix_data, |
pastix_complex64_t * | y | ||
) |
Apply an all reduce of the vector on all nodes.
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in,out] | y | On entry, the initial vector y of size m. On exit, the y vector with remote section set to 0. |
Definition at line 1479 of file bvec_zcompute.c.
References pastix_data_s::csc.
void bvec_saxpy_seq | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
float | alpha, | ||
const float * | x, | ||
float * | y | ||
) |
Compute y <- alpha * x + y. (Sequential version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). -* |
[in] | n | The size of the vectors. |
[in] | alpha | A scalar. |
[in] | x | The vector x. |
[in,out] | y | The vector y. |
Definition at line 398 of file bvec_scompute.c.
References pastix_data_s::bcsc, cblk_colnbr(), bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_int_t, and pastix_data_s::solvmatr.
Referenced by s_refine_init().
void bvec_saxpy_smp | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
float | alpha, | ||
const float * | x, | ||
float * | y | ||
) |
Perform y = alpha * x + y (Parallel version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | n | The number of elements of vectors x and y |
[in] | alpha | The scalar to scale x |
[in] | x | The vector to be scaled |
[in,out] | y | The resulting solution |
Definition at line 513 of file bvec_scompute.c.
References pastix_data_s::isched, and pthread_bvec_saxpy().
Referenced by s_refine_init().
void bvec_scopy_seq | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
const float * | x, | ||
float * | y | ||
) |
Copy a vector y = x (Sequential version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | n | The number of elements of vectors x and y |
[in] | x | The vector to be copied |
[in,out] | y | The vector copy of x |
Definition at line 879 of file bvec_scompute.c.
References pastix_data_s::bcsc, cblk_colnbr(), bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_int_t, and pastix_data_s::solvmatr.
Referenced by s_refine_init().
void bvec_scopy_smp | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
const float * | x, | ||
float * | y | ||
) |
Copy a vector y = x (parallel version)
Initialise argument for the parallel function
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | n | The number of elements of vectors x and y |
[in] | x | The vector to be copied |
[in,out] | y | The vector copy of x |
Definition at line 980 of file bvec_scompute.c.
References pastix_data_s::isched, and pthread_bvec_scopy().
Referenced by s_refine_init().
float bvec_sdot_seq | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
const float * | x, | ||
const float * | y | ||
) |
Compute the scalar product x.y. (Sequential version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | x | The vector x. |
[in] | y | The vector y. |
[in] | n | The size of the vectors. |
the | scalar product of x and y. |
Definition at line 721 of file bvec_scompute.c.
References pastix_data_s::bcsc, cblk_colnbr(), bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_int_t, and pastix_data_s::solvmatr.
Referenced by s_refine_init().
float bvec_sdot_smp | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
const float * | x, | ||
const float * | y | ||
) |
Compute a regular scalar product x.y (Parallel version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | n | The number of elements of vectors x, y and r |
[in] | x | The first vector of the scalar product |
[in] | y | The second vector of the scalar product |
Definition at line 839 of file bvec_scompute.c.
References pastix_data_s::isched, and pthread_bvec_sdot().
Referenced by s_refine_init().
void bvec_sgemv_seq | ( | pastix_data_t * | pastix_data, |
pastix_int_t | m, | ||
pastix_int_t | n, | ||
float | alpha, | ||
const float * | A, | ||
pastix_int_t | lda, | ||
const float * | x, | ||
float | beta, | ||
float * | y | ||
) |
Compute.
\[ y = \alpha A x + \beta y \]
(Sequential version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | m | The number of rows of the matrix A, and the size of y. |
[in] | n | The number of columns of the matrix A, and the size of x. |
[in] | alpha | The scalar alpha. |
[in] | A | The dense matrix A of size lda-by-n. |
[in] | lda | The leading dimension of the matrix A. lda >= max(1,m) |
[in] | x | The vector x of size n. |
[in] | beta | The scalar beta. |
[in,out] | y | On entry, the initial vector y of size m. On exit, the updated vector. |
Definition at line 1112 of file bvec_scompute.c.
References pastix_data_s::bcsc, cblk_colnbr(), bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_rhs_s::m, pastix_rhs_s::n, pastix_int_t, and pastix_data_s::solvmatr.
Referenced by s_refine_init().
void bvec_sgemv_smp | ( | pastix_data_t * | pastix_data, |
pastix_int_t | m, | ||
pastix_int_t | n, | ||
float | alpha, | ||
const float * | A, | ||
pastix_int_t | lda, | ||
const float * | x, | ||
float | beta, | ||
float * | y | ||
) |
Compute.
\[ y = \alpha A x + \beta y \]
(Parallel version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | m | The number of rows of the matrix A, and the size of y. |
[in] | n | The number of columns of the matrix A, and the size of x. |
[in] | alpha | The scalar alpha. |
[in] | A | The dense matrix A of size lda-by-n. |
[in] | lda | The leading dimension of the matrix A. lda >= max(1,m) |
[in] | x | The vector x of size n. |
[in] | beta | The scalar beta. |
[in,out] | y | On entry, the initial vector y of size m. On exit, the updated vector. |
Definition at line 1262 of file bvec_scompute.c.
References pastix_data_s::isched, and pthread_bvec_sgemv().
Referenced by s_refine_init().
float bvec_snrm2_seq | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
const float * | x | ||
) |
Compute the norm 2 of a vector. (Sequential version)
[in] | pastix_data | Provide information to the parallel version, to know the global context (Number of thread, barrier, ...). |
[in] | n | The size of the vector x. |
[in] | x | The vector x of size n. |
the | norm 2 of x. |
Definition at line 71 of file bvec_scompute.c.
References pastix_data_s::bcsc, cblk_colnbr(), bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_int_t, and pastix_data_s::solvmatr.
Referenced by s_refine_init().
float bvec_snrm2_smp | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
const float * | x | ||
) |
Compute the norm 2 of a vector. (Parallel version)
[in] | pastix_data | Provide information to the parallel version, to know the global context (Number of thread, barrier, ...). |
[in] | x | The vector which norm2 is to be computed |
[in] | n | The number of elements of x |
Definition at line 215 of file bvec_scompute.c.
References pastix_data_s::isched, pthread_bvec_snrm2(), and pastix_data_s::solvmatr.
Referenced by s_refine_init().
void bvec_sscal_seq | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
float | alpha, | ||
float * | x | ||
) |
Scale a vector by the scalar alpha. (Sequential version)
[in] | pastix_data | Provide information to the parallel version, to know the global context (Number of thread, barrier, ...). |
[in] | n | The size of the vector x. |
[in] | alpha | The scalar to scale the vector x. |
[in,out] | x | The vector x to scale. |
Definition at line 259 of file bvec_scompute.c.
References pastix_data_s::bcsc, cblk_colnbr(), bcsc_cblk_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::lcolidx, pastix_int_t, and pastix_data_s::solvmatr.
Referenced by s_refine_init().
void bvec_sscal_smp | ( | pastix_data_t * | pastix_data, |
pastix_int_t | n, | ||
float | alpha, | ||
float * | x | ||
) |
Scale a vector (Parallel version)
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in] | n | The number of elements of the vector |
[in] | alpha | The scaling parameter |
[in,out] | x | The vector to be scaled |
Definition at line 362 of file bvec_scompute.c.
References pastix_data_s::isched, and pthread_bvec_sscal().
Referenced by s_refine_init().
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().
float bcsc_snorm | ( | pastix_normtype_t | ntype, |
const pastix_bcsc_t * | bcsc | ||
) |
Compute the norm of an bcsc matrix.
[in] | ntype | = PastixMaxNorm: Max norm = PastixOneNorm: One norm = PastixInfNorm: Infinity norm = PastixFrobeniusNorm: Frobenius norm |
[in] | bcsc | The bcsc structure describing the matrix. |
The | norm of the matrix. |
Definition at line 252 of file bcsc_snorm.c.
References bcsc_snorm_frobenius(), bcsc_snorm_inf(), bcsc_snorm_max(), bcsc_snorm_one(), PastixFrobeniusNorm, PastixInfNorm, PastixMaxNorm, and PastixOneNorm.
void bcsc_sspsv | ( | pastix_data_t * | pastix_data, |
float * | b, | ||
float * | work | ||
) |
Solve A x = b with A the sparse matrix.
In Complex64 and Double precision and if mixed-precision is enabled, solve SA sx = sb with SA the sparse matrix previously initialized respectively in Complex32 or Float precision.
[in] | pastix_data | The PaStiX data structure that describes the solver instance. |
[in,out] | b | On entry, the right hand side On exit, the solution of the problem A x = b |
[in,out] | work | On entry, if mixed-precision is disabled or incompatible with the sparse matrix's precision, the normal solve function is called and work must be NULL. On exit, works stays NULL If mixed-precision is enabled, work must be allocated as a vector half the size of b, so that the solve function can be performed in in mixed-precision. On exit, work is undefined. |
Definition at line 1017 of file bvec_scompute.c.
References pastix_rhs_s::allocated, pastix_rhs_s::b, pastix_data_s::bcsc, pastix_rhs_s::cblkb, pastix_rhs_s::flttype, pastix_data_s::iparm, IPARM_MIXED, IPARM_VERBOSE, pastix_rhs_s::m, pastix_rhs_s::n, pastix_int_t, and pastix_subtask_solve().
Referenced by s_refine_init().
void bcsc_sspmv | ( | const pastix_data_t * | pastix_data, |
pastix_trans_t | trans, | ||
float | alpha, | ||
const float * | x, | ||
float | beta, | ||
float * | y | ||
) |
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
This function is used only in testings.
[in] | pastix_data | Provide information about bcsc, and select the scheduling version based on iparm[IPARM_SCHEDULER]. |
[in] | trans | Specifies whether the matrix A from the bcsc is transposed, not transposed or conjugate transposed: = PastixNoTrans: A is not transposed; = PastixTrans: A is transposed; = PastixTrans: A is conjugate transposed. |
[in] | alpha | alpha specifies the scalar alpha |
[in] | x | The vector x. |
[in] | beta | beta specifies the scalar beta |
[in,out] | y | The vector y. |
Definition at line 629 of file bcsc_sspmv.c.
References bcsc_sspmv_seq(), bcsc_sspmv_smp(), bvec_sgather_remote(), pastix_data_s::iparm, IPARM_SCHEDULER, IPARM_TRANSPOSE_SOLVE, pastix_int_t, PastixNoTrans, PastixSchedDynamic, and PastixSchedStatic.
Referenced by s_refine_init().
void bcsc_sspmv_seq | ( | const pastix_data_t * | pastix_data, |
pastix_trans_t | trans, | ||
float | alpha, | ||
const float * | x, | ||
float | beta, | ||
float * | y | ||
) |
Compute the matrix-vector product y = alpha * A * x + beta * y (Sequential version)
Where A is given in the bcsc format, x and y are two vectors of size n, and alpha and beta are two scalars.
[in] | pastix_data | Provide information about bcsc |
[in] | trans | Specifies whether the matrix A from the bcsc is transposed, not transposed or conjugate transposed: = PastixNoTrans: A is not transposed; = PastixTrans: A is transposed; = PastixTrans: A is conjugate transposed. |
[in] | alpha | alpha specifies the scalar alpha |
[in] | x | The vector x. |
[in] | beta | beta specifies the scalar beta |
[in,out] | y | The vector y. |
Definition at line 246 of file bcsc_sspmv.c.
References pastix_data_s::bcsc, and pastix_data_s::solvmatr.
Referenced by bcsc_sspmv().
void bcsc_sspmv_smp | ( | const pastix_data_t * | pastix_data, |
pastix_trans_t | trans, | ||
float | alpha, | ||
const float * | x, | ||
float | beta, | ||
float * | y | ||
) |
Perform y = alpha A x + beta y (Parallel version)
This functions is parallelized through the internal static scheduler.
[in] | pastix_data | The pastix_data structure that holds the A matrix. |
[in] | trans | Specifies whether the matrix A from the bcsc is transposed, not transposed or conjugate transposed: = PastixNoTrans: A is not transposed; = PastixTrans: A is transposed; = PastixTrans: A is conjugate transposed. |
[in] | alpha | The scalar alpha. |
[in] | x | The vector x |
[in] | beta | The scalar beta. |
[in,out] | y | On entry, the vector y On exit, alpha A x + y |
Definition at line 552 of file bcsc_sspmv.c.
References pastix_data_s::bcsc, bcsc_sspmv_get_balanced_indexes(), pastix_data_s::isched, pastix_int_t, pthread_bcsc_sspmv(), pthread_bcsc_sspmv_tasktab(), and pastix_data_s::solvmatr.
Referenced by bcsc_sspmv().
const float * bvec_sgather_remote | ( | const pastix_data_t * | pastix_data, |
const float * | y | ||
) |
Gather a distributed right hand side (bvec storage) on all nodes.
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in,out] | y | On entry, the local portion of the vector y. On exit, the complete vector y. |
TODO |
Definition at line 1352 of file bvec_scompute.c.
References pastix_data_s::bcsc, solver_matrix_s::cblktab, pastix_int_t, pastix_data_s::procnbr, and pastix_data_s::solvmatr.
Referenced by bcsc_sspmv().
void bvec_snullify_remote | ( | const pastix_data_t * | pastix_data, |
float * | y | ||
) |
Set to 0 remote coefficients.
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in,out] | y | On entry, the initial vector y of size m. On exit, the y vector with remote section set to 0. |
Definition at line 1296 of file bvec_scompute.c.
References solver_matrix_s::cblknbr, solver_matrix_s::cblktab, solver_cblk_s::cblktype, pastix_data_s::csc, solver_cblk_s::fcolnum, solver_cblk_s::lcolnum, pastix_int_t, and pastix_data_s::solvmatr.
void bvec_sallreduce | ( | const pastix_data_t * | pastix_data, |
float * | y | ||
) |
Apply an all reduce of the vector on all nodes.
[in] | pastix_data | The information about sequential and parallel version (Number of thread, ...). |
[in,out] | y | On entry, the initial vector y of size m. On exit, the y vector with remote section set to 0. |
Definition at line 1479 of file bvec_scompute.c.
References pastix_data_s::csc.
|
inlinestatic |
Compute the norm 2 of a vector. (Parallel version)
[in] | ctx | The context of the current thread |
[in,out] | args | The parameter that providenumber of elements of x, and the vector which norm2 is to be computed, and the norm value |
Definition at line 146 of file bvec_dcompute.c.
References pastix_int_t.
Referenced by bvec_dnrm2_smp().
|
inlinestatic |
Scale a vector (Parallel version)
[in] | ctx | The information about number of thread and rank of the actual thread |
[in,out] | args | The argument providing number of elements of the vector, the scaling parameter and, and the vector to be scaled |
Definition at line 310 of file bvec_dcompute.c.
References pastix_int_t.
Referenced by bvec_dscal_smp().
|
inlinestatic |
Compute the norm 2 of a vector. (Parallel version)
[in] | ctx | The context of the current thread |
[in,out] | args | The parameter that providenumber of elements of x, and the vector which norm2 is to be computed, and the norm value |
Definition at line 146 of file bvec_scompute.c.
References pastix_int_t.
Referenced by bvec_snrm2_smp().
|
inlinestatic |
Scale a vector (Parallel version)
[in] | ctx | The information about number of thread and rank of the actual thread |
[in,out] | args | The argument providing number of elements of the vector, the scaling parameter and, and the vector to be scaled |
Definition at line 310 of file bvec_scompute.c.
References pastix_int_t.
Referenced by bvec_sscal_smp().
|
inlinestatic |
Compute the norm 2 of a vector. (Parallel version)
[in] | ctx | The context of the current thread |
[in,out] | args | The parameter that providenumber of elements of x, and the vector which norm2 is to be computed, and the norm value |
Definition at line 146 of file bvec_zcompute.c.
References pastix_int_t.
Referenced by bvec_znrm2_smp().
|
inlinestatic |
Scale a vector (Parallel version)
[in] | ctx | The information about number of thread and rank of the actual thread |
[in,out] | args | The argument providing number of elements of the vector, the scaling parameter and, and the vector to be scaled |
Definition at line 310 of file bvec_zcompute.c.
References pastix_int_t.
Referenced by bvec_zscal_smp().
|
inlinestatic |
Compute the norm 2 of a vector. (Parallel version)
[in] | ctx | The context of the current thread |
[in,out] | args | The parameter that providenumber of elements of x, and the vector which norm2 is to be computed, and the norm value |
Definition at line 146 of file bvec_ccompute.c.
References pastix_int_t.
Referenced by bvec_cnrm2_smp().
|
inlinestatic |
Scale a vector (Parallel version)
[in] | ctx | The information about number of thread and rank of the actual thread |
[in,out] | args | The argument providing number of elements of the vector, the scaling parameter and, and the vector to be scaled |
Definition at line 310 of file bvec_ccompute.c.
References pastix_int_t.
Referenced by bvec_cscal_smp().