SpM Handbook 1.2.4
Loading...
Searching...
No Matches
z_spm.h File Reference

Go to the source code of this file.

Functions

void z_spmIntFltSortAsc (void **const pbase, const spm_int_t n)
 Integer routines.
 
void z_spmIntIntFltSortAsc (void **const pbase, const spm_int_t n)
 Sort 2 arrays simultaneously, the first array is an array of spm_int_t and used as key for sorting. The second array is an array of spm_complex64_t.
 
int z_spmConvertCSC2CSR (spmatrix_t *spm)
 convert a matrix in CSC format to a matrix in CSR format.
 
int z_spmConvertCSC2IJV (spmatrix_t *spm)
 Convert a matrix in CSC format to a matrix in IJV format.
 
int z_spmConvertCSR2CSC (spmatrix_t *spm)
 convert a matrix in CSR format to a matrix in CSC format.
 
int z_spmConvertCSR2IJV (spmatrix_t *spm)
 convert a matrix in CSR format to a matrix in IJV format.
 
int z_spmConvertIJV2CSC (spmatrix_t *spm)
 convert a matrix in IJV format to a matrix in CSC format.
 
int z_spmConvertIJV2CSR (spmatrix_t *spm)
 convert a matrix in IJV format to a matrix in CSR format.
 
void z_spm2dense (const spmatrix_t *spm, spm_complex64_t *A)
 Convert a sparse matrix into a dense matrix.
 
int spm_zspmv (spm_trans_t trans, spm_complex64_t alpha, const spmatrix_t *A, const spm_complex64_t *x, spm_int_t incx, spm_complex64_t beta, spm_complex64_t *y, spm_int_t incy)
 compute the matrix-vector product:
 
int spm_zspmm (spm_side_t side, spm_trans_t transA, spm_trans_t transB, spm_int_t K, spm_complex64_t alpha, const spmatrix_t *A, const spm_complex64_t *B, spm_int_t ldb, spm_complex64_t beta, spm_complex64_t *C, spm_int_t ldc)
 Compute a matrix-matrix product.
 
double z_spmNorm (spm_normtype_t ntype, const spmatrix_t *spm)
 Compute the norm of an spm matrix.
 
double z_spmNormMat (spm_normtype_t ntype, const spmatrix_t *spm, spm_int_t n, const spm_complex64_t *A, spm_int_t lda)
 Compute the norm of a dense matrix that follows the distribution of an spm matrix.
 
void z_spmSort (spmatrix_t *spm)
 This routine sorts the spm matrix.
 
spm_int_t z_spmMergeDuplicate (spmatrix_t *spm)
 This routine merge the multiple entries in a sparse matrix by summing their values together.
 
int z_spmGenRHS (spm_rhstype_t type, int nrhs, const spmatrix_t *spm, void *x, int ldx, void *b, int ldb)
 Generate nrhs right hand side vectors associated to a given matrix to test a problem with a solver.
 
int z_spmGenMat (spm_rhstype_t type, int nrhs, const spmatrix_t *spm, void *alphaptr, unsigned long long int seed, void *A, int lda)
 Generate nrhs right hand side vectors associated to a given matrix to test a problem with a solver.
 
int z_spmCheckAxb (spm_fixdbl_t eps, int nrhs, const spmatrix_t *spm, void *x0, int ldx0, void *b, int ldb, const void *x, int ldx)
 Check the backward error, and the forward error if x0 is provided.
 
void z_spmGatherRHS (int nrhs, const spmatrix_t *spm, const spm_complex64_t *x, spm_int_t ldx, int root, spm_complex64_t *gx, spm_int_t ldgx)
 Gather all the global C coefficients and store the good ones in local.
 
void z_spmReduceRHS (int nrhs, const spmatrix_t *spm, spm_complex64_t *bglob, spm_int_t ldbg, spm_complex64_t *bloc, spm_int_t ldbl)
 Reduce all the global coefficients of a rhs and store the local ones.
 
void z_spmExtractLocalRHS (int nrhs, const spmatrix_t *spm, const spm_complex64_t *bglob, spm_int_t ldbg, spm_complex64_t *bloc, spm_int_t ldbl)
 Stores the local values of a global RHS in the local one.
 
void z_spmPrint (FILE *f, const spmatrix_t *spm)
 Write a spm matrix in a file.
 
void z_spmPrintRHS (FILE *f, const spmatrix_t *spm, int nrhs, const void *x, spm_int_t ldx)
 Write into a file the vectors associated to a spm.
 
void z_spmDensePrint (FILE *f, spm_int_t m, spm_int_t n, const spm_complex64_t *A, spm_int_t lda)
 Print a dense matrix to the given file.
 
void z_spmExpand (const spmatrix_t *spm_in, spmatrix_t *spm_out)
 Expand a single dof sparse matrix to a multi-dofs sparse matrix.
 
void z_spmDofExtend (spmatrix_t *spm)
 Extend a single dof sparse matrix to a multi-dof sparse matrix.
 
void z_spmScal (const double alpha, spmatrix_t *spm)
 Scal the spm: A = alpha * A.
 
int z_spmRhsGenRndShm (const spmatrix_t *spm, spm_complex64_t scale, spm_int_t n, spm_complex64_t *A, spm_int_t lda, int shift, unsigned long long int seed)
 Generate a set of vectors of random values in shared memory.
 
int z_spmRhsGenRndDist (const spmatrix_t *spm, spm_complex64_t alpha, spm_int_t n, spm_complex64_t *A, spm_int_t lda, int shift, unsigned long long int seed)
 Generate a set of vectors of random values in distributed memory.
 

Detailed Description

SParse Matrix package precision dependent header.

Version
1.2.4
Author
Pierre Ramet
Mathieu Faverge
Alban Bellot
Tony Delarue
Alycia Lisito
Date
2024-05-29
Generated arithmetic file from /builds/2mk6rsew/0/fpruvost/spm/include/spm/z_spm.h, normal z -> z, Fri Nov 29 11:34:27 2024

Definition in file z_spm.h.