PaStiX Handbook  6.2.1
Solver matrix coefficient structure

Typedefs

typedef void(* coeftab_fct_memory_t) (SolverMatrix *, pastix_fixdbl_t *)
 Type of the memory gain functions.
 

Functions

void coeftabInit (pastix_data_t *pastix_data, pastix_coefside_t side)
 Initialize the solver matrix structure. More...
 
void coeftabExit (SolverMatrix *solvmtx)
 Free the solver matrix structure. More...
 
pastix_int_t coeftabCompress (pastix_data_t *pastix_data)
 Compress the factorized matrix structure if not already done. More...
 

Variables

coeftab_fct_memory_t coeftabMemory [4]
 List of functions to compute the memory gain in low-rank per precision.
 

PastixFloat compression/uncompression routines

pastix_int_t coeftab_scompress (SolverMatrix *solvmtx)
 Compress all the cblks marked as valid for low-rank format. More...
 
void coeftab_suncompress (SolverMatrix *solvmtx)
 Uncompress all column block in low-rank format into full-rank format. More...
 
void coeftab_smemory (SolverMatrix *solvmtx, pastix_fixdbl_t *dparm)
 Compute the memory gain of the low-rank form over the full-rank form for the entire matrix. More...
 

PastixFloat Extraction routines

void coeftab_sgetschur (const SolverMatrix *solvmtx, float *S, pastix_int_t lds)
 Extract the Schur complement. More...
 
void coeftab_sgetdiag (const SolverMatrix *solvmtx, float *D, pastix_int_t incD)
 Extract the diagonal. More...
 

PastixFloat debug routines

void coeftab_sdump (pastix_data_t *pastix_data, const SolverMatrix *solvmtx, const char *filename)
 Dump the solver matrix coefficients into a file in human readable format. More...
 
int coeftab_sdiff (pastix_coefside_t side, const SolverMatrix *solvA, SolverMatrix *solvB)
 Compare two solver matrices in full-rank format with the same data distribution. More...
 

PastixComplex64 compression/uncompression routines

pastix_int_t coeftab_zcompress (SolverMatrix *solvmtx)
 Compress all the cblks marked as valid for low-rank format. More...
 
void coeftab_zuncompress (SolverMatrix *solvmtx)
 Uncompress all column block in low-rank format into full-rank format. More...
 
void coeftab_zmemory (SolverMatrix *solvmtx, pastix_fixdbl_t *dparm)
 Compute the memory gain of the low-rank form over the full-rank form for the entire matrix. More...
 

PastixComplex64 Extraction routines

void coeftab_zgetschur (const SolverMatrix *solvmtx, pastix_complex64_t *S, pastix_int_t lds)
 Extract the Schur complement. More...
 
void coeftab_zgetdiag (const SolverMatrix *solvmtx, pastix_complex64_t *D, pastix_int_t incD)
 Extract the diagonal. More...
 

PastixComplex64 debug routines

void coeftab_zdump (pastix_data_t *pastix_data, const SolverMatrix *solvmtx, const char *filename)
 Dump the solver matrix coefficients into a file in human readable format. More...
 
int coeftab_zdiff (pastix_coefside_t side, const SolverMatrix *solvA, SolverMatrix *solvB)
 Compare two solver matrices in full-rank format with the same data distribution. More...
 

PastixDouble compression/uncompression routines

pastix_int_t coeftab_dcompress (SolverMatrix *solvmtx)
 Compress all the cblks marked as valid for low-rank format. More...
 
void coeftab_duncompress (SolverMatrix *solvmtx)
 Uncompress all column block in low-rank format into full-rank format. More...
 
void coeftab_dmemory (SolverMatrix *solvmtx, pastix_fixdbl_t *dparm)
 Compute the memory gain of the low-rank form over the full-rank form for the entire matrix. More...
 

PastixDouble Extraction routines

void coeftab_dgetschur (const SolverMatrix *solvmtx, double *S, pastix_int_t lds)
 Extract the Schur complement. More...
 
void coeftab_dgetdiag (const SolverMatrix *solvmtx, double *D, pastix_int_t incD)
 Extract the diagonal. More...
 

PastixDouble debug routines

void coeftab_ddump (pastix_data_t *pastix_data, const SolverMatrix *solvmtx, const char *filename)
 Dump the solver matrix coefficients into a file in human readable format. More...
 
