17 #include "common/common.h"
69 return coef *
sizeof( int ) + suv *
sizeof( pastix_complex64_t );
97 assert( cblk->
cblktype & CBLK_COMPRESSED );
100 pastix_uint_t size = 0;
104 for ( ; blok < lblok; blok++ ) {
137 if ( cblk->
cblktype & CBLK_COMPRESSED ) {
145 return cblksize *
sizeof( pastix_complex64_t );
224 assert( cblk->
cblktype & CBLK_COMPRESSED );
226 char *buffer = malloc(size);
234 for ( ; blok < lblok; blok++ ) {
315 assert( cblk->
cblktype & CBLK_COMPRESSED );
323 for ( ; blok < lblok; blok++ ) {
354 assert( !( cblk->
cblktype & CBLK_COMPRESSED ) );
382 pastix_complex64_t *buffer )
384 assert( !( cblk->
cblktype & CBLK_COMPRESSED ) );
421 if ( cblk->
cblktype & CBLK_COMPRESSED ) {
454 if ( cblk->
cblktype & CBLK_COMPRESSED ) {
size_t cpucblk_zcompute_size(pastix_coefside_t side, const SolverCblk *cblk)
Compute the size of the buffer to send.
void cpucblk_zunpack(pastix_coefside_t side, SolverCblk *cblk, void *buffer)
Unpack data and fill the column block concerned by the computation.
char * cpublok_zunpack_lr(pastix_coefside_t side, pastix_int_t N, SolverBlok *blok, char *buffer)
Unpack low rank data and fill the block concerned by the computation.
size_t cpublok_zcompute_size_lr(pastix_coefside_t side, pastix_int_t N, const SolverBlok *blok)
Compute the size of a block to send in LR.
void * cpucblk_zpack(pastix_coefside_t side, SolverCblk *cblk, size_t size)
Pack a column block (Full rank or low rank).
char * cpublok_zpack_lr(pastix_coefside_t side, pastix_uint_t N, const SolverBlok *blok, char *buffer)
Pack low-rank data for a block.
void * cpucblk_zpack_lr(pastix_coefside_t side, SolverCblk *cblk, size_t size)
Pack low-rank data for column block.
void cpucblk_zunpack_lr(pastix_coefside_t side, SolverCblk *cblk, void *buffer)
Unpack low rank data and fill the column block concerned by the computation.
void * cpucblk_zpack_fr(pastix_coefside_t side, const SolverCblk *cblk)
Pack data in full rank.
pastix_uint_t cpucblk_zcompute_size_lr(pastix_coefside_t side, const SolverCblk *cblk)
Compute the size of a column block to send in LR.
void cpucblk_zunpack_fr(pastix_coefside_t side, SolverCblk *cblk, pastix_complex64_t *buffer)
Unpack data in full rank and fill the column block concerned by the computation.
BEGIN_C_DECLS typedef int pastix_int_t
void cpucblk_zalloc_lr(pastix_coefside_t side, SolverCblk *cblk, int rkmax)
Allocate the cblk structure to store the coefficient.
char * core_zlrpack(pastix_int_t M, pastix_int_t N, const pastix_lrblock_t *A, char *buffer)
Pack low-rank data by side.
size_t core_zlrgetsize(pastix_int_t M, pastix_int_t N, pastix_lrblock_t *A)
Compute the size of a block to send in LR.
char * core_zlrunpack(pastix_int_t M, pastix_int_t N, pastix_lrblock_t *A, char *buffer)
Unpack low rank data and fill the cblk concerned by the computation.
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 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.