34 #if defined(PASTIX_WITH_MPI)
35 void bcsc_dstore_data(
const spmatrix_t *spm,
71 #if defined(PRECISION_z) || defined(PRECISION_c)
126 #if defined( PASTIX_WITH_MPI )
157 const pastix_bcsc_t *bcsc );
BEGIN_C_DECLS typedef int pastix_int_t
void bcsc_dinit(const spmatrix_t *spm, const pastix_order_t *ord, const SolverMatrix *solvmtx, int initAt, pastix_bcsc_t *bcsc, pastix_int_t valuesize)
Initializes a centralize double block csc.
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.
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)
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)
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)
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)
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.
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)
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)
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)
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.
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)
void bcsc_dspsv(pastix_data_t *pastix_data, double *b, float *work)
Solve A x = b with A the sparse matrix.
void bvec_dscal_smp(pastix_data_t *pastix_data, pastix_int_t n, double alpha, double *x)
Scale a vector (Parallel version)
double bcsc_dnorm(pastix_normtype_t ntype, const pastix_bcsc_t *bcsc)
Compute the norm of an bcsc matrix.
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)
void bvec_dallreduce(const pastix_data_t *pastix_data, double *y)
Apply an all reduce of the vector on all nodes.
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.
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)
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)
void bvec_dnullify_remote(const pastix_data_t *pastix_data, double *y)
Set to 0 remote coefficients.
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)
Structure to manage communications with distributed spm.
Structure to manage communications with distributed rhs.
enum pastix_normtype_e pastix_normtype_t
Norms.
enum pastix_dir_e pastix_dir_t
Direction.
enum pastix_trans_e pastix_trans_t
Transpostion.
Main PaStiX data structure.
Main PaStiX RHS structure.
Solver column block structure.