int coeftab_ddiff (pastix_coefside_t side, const SolverMatrix *solvA, SolverMatrix *solvB)
 Compare two solver matrices in full-rank format with the same data distribution. More...
 

PastixComplex32 compression/uncompression routines

pastix_int_t coeftab_ccompress (SolverMatrix *solvmtx)
 Compress all the cblks marked as valid for low-rank format. More...
 
void coeftab_cuncompress (SolverMatrix *solvmtx)
 Uncompress all column block in low-rank format into full-rank format. More...
 
void coeftab_cmemory (SolverMatrix *solvmtx, pastix_fixdbl_t *dparm)
 Compute the memory gain of the low-rank form over the full-rank form for the entire matrix. More...
 

PastixComplex32 Extraction routines

void coeftab_cgetschur (const SolverMatrix *solvmtx, pastix_complex32_t *S, pastix_int_t lds)
 Extract the Schur complement. More...
 
void coeftab_cgetdiag (const SolverMatrix *solvmtx, pastix_complex32_t *D, pastix_int_t incD)
 Extract the diagonal. More...
 

PastixComplex32 debug routines

void coeftab_cdump (pastix_data_t *pastix_data, const SolverMatrix *solvmtx, const char *filename)
 Dump the solver matrix coefficients into a file in human readable format. More...
 
int coeftab_cdiff (pastix_coefside_t side, const SolverMatrix *solvA, SolverMatrix *solvB)
 Compare two solver matrices in full-rank format with the same data distribution. More...
 

Detailed Description

This group collects all the functions that operate on the full matrix and which are not factorization/solve routines.

Function Documentation

◆ coeftabInit()

void coeftabInit ( pastix_data_t *  pastix_data,
pastix_coefside_t  side 
)

Initialize the solver matrix structure.

This routine is a parallel routine to initialize the solver matrix structure through the internal static scheduler

Parameters
[in,out]pastix_dataThe pastix_data structure that hold the solver matrix to initialize.
[in]sideDescribe the side(s) of the matrix that must be initialized.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.

Definition at line 138 of file coeftab.c.

References solver_cblk_s::brownum, solver_cblk_s::ctrbcnt, solver_blok_s::iluklvl, pastix_gendirectories(), and pcoeftabInit().

◆ coeftabExit()

void coeftabExit ( SolverMatrix *  solvmtx)

Free the solver matrix structure.

This routine free all data structure refereing to the solver matrix L, even the runtime descriptors if present.

Parameters
[in,out]solvmtxThe solver matrix structure of the problem.

Definition at line 185 of file coeftab.c.

References solver_cblk_s::cblktype, parsec_sparse_matrix_destroy(), and starpu_sparse_matrix_destroy().

Referenced by solverExit().

◆ coeftabCompress()

pastix_int_t coeftabCompress ( pastix_data_t *  pastix_data)

Compress the factorized matrix structure if not already done.

This routine compress all column blocks that are marked for compression, and return the amount of memory saved by the compression.

Parameters
[in,out]pastix_dataThe pastix_data structure that holds the problem
Returns
The memory gain resulting from the compression to low-rank format in number of elements.

Definition at line 320 of file coeftab.c.

References DPARM_COMPRESS_TOLERANCE, IPARM_COMPRESS_METHOD, IPARM_COMPRESS_MIN_HEIGHT, IPARM_COMPRESS_MIN_WIDTH, and pcoeftabComp().

◆ coeftab_scompress()

pastix_int_t coeftab_scompress ( SolverMatrix *  solvmtx)

Compress all the cblks marked as valid for low-rank format.

All the cblk in the top levels of the elimination tree marked as candidates for compression are compressed if there is a gain to compress them. The compression to low-rank format is parameterized by the input information stored in the lowrank structure. On exit, all the cblks marked for compression are stored through the low-rank structure, even if they are kept in their full-rank form.

Remarks
This routine is sequential
Parameters
[in,out]solvmtxThe solver matrix of the problem to compress.
Returns
The memory gain resulting from the compression to low-rank format in Bytes.

Definition at line 174 of file coeftab_s.c.

References solver_cblk_s::cblktype, PastixFactLU, PastixLCoef, and PastixLUCoef.

◆ coeftab_suncompress()

void coeftab_suncompress ( SolverMatrix *  solvmtx)

Uncompress all column block in low-rank format into full-rank format.

Parameters
[in,out]solvmtxThe solver matrix of the problem.

Definition at line 203 of file coeftab_s.c.

References solver_cblk_s::cblktype, PastixFactLU, PastixLCoef, and PastixLUCoef.

◆ coeftab_smemory()

void coeftab_smemory ( SolverMatrix *  solvmtx,
pastix_fixdbl_t *  dparm 
)

Compute the memory gain of the low-rank form over the full-rank form for the entire matrix.

This function returns the memory gain in bytes for the full matrix when column blocks are stored in low-rank format compared to a full rank storage.

Parameters
[in]solvmtxThe solver matrix of the problem.
[in,out]dparmThe float parameter array which is going to be updated.

Definition at line 235 of file coeftab_s.c.

References PastixFactLU, PastixLCoef, and PastixLUCoef.

◆ coeftab_sgetschur()

void coeftab_sgetschur ( const SolverMatrix *  solvmtx,
float *  S,
pastix_int_t  lds 
)

Extract the Schur complement.

This routine is sequential and returns the full Schur complement uncommpressed in Lapack format.

Parameters
[in]solvmtxThe solver matrix structure describing the problem.
[in,out]SThe pointer to the allocated matrix array that will store the Schur complement.
[in]ldsThe leading dimension of the S array.

Definition at line 435 of file coeftab_s.c.

References solver_cblk_s::cblktype, solver_cblk_s::fcolnum, and PastixFactLU.

◆ coeftab_sgetdiag()

void coeftab_sgetdiag ( const SolverMatrix *  solvmtx,
float *  D,
pastix_int_t  incD 
)

Extract the diagonal.

This routine is sequential and returns the full diagonal in the vector D, such that: D[incD*i]= A(i, i)

Parameters
[in]solvmtxThe solver matrix structure describing the problem.
[in,out]DThe pointer to the allocated vector array that will store the diagonal. D must be of size solvmtx->nodenbr * incD.
[in]incDThe increment bewteen two elements of D. incD > 0.

Definition at line 484 of file coeftab_s.c.

References cblk_colnbr(), and solver_cblk_s::cblktype.

◆ coeftab_sdump()

void coeftab_sdump ( pastix_data_t *  pastix_data,
const SolverMatrix *  solvmtx,
const char *  prefix 
)

Dump the solver matrix coefficients into a file in human readable format.

All non-zeroes coefficients are dumped in the format: i j val with one value per row.

Parameters
[in,out]pastix_dataThe pastix_data instance to access the unique directory id in which output the files.
[in]solvmtxThe solver matrix to print.
[in]filenameThe filename where to store the output matrix.

Definition at line 52 of file coeftab_s.c.

References solver_cblk_s::cblktype, and pastix_gendirectories().

◆ coeftab_sdiff()

int coeftab_sdiff ( pastix_coefside_t  side,
const SolverMatrix *  solvA,
SolverMatrix *  solvB 
)

Compare two solver matrices in full-rank format with the same data distribution.

The second solver matrix is overwritten by the difference of the two matrices. The frobenius norm of the difference of each column block is computed and the functions returns 0 if the result for all the column blocks of: || B_k - A_k || / ( || A_k || * eps )

is below 10. Otherwise, an error message is printed and 1 is returned.

Parameters
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]solvAThe solver matrix A.
[in,out]solvBThe solver matrix B. On exit, B coefficient arrays are overwritten by the result of (B-A).
Returns
0 if the test is passed, >= 0 otherwise.

Definition at line 127 of file coeftab_s.c.

References cpucblk_sdiff().

◆ coeftab_zcompress()

pastix_int_t coeftab_zcompress ( SolverMatrix *  solvmtx)

Compress all the cblks marked as valid for low-rank format.

All the cblk in the top levels of the elimination tree marked as candidates for compression are compressed if there is a gain to compress them. The compression to low-rank format is parameterized by the input information stored in the lowrank structure. On exit, all the cblks marked for compression are stored through the low-rank structure, even if they are kept in their full-rank form.

Remarks
This routine is sequential
Parameters
[in,out]solvmtxThe solver matrix of the problem to compress.
Returns
The memory gain resulting from the compression to low-rank format in Bytes.

Definition at line 174 of file coeftab_z.c.

References solver_cblk_s::cblktype, PastixFactLU, PastixLCoef, and PastixLUCoef.

◆ coeftab_zuncompress()

void coeftab_zuncompress ( SolverMatrix *  solvmtx)

Uncompress all column block in low-rank format into full-rank format.

Parameters
[in,out]solvmtxThe solver matrix of the problem.

Definition at line 203 of file coeftab_z.c.

References solver_cblk_s::cblktype, PastixFactLU, PastixLCoef, and PastixLUCoef.

◆ coeftab_zmemory()

void coeftab_zmemory ( SolverMatrix *  solvmtx,
pastix_fixdbl_t *  dparm 
)

Compute the memory gain of the low-rank form over the full-rank form for the entire matrix.

This function returns the memory gain in bytes for the full matrix when column blocks are stored in low-rank format compared to a full rank storage.

Parameters
[in]solvmtxThe solver matrix of the problem.
[in,out]dparmThe double parameter array which is going to be updated.

Definition at line 235 of file coeftab_z.c.

References PastixFactLU, PastixLCoef, and PastixLUCoef.

◆ coeftab_zgetschur()

void coeftab_zgetschur ( const SolverMatrix *  solvmtx,
pastix_complex64_t *  S,
pastix_int_t  lds 
)

Extract the Schur complement.

This routine is sequential and returns the full Schur complement uncommpressed in Lapack format.

Parameters
[in]solvmtxThe solver matrix structure describing the problem.
[in,out]SThe pointer to the allocated matrix array that will store the Schur complement.
[in]ldsThe leading dimension of the S array.

Definition at line 435 of file coeftab_z.c.

References solver_cblk_s::cblktype, solver_cblk_s::fcolnum, and PastixFactLU.

◆ coeftab_zgetdiag()

void coeftab_zgetdiag ( const SolverMatrix *  solvmtx,
pastix_complex64_t *  D,
pastix_int_t  incD 
)

Extract the diagonal.

This routine is sequential and returns the full diagonal in the vector D, such that: D[incD*i]= A(i, i)

Parameters
[in]solvmtxThe solver matrix structure describing the problem.
[in,out]DThe pointer to the allocated vector array that will store the diagonal. D must be of size solvmtx->nodenbr * incD.
[in]incDThe increment bewteen two elements of D. incD > 0.

Definition at line 484 of file coeftab_z.c.

References cblk_colnbr(), and solver_cblk_s::cblktype.

◆ coeftab_zdump()

void coeftab_zdump ( pastix_data_t *  pastix_data,
const SolverMatrix *  solvmtx,
const char *  prefix 
)

Dump the solver matrix coefficients into a file in human readable format.

All non-zeroes coefficients are dumped in the format: i j val with one value per row.

Parameters
[in,out]pastix_dataThe pastix_data instance to access the unique directory id in which output the files.
[in]solvmtxThe solver matrix to print.
[in]filenameThe filename where to store the output matrix.

Definition at line 52 of file coeftab_z.c.

References solver_cblk_s::cblktype, and pastix_gendirectories().

◆ coeftab_zdiff()

int coeftab_zdiff ( pastix_coefside_t  side,
const SolverMatrix *  solvA,
SolverMatrix *  solvB 
)

Compare two solver matrices in full-rank format with the same data distribution.

The second solver matrix is overwritten by the difference of the two matrices. The frobenius norm of the difference of each column block is computed and the functions returns 0 if the result for all the column blocks of: || B_k - A_k || / ( || A_k || * eps )

is below 10. Otherwise, an error message is printed and 1 is returned.

Parameters
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]solvAThe solver matrix A.
[in,out]solvBThe solver matrix B. On exit, B coefficient arrays are overwritten by the result of (B-A).
Returns
0 if the test is passed, >= 0 otherwise.

Definition at line 127 of file coeftab_z.c.

References cpucblk_zdiff().

◆ coeftab_dcompress()

pastix_int_t coeftab_dcompress ( SolverMatrix *  solvmtx)

Compress all the cblks marked as valid for low-rank format.

All the cblk in the top levels of the elimination tree marked as candidates for compression are compressed if there is a gain to compress them. The compression to low-rank format is parameterized by the input information stored in the lowrank structure. On exit, all the cblks marked for compression are stored through the low-rank structure, even if they are kept in their full-rank form.

Remarks
This routine is sequential
Parameters
[in,out]solvmtxThe solver matrix of the problem to compress.
Returns
The memory gain resulting from the compression to low-rank format in Bytes.

Definition at line 174 of file coeftab_d.c.

References solver_cblk_s::cblktype, PastixFactLU, PastixLCoef, and PastixLUCoef.

◆ coeftab_duncompress()

void coeftab_duncompress ( SolverMatrix *  solvmtx)

Uncompress all column block in low-rank format into full-rank format.

Parameters
[in,out]solvmtxThe solver matrix of the problem.

Definition at line 203 of file coeftab_d.c.

References solver_cblk_s::cblktype, PastixFactLU, PastixLCoef, and PastixLUCoef.

◆ coeftab_dmemory()

void coeftab_dmemory ( SolverMatrix *  solvmtx,
pastix_fixdbl_t *  dparm 
)

Compute the memory gain of the low-rank form over the full-rank form for the entire matrix.

This function returns the memory gain in bytes for the full matrix when column blocks are stored in low-rank format compared to a full rank storage.

Parameters
[in]solvmtxThe solver matrix of the problem.
[in,out]dparmThe double parameter array which is going to be updated.

Definition at line 235 of file coeftab_d.c.

References PastixFactLU, PastixLCoef, and PastixLUCoef.

◆ coeftab_dgetschur()

void coeftab_dgetschur ( const SolverMatrix *  solvmtx,
double *  S,
pastix_int_t  lds 
)

Extract the Schur complement.

This routine is sequential and returns the full Schur complement uncommpressed in Lapack format.

Parameters
[in]solvmtxThe solver matrix structure describing the problem.
[in,out]SThe pointer to the allocated matrix array that will store the Schur complement.
[in]ldsThe leading dimension of the S array.

Definition at line 435 of file coeftab_d.c.

References solver_cblk_s::cblktype, solver_cblk_s::fcolnum, and PastixFactLU.

◆ coeftab_dgetdiag()

void coeftab_dgetdiag ( const SolverMatrix *  solvmtx,
double *  D,
pastix_int_t  incD 
)

Extract the diagonal.

This routine is sequential and returns the full diagonal in the vector D, such that: D[incD*i]= A(i, i)

Parameters
[in]solvmtxThe solver matrix structure describing the problem.
[in,out]DThe pointer to the allocated vector array that will store the diagonal. D must be of size solvmtx->nodenbr * incD.
[in]incDThe increment bewteen two elements of D. incD > 0.

Definition at line 484 of file coeftab_d.c.

References cblk_colnbr(), and solver_cblk_s::cblktype.

◆ coeftab_ddump()

void coeftab_ddump ( pastix_data_t *  pastix_data,
const SolverMatrix *  solvmtx,
const char *  prefix 
)

Dump the solver matrix coefficients into a file in human readable format.

All non-zeroes coefficients are dumped in the format: i j val with one value per row.

Parameters
[in,out]pastix_dataThe pastix_data instance to access the unique directory id in which output the files.
[in]solvmtxThe solver matrix to print.
[in]filenameThe filename where to store the output matrix.

Definition at line 52 of file coeftab_d.c.

References solver_cblk_s::cblktype, and pastix_gendirectories().

◆ coeftab_ddiff()

int coeftab_ddiff ( pastix_coefside_t  side,
const SolverMatrix *  solvA,
SolverMatrix *  solvB 
)

Compare two solver matrices in full-rank format with the same data distribution.

The second solver matrix is overwritten by the difference of the two matrices. The frobenius norm of the difference of each column block is computed and the functions returns 0 if the result for all the column blocks of: || B_k - A_k || / ( || A_k || * eps )

is below 10. Otherwise, an error message is printed and 1 is returned.

Parameters
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]solvAThe solver matrix A.
[in,out]solvBThe solver matrix B. On exit, B coefficient arrays are overwritten by the result of (B-A).
Returns
0 if the test is passed, >= 0 otherwise.

Definition at line 127 of file coeftab_d.c.

References cpucblk_ddiff().

◆ coeftab_ccompress()

pastix_int_t coeftab_ccompress ( SolverMatrix *  solvmtx)

Compress all the cblks marked as valid for low-rank format.

All the cblk in the top levels of the elimination tree marked as candidates for compression are compressed if there is a gain to compress them. The compression to low-rank format is parameterized by the input information stored in the lowrank structure. On exit, all the cblks marked for compression are stored through the low-rank structure, even if they are kept in their full-rank form.

Remarks
This routine is sequential
Parameters
[in,out]solvmtxThe solver matrix of the problem to compress.
Returns
The memory gain resulting from the compression to low-rank format in Bytes.

Definition at line 174 of file coeftab_c.c.

References solver_cblk_s::cblktype, PastixFactLU, PastixLCoef, and PastixLUCoef.

◆ coeftab_cuncompress()

void coeftab_cuncompress ( SolverMatrix *  solvmtx)

Uncompress all column block in low-rank format into full-rank format.

Parameters
[in,out]solvmtxThe solver matrix of the problem.

Definition at line 203 of file coeftab_c.c.

References solver_cblk_s::cblktype, PastixFactLU, PastixLCoef, and PastixLUCoef.

◆ coeftab_cmemory()

void coeftab_cmemory ( SolverMatrix *  solvmtx,
pastix_fixdbl_t *  dparm 
)

Compute the memory gain of the low-rank form over the full-rank form for the entire matrix.

This function returns the memory gain in bytes for the full matrix when column blocks are stored in low-rank format compared to a full rank storage.

Parameters
[in]solvmtxThe solver matrix of the problem.
[in,out]dparmThe float parameter array which is going to be updated.

Definition at line 235 of file coeftab_c.c.

References PastixFactLU, PastixLCoef, and PastixLUCoef.

◆ coeftab_cgetschur()

void coeftab_cgetschur ( const SolverMatrix *  solvmtx,
pastix_complex32_t *  S,
pastix_int_t  lds 
)

Extract the Schur complement.

This routine is sequential and returns the full Schur complement uncommpressed in Lapack format.

Parameters
[in]solvmtxThe solver matrix structure describing the problem.
[in,out]SThe pointer to the allocated matrix array that will store the Schur complement.
[in]ldsThe leading dimension of the S array.

Definition at line 435 of file coeftab_c.c.

References solver_cblk_s::cblktype, solver_cblk_s::fcolnum, and PastixFactLU.

◆ coeftab_cgetdiag()

void coeftab_cgetdiag ( const SolverMatrix *  solvmtx,
pastix_complex32_t *  D,
pastix_int_t  incD 
)

Extract the diagonal.

This routine is sequential and returns the full diagonal in the vector D, such that: D[incD*i]= A(i, i)

Parameters
[in]solvmtxThe solver matrix structure describing the problem.
[in,out]DThe pointer to the allocated vector array that will store the diagonal. D must be of size solvmtx->nodenbr * incD.
[in]incDThe increment bewteen two elements of D. incD > 0.

Definition at line 484 of file coeftab_c.c.

References cblk_colnbr(), and solver_cblk_s::cblktype.

◆ coeftab_cdump()

void coeftab_cdump ( pastix_data_t *  pastix_data,
const SolverMatrix *  solvmtx,
const char *  prefix 
)

Dump the solver matrix coefficients into a file in human readable format.

All non-zeroes coefficients are dumped in the format: i j val with one value per row.

Parameters
[in,out]pastix_dataThe pastix_data instance to access the unique directory id in which output the files.
[in]solvmtxThe solver matrix to print.
[in]filenameThe filename where to store the output matrix.

Definition at line 52 of file coeftab_c.c.

References solver_cblk_s::cblktype, and pastix_gendirectories().

◆ coeftab_cdiff()

int coeftab_cdiff ( pastix_coefside_t  side,
const SolverMatrix *  solvA,
SolverMatrix *  solvB 
)

Compare two solver matrices in full-rank format with the same data distribution.

The second solver matrix is overwritten by the difference of the two matrices. The frobenius norm of the difference of each column block is computed and the functions returns 0 if the result for all the column blocks of: || B_k - A_k || / ( || A_k || * eps )

is below 10. Otherwise, an error message is printed and 1 is returned.

Parameters
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]solvAThe solver matrix A.
[in,out]solvBThe solver matrix B. On exit, B coefficient arrays are overwritten by the result of (B-A).
Returns
0 if the test is passed, >= 0 otherwise.

Definition at line 127 of file coeftab_c.c.

References cpucblk_cdiff().