18 #include "common/common.h"
57 assert( cblk->
cblktype & CBLK_COMPRESSED );
58 assert( cblk->
cblktype & CBLK_LAYOUT_2D );
60 for (; blok<lblok; blok++)
65 coefind = blok->
coefind / ncols;
74 if ( blok == cblk[0].fblokptr ) {
80 1.0, S + coefind * lds, lds );
85 S + coefind * lds, lds );
127 int layout2d = ( cblk->
cblktype & CBLK_LAYOUT_2D );
129 assert( !(cblk->
cblktype & CBLK_COMPRESSED) );
131 for (; blok<lblok; blok++)
136 coefind = blok->
coefind / ncols;
144 ret = LAPACKE_dlacpy_work( LAPACK_COL_MAJOR,
'A', nrows, ncols,
145 lcoeftab + blok->
coefind, stride,
152 1.0, ucoeftab + blok->
coefind, stride,
153 1.0, S + coefind * lds, lds );
187 if ( cblk->
cblktype & CBLK_COMPRESSED ) {
static void cpucblk_dgetschur_fr(const SolverCblk *cblk, int upper_part, double *S, pastix_int_t lds)
Extract a full-rank cblk panel to a dense lapack form.
static void cpucblk_dgetschur_lr(const SolverCblk *cblk, int upper_part, double *S, pastix_int_t lds)
Extract a low-rank cblk panel to a dense lapack form.
BEGIN_C_DECLS typedef int pastix_int_t
int core_dgeadd(pastix_trans_t trans, pastix_int_t M, pastix_int_t N, double alpha, const double *A, pastix_int_t LDA, double beta, double *B, pastix_int_t LDB)
Add two matrices together.
void cpucblk_dgetschur(const SolverCblk *cblk, int upper_part, double *S, pastix_int_t lds)
Extract a cblk panel of the Schur complement to a dense lapack form.
int core_dlr2ge(pastix_trans_t trans, pastix_int_t m, pastix_int_t n, const pastix_lrblock_t *Alr, double *A, pastix_int_t lda)
Convert a low rank matrix into a dense matrix.
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.
pastix_lrblock_t * LRblock[2]
Solver column block structure.