Go to the documentation of this file.
18 #include "common/common.h"
47 float *S, pastix_int_t lds )
55 assert( cblk->
cblktype & CBLK_COMPRESSED );
56 assert( cblk->
cblktype & CBLK_LAYOUT_2D );
58 for (; blok<lblok; blok++)
63 coefind = blok->
coefind / ncols;
72 if ( blok == cblk[0].fblokptr ) {
78 1.0, S + coefind * lds, lds );
83 S + coefind * lds, lds );
115 float *S, pastix_int_t lds )
120 pastix_int_t nrows, coefind, stride, ret;
123 int layout2d = ( cblk->
cblktype & CBLK_LAYOUT_2D );
125 assert( !(cblk->
cblktype & CBLK_COMPRESSED) );
127 for (; blok<lblok; blok++)
132 coefind = blok->
coefind / ncols;
140 ret = LAPACKE_slacpy_work( LAPACK_COL_MAJOR,
'A', nrows, ncols,
141 lcoeftab + blok->
coefind, stride,
148 1.0, ucoeftab + blok->
coefind, stride,
149 1.0, S + coefind * lds, lds );
179 float *S, pastix_int_t lds )
181 if ( cblk->
cblktype & CBLK_COMPRESSED ) {
static pastix_int_t blok_rownbr(const SolverBlok *blok)
Compute the number of rows of a block.
static pastix_int_t cblk_colnbr(const SolverCblk *cblk)
Compute the number of columns in a column block.
Solver column block structure.
void cpucblk_sgetschur(const SolverCblk *cblk, int upper_part, float *S, pastix_int_t lds)
Extract a cblk panel of the Schur complement to a dense lapack form.
static void cpucblk_sgetschur_fr(const SolverCblk *cblk, int upper_part, float *S, pastix_int_t lds)
Extract a full-rank cblk panel to a dense lapack form.
static void cpucblk_sgetschur_lr(const SolverCblk *cblk, int upper_part, float *S, pastix_int_t lds)
Extract a low-rank cblk panel to a dense lapack form.
int core_sgeadd(pastix_trans_t trans, pastix_int_t M, pastix_int_t N, float alpha, const float *A, pastix_int_t LDA, float beta, float *B, pastix_int_t LDB)
Add two matrices together.
pastix_lrblock_t * LRblock[2]
int core_slr2ge(pastix_trans_t trans, pastix_int_t M, pastix_int_t N, const pastix_lrblock_t *Alr, float *A, pastix_int_t lda)
Convert a low rank matrix into a dense matrix.