17 #include "common/common.h"
69 return coef *
sizeof( int ) + suv *
sizeof(
double );
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( double );
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 ) );
384 assert( !( cblk->
cblktype & CBLK_COMPRESSED ) );
421 if ( cblk->
cblktype & CBLK_COMPRESSED ) {
454 if ( cblk->
cblktype & CBLK_COMPRESSED ) {
size_t cpublok_dcompute_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_dpack_lr(pastix_coefside_t side, SolverCblk *cblk, size_t size)
Pack low-rank data for column block.
void cpucblk_dunpack_fr(pastix_coefside_t side, SolverCblk *cblk, double *buffer)
Unpack data in full rank and fill the column block concerned by the computation.
void cpucblk_dunpack(pastix_coefside_t side, SolverCblk *cblk, void *buffer)
Unpack data and fill the column block concerned by the computation.
void * cpucblk_dpack_fr(pastix_coefside_t side, const SolverCblk *cblk)
Pack data in full rank.
size_t cpucblk_dcompute_size(pastix_coefside_t side, const SolverCblk *cblk)
Compute the size of the buffer to send.
void * cpucblk_dpack(pastix_coefside_t side, SolverCblk *cblk, size_t size)
Pack a column block (Full rank or low rank).
char * cpublok_dpack_lr(pastix_coefside_t side, pastix_uint_t N, const SolverBlok *blok, char *buffer)
Pack low-rank data for a block.
char * cpublok_dunpack_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.
void cpucblk_dunpack_lr(pastix_coefside_t side, SolverCblk *cblk, void *buffer)
Unpack low rank data and fill the column block concerned by the computation.
pastix_uint_t cpucblk_dcompute_size_lr(pastix_coefside_t side, const SolverCblk *cblk)
Compute the size of a column block to send in LR.
BEGIN_C_DECLS typedef int pastix_int_t
void cpucblk_dalloc_lr(pastix_coefside_t side, SolverCblk *cblk, int rkmax)
Allocate the cblk structure to store the coefficient.
char * core_dlrpack(pastix_int_t M, pastix_int_t N, const pastix_lrblock_t *A, char *buffer)
Pack low-rank data by side.
size_t core_dlrgetsize(pastix_int_t M, pastix_int_t N, pastix_lrblock_t *A)
Compute the size of a block to send in LR.
char * core_dlrunpack(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.