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

Go to the source code of this file.

Functions

void c_spmIntFltSortAsc (void **const pbase, const spm_int_t n)
 Integer routines.
 
void c_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_complex32_t.
 
int c_spmConvertCSC2CSR (spmatrix_t *spm)
 convert a matrix in CSC format to a matrix in CSR format.
 
int c_spmConvertCSC2IJV (spmatrix_t *spm)
 Convert a matrix in CSC format to a matrix in IJV format.
 
int c_spmConvertCSR2CSC (spmatrix_t *spm)
 convert a matrix in CSR format to a matrix in CSC format.
 
int c_spmConvertCSR2IJV (spmatrix_t *spm)
 convert a matrix in CSR format to a matrix in IJV format.
 
int c_spmConvertIJV2CSC (spmatrix_t *spm)
 convert a matrix in IJV format to a matrix in CSC format.
 
int c_spmConvertIJV2CSR (spmatrix_t *spm)
 convert a matrix in IJV format to a matrix in CSR format.
 
void c_spm2dense (const spmatrix_t *spm, spm_complex32_t *A)
 Convert a sparse matrix into a dense matrix.
 
int spm_cspmv (spm_trans_t trans, spm_complex32_t alpha, const spmatrix_t *A, const spm_complex32_t *x, spm_int_t incx, spm_complex32_t beta, spm_complex32_t *y, spm_int_t incy)
 compute the matrix-vector product:
 
int spm_cspmm (spm_side_t side, spm_trans_t transA, spm_trans_t transB, spm_int_t K, spm_complex32_t alpha, const spmatrix_t *A, const spm_complex32_t *B, spm_int_t ldb, spm_complex32_t beta, spm_complex32_t *C, spm_int_t ldc)
 Compute a matrix-matrix product.
 
float c_spmNorm (spm_normtype_t ntype, const spmatrix_t *spm)
 Compute the norm of an spm matrix.
 
float c_spmNormMat (spm_normtype_t ntype, const spmatrix_t *spm, spm_int_t n, const spm_complex32_t *A, spm_int_t lda)
 Compute the norm of a dense matrix that follows the distribution of an spm matrix.
 
void c_spmSort (spmatrix_t *spm)
 This routine sorts the spm matrix.
 
spm_int_t c_spmMergeDuplicate (spmatrix_t *spm)
 This routine merge the multiple entries in a sparse matrix by summing their values together.
 
int c_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 c_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 c_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 c_spmGatherRHS (int nrhs, const spmatrix_t *spm, const spm_complex32_t *x, spm_int_t ldx, int root, spm_complex32_t *gx, spm_int_t ldgx)
 Gather all the global C coefficients and store the good ones in local.
 
void c_spmReduceRHS (int nrhs, const spmatrix_t *spm, spm_complex32_t *bglob, spm_int_t ldbg, spm_complex32_t *bloc, spm_int_t ldbl)
 Reduce all the global coefficients of a rhs and store the local ones.
 
void c_spmExtractLocalRHS (int nrhs, const spmatrix_t *spm, const spm_complex32_t *bglob, spm_int_t ldbg, spm_complex32_t *bloc, spm_int_t ldbl)
 Stores the local values of a global RHS in the local one.
 
void c_spmPrint (FILE *f, const spmatrix_t *spm)
 Write a spm matrix in a file.
 
void c_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 c_spmDensePrint (FILE *f, spm_int_t m, spm_int_t n, const spm_complex32_t *A, spm_int_t lda)
 Print a dense matrix to the given file.
 
void c_spmExpand (const spmatrix_t *spm_in, spmatrix_t *spm_out)
 Expand a single dof sparse matrix to a multi-dofs sparse matrix.
 
void c_spmDofExtend (spmatrix_t *spm)
 Extend a single dof sparse matrix to a multi-dof sparse matrix.
 
void c_spmScal (const float alpha, spmatrix_t *spm)
 Scal the spm: A = alpha * A.
 
int c_spmRhsGenRndShm (const spmatrix_t *spm, spm_complex32_t scale, spm_int_t n, spm_complex32_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 c_spmRhsGenRndDist (const spmatrix_t *spm, spm_complex32_t alpha, spm_int_t n, spm_complex32_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 -> c, Fri Nov 29 11:34:27 2024

Definition in file c_spm.h.