22 #include "common/common.h"
67 pastix_complex64_t *coefA;
68 pastix_complex64_t *coefB;
71 double normdiff, normfull, normlowr, res, eps;
75 assert( stride == cblkB->
stride );
77 eps = LAPACKE_dlamch_work(
'e' );
83 assert( (coefA != NULL) && (coefB != NULL) );
85 normfull = LAPACKE_zlange_work( LAPACK_COL_MAJOR,
'f', stride, ncols,
86 coefA, stride, NULL );
87 normlowr = LAPACKE_zlange_work( LAPACK_COL_MAJOR,
'f', stride, ncols,
88 coefB, stride, NULL );
93 normdiff = LAPACKE_zlange_work( LAPACK_COL_MAJOR,
'M', stride, ncols,
94 coefB, stride, NULL );
95 res = (normfull == 0.) ? 0. : (normdiff / (normfull * eps));
98 fprintf(stderr,
"KO on L: ||full(A)||_f=%e, ||comp(A)||_f=%e, ||comp(A)-full(A)||_0=%e, ||comp(A)-full(A)||_0 / (||full(A)||_2 * eps)=%e\n",
99 normfull, normlowr, normdiff, res );
108 assert( (coefA != NULL) && (coefB != NULL) );
110 normfull = LAPACKE_zlange_work( LAPACK_COL_MAJOR,
'f', stride, ncols,
111 coefA, stride, NULL );
112 normlowr = LAPACKE_zlange_work( LAPACK_COL_MAJOR,
'f', stride, ncols,
113 coefB, stride, NULL );
118 normdiff = LAPACKE_zlange_work( LAPACK_COL_MAJOR,
'M', stride, ncols,
119 coefB, stride, NULL );
120 res = (normfull == 0.) ? 0. : (normdiff / (normfull * eps));
123 fprintf(stderr,
"KO on U: ||full(A)||_f=%e, ||comp(A)||_f=%e, ||comp(A)-full(A)||_0=%e, ||comp(A)-full(A)||_0 / (||full(A)||_2 * eps)=%e\n",
124 normfull, normlowr, normdiff, res );
BEGIN_C_DECLS typedef int pastix_int_t
int core_zgeadd(pastix_trans_t trans, pastix_int_t M, pastix_int_t N, pastix_complex64_t alpha, const pastix_complex64_t *A, pastix_int_t LDA, pastix_complex64_t beta, pastix_complex64_t *B, pastix_int_t LDB)
Add two matrices together.
int cpucblk_zdiff(pastix_coefside_t side, const SolverCblk *cblkA, SolverCblk *cblkB)
Compare two column blocks in full-rank format.
enum pastix_coefside_e pastix_coefside_t
Data blocks used in the kernel.
static pastix_int_t cblk_colnbr(const SolverCblk *cblk)
Compute the number of columns in a column block.
Solver column block structure.