PaStiX Handbook  6.2.1
cpucblk_spack.h File Reference

Go to the source code of this file.

Functions

size_t cpublok_scompute_size_lr (pastix_coefside_t side, pastix_int_t N, const SolverBlok *blok)
 Compute the size of a block to send in LR. More...
 
pastix_uint_t cpucblk_scompute_size_lr (pastix_coefside_t side, const SolverCblk *cblk)
 Compute the size of a column block to send in LR. More...
 
size_t cpucblk_scompute_size (pastix_coefside_t side, const SolverCblk *cblk)
 Compute the size of the buffer to send. More...
 
char * cpublok_spack_lr (pastix_coefside_t side, pastix_uint_t N, const SolverBlok *blok, char *buffer)
 Pack low-rank data for a block. More...
 
void * cpucblk_spack_lr (pastix_coefside_t side, SolverCblk *cblk, size_t size)
 Pack low-rank data for column block. More...
 
char * cpublok_sunpack_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. More...
 
void cpucblk_sunpack_lr (pastix_coefside_t side, SolverCblk *cblk, void *buffer)
 Unpack low rank data and fill the column block concerned by the computation. More...
 
void * cpucblk_spack_fr (pastix_coefside_t side, const SolverCblk *cblk)
 Pack data in full rank. More...
 
void cpucblk_sunpack_fr (pastix_coefside_t side, SolverCblk *cblk, float *buffer)
 Unpack data in full rank and fill the column block concerned by the computation. More...
 
void * cpucblk_spack (pastix_coefside_t side, SolverCblk *cblk, size_t size)
 Pack a column block (Full rank or low rank). More...
 
void cpucblk_sunpack (pastix_coefside_t side, SolverCblk *cblk, void *buffer)
 Unpack data and fill the column block concerned by the computation. More...
 

Detailed Description

Precision dependent routines to pack and unpack cblks.

Version
6.2.1
Author
Nolan Bredel
Date
2021-07-20
Generated arithmetic file\n from /builds/solverstack/pastix/kernels/cpucblk_zpack.h, normal z -> s, Tue Apr 12 09:38:27 2022

Definition in file cpucblk_spack.h.

Function Documentation

◆ cpublok_scompute_size_lr()

size_t cpublok_scompute_size_lr ( pastix_coefside_t  side,
pastix_int_t  N,
const SolverBlok blok 
)

Compute the size of a block to send in LR.

Parameters
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]NThe number of columns of the block.
[in]blokThe block for which the size is computed.
Returns
size of the LR block to send in bytes

Definition at line 48 of file cpucblk_spack.c.

References blok_rownbr(), core_slrgetsize(), solver_blok_s::LRblock, PastixLCoef, and PastixUCoef.

◆ cpucblk_scompute_size_lr()

pastix_uint_t cpucblk_scompute_size_lr ( pastix_coefside_t  side,
const SolverCblk cblk 
)

Compute the size of a column block to send in LR.

Parameters
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]cblkThe low-rank column block for which the size is computed.
Returns
size of the LR column block to send in bytes.

Definition at line 92 of file cpucblk_spack.c.

References solver_cblk_s::cblktype.

◆ cpucblk_scompute_size()

size_t cpucblk_scompute_size ( pastix_coefside_t  side,
const SolverCblk cblk 
)

Compute the size of the buffer to send.

Parameters
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]cblkThe column block for which the size is computed.
Returns
Size of the buffer to send.

Definition at line 131 of file cpucblk_spack.c.

References solver_cblk_s::cblktype.

◆ cpublok_spack_lr()

char* cpublok_spack_lr ( pastix_coefside_t  side,
pastix_uint_t  N,
const SolverBlok blok,
char *  buffer 
)

Pack low-rank data for a block.

Parameters
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]NNumber of columns of the block.
[in]blokThe solver block to pack.
[in,out]bufferPointer to the buffer where to pack the data.
Returns
Pointer to the end of the packed data.

Definition at line 173 of file cpucblk_spack.c.

References blok_rownbr(), core_slrpack(), solver_blok_s::LRblock, PastixLCoef, and PastixUCoef.

◆ cpucblk_spack_lr()

void* cpucblk_spack_lr ( pastix_coefside_t  side,
SolverCblk cblk,
size_t  size 
)

Pack low-rank data for column block.

Parameters
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]cblkThe column block to pack.
[in]sizeSize to allocate the buffer.
Returns
Pointer to the packed data.

Definition at line 213 of file cpucblk_spack.c.

References solver_cblk_s::cblktype.

◆ cpublok_sunpack_lr()

char* cpublok_sunpack_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.

Parameters
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]NNumber of columns of the block.
[in,out]blokThe block concerned by the computation.
[in,out]bufferPointer on the packed data.
Returns
Pointer to the next block to unpack.

Definition at line 263 of file cpucblk_spack.c.

References blok_rownbr(), core_slrunpack(), solver_blok_s::LRblock, PastixLCoef, and PastixUCoef.

◆ cpucblk_sunpack_lr()

void cpucblk_sunpack_lr ( pastix_coefside_t  side,
SolverCblk cblk,
void *  buffer 
)

Unpack low rank data and fill the column block concerned by the computation.

Parameters
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in,out]cblkThe column block to fill.
[in,out]bufferPointer on packed data.

Definition at line 299 of file cpucblk_spack.c.

References solver_cblk_s::cblktype.

◆ cpucblk_spack_fr()

void* cpucblk_spack_fr ( pastix_coefside_t  side,
const SolverCblk cblk 
)

Pack data in full rank.

Parameters
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]cblkThe column block that will be sent.
Returns
Pointer to the data buffer. Note that in full-rank, the data pointer is directly returned without data copy.

Definition at line 337 of file cpucblk_spack.c.

References solver_cblk_s::cblktype.

◆ cpucblk_sunpack_fr()

void cpucblk_sunpack_fr ( pastix_coefside_t  side,
SolverCblk cblk,
float *  buffer 
)

Unpack data in full rank and fill the column block concerned by the computation.

Parameters
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]cblkThe column block to unpack.
[in]bufferPointer on packed data.

Definition at line 365 of file cpucblk_spack.c.

References solver_cblk_s::cblktype.

◆ cpucblk_spack()

void* cpucblk_spack ( pastix_coefside_t  side,
SolverCblk cblk,
size_t  size 
)

Pack a column block (Full rank or low rank).

Parameters
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]cblkThe column block that will be sent.
[in,out]bufferPointer on packed data.
Returns
Pointer to the data buffer.

Definition at line 400 of file cpucblk_spack.c.

References solver_cblk_s::cblktype.

◆ cpucblk_sunpack()

void cpucblk_sunpack ( pastix_coefside_t  side,
SolverCblk cblk,
void *  buffer 
)

Unpack data and fill the column block concerned by the computation.

Parameters
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in,out]cblkThe cblk to unpack.
[in]bufferPointer on packed data.

Definition at line 431 of file cpucblk_spack.c.

References solver_cblk_s::cblktype.