20 #ifndef DOXYGEN_SHOULD_SKIP_THIS
65 if ( cblk->
cblktype & CBLK_COMPRESSED ) {
66 fprintf(stderr,
"coeftab_scblkdump: Can't dump a compressed cblk\n");
71 itercol <= cblk->lcolnum;
77 if (cblk->
cblktype & CBLK_LAYOUT_2D) {
85 iterrow <= blok->lrownum;
86 iterrow++, coefindx++)
88 if ((fabsf( coeftab[coefindx] ) > 0.) &&
92 #if defined(PRECISION_z) || defined(PRECISION_c)
93 fprintf(stream,
"%ld %ld (%13e,%13e) [U]\n",
94 (
long)itercol, (
long)iterrow,
95 (coeftab[coefindx]), (coeftab[coefindx]));
97 fprintf(stream,
"%ld %ld %13e [U]\n",
98 (
long)itercol, (
long)iterrow,
103 #if defined(PRECISION_z) || defined(PRECISION_c)
104 fprintf(stream,
"%ld %ld (%13e,%13e) [L]\n",
105 (
long)iterrow, (
long)itercol,
106 (coeftab[coefindx]), (coeftab[coefindx]));
108 fprintf(stream,
"%ld %ld %13e [L]\n",
109 (
long)iterrow, (
long)itercol,
118 while( blok < (cblk+1)->fblokptr )
121 if (cblk->
cblktype & CBLK_LAYOUT_2D) {
129 iterrow <= blok->lrownum;
130 iterrow++, coefindx++)
132 if (fabsf( coeftab[coefindx]) > 0.)
135 #if defined(PRECISION_z) || defined(PRECISION_c)
136 fprintf(stream,
"%ld %ld (%13e,%13e) [U]\n",
137 (
long)itercol, (
long)iterrow,
138 (coeftab[coefindx]), (coeftab[coefindx]));
140 fprintf(stream,
"%ld %ld %13e [U]\n",
141 (
long)itercol, (
long)iterrow,
146 #if defined(PRECISION_z) || defined(PRECISION_c)
147 fprintf(stream,
"%ld %ld (%13e,%13e) [L]\n",
148 (
long)iterrow, (
long)itercol,
149 (coeftab[coefindx]), (coeftab[coefindx]));
151 fprintf(stream,
"%ld %ld %13e [L]\n",
152 (
long)iterrow, (
long)itercol,
183 for (; blok<lblk; blok++) {
187 if ( is_preselected ) {
228 const pastix_bcsc_t *bcsc,
230 const char *directory )
242 #if defined(PASTIX_DEBUG_DUMP_COEFTAB)
253 if ( (ilukmax > 0) && (ilukmax < INT_MAX) ) {
254 #if defined(PASTIX_WITH_MPI)
256 if ( solvmtx->clustnbr == 1 )
259 do { pastix_yield(); }
while( cblk->
ctrbcnt > 0 );
267 if ( (cblk->
cblktype & CBLK_COMPRESSED) &&
268 (ilukmax < INT_MAX) )
void coeftab_scblkComputePreselect(const SolverMatrix *solvmtx, SolverCblk *cblk)
TODO.
BEGIN_C_DECLS typedef int pastix_int_t
void coeftabComputeCblkILULevels(const SolverMatrix *solvmtx, SolverCblk *cblk)
Compute the ILU levels of a cblk.
void cpucblk_sdumpfile(pastix_coefside_t side, SolverCblk *cblk, pastix_int_t itercblk, const char *directory)
Dump a single column block into a FILE in a human readale format.
void cpucblk_sinit(pastix_coefside_t side, const SolverMatrix *solvmtx, const pastix_bcsc_t *bcsc, pastix_int_t itercblk, const char *directory)
Fully initialize a single cblk.
void cpucblk_sfillin(pastix_coefside_t side, const SolverMatrix *solvmtx, const pastix_bcsc_t *bcsc, pastix_int_t itercblk)
Initialize the coeftab structure from the internal bcsc.
void cpucblk_salloc(pastix_coefside_t side, SolverCblk *cblk)
Allocate the cblk structure to store the coefficient.
pastix_int_t cpucblk_scompress(const SolverMatrix *solvmtx, pastix_coefside_t side, int max_ilulvl, SolverCblk *cblk)
Compress a single column block from full-rank to low-rank format.
void cpucblk_sdump(pastix_coefside_t side, const SolverCblk *cblk, FILE *stream)
Dump a single column block into a FILE in a human readale format.
enum pastix_coefside_e pastix_coefside_t
Data blocks used in the kernel.
static pastix_int_t blok_rownbr(const SolverBlok *blok)
Compute the number of rows of a block.
static int blok_is_preselected(const SolverCblk *cblk, const SolverBlok *blok, const SolverCblk *fcbk)
Return if a block is preselected as either part of the projection, or as a sub-diagonal block.
SolverCblk *restrict cblktab
Solver column block structure.
Solver column block structure.