PaStiX Handbook  6.3.2
cpucblk_cinit.c File Reference
#include "common/common.h"
#include "blend/solver.h"
#include "bcsc/bcsc.h"
#include "pastix_ccores.h"
#include "pastix_clrcores.h"

Go to the source code of this file.

Functions

void cpublok_calloc_lrws (const SolverCblk *cblk, const SolverBlok *blok, pastix_lrblock_t *lrblok, pastix_complex32_t *ws)
 Initialize a lrblock structure from a workspace from a specific block to the end of all blocks. More...
 
void cpucblk_calloc_lrws (const SolverCblk *cblk, pastix_lrblock_t *lrblok, pastix_complex32_t *ws)
 Initialize lrblock structure from a workspace for all blocks of the cblk associated. More...
 
void cpucblk_calloc_lr (pastix_coefside_t side, SolverCblk *cblk, int rkmax)
 Allocate the cblk structure to store the coefficient. More...
 
void cpucblk_calloc_fr (pastix_coefside_t side, SolverCblk *cblk)
 Allocate the cblk structure to store the coefficient. More...
 
void cpucblk_calloc (pastix_coefside_t side, SolverCblk *cblk)
 Allocate the cblk structure to store the coefficient. More...
 
void cpucblk_cfree (pastix_coefside_t side, SolverCblk *cblk)
 Free the cblk structure that store the coefficient. More...
 
static void cpucblk_cfillin_fr (pastix_coefside_t side, const SolverMatrix *solvmtx, const pastix_bcsc_t *bcsc, pastix_int_t itercblk)
 Initialize the full-rank coeftab structure from the internat bcsc. More...
 
static void cpucblk_cfillin_lr (pastix_coefside_t side, const SolverMatrix *solvmtx, const pastix_bcsc_t *bcsc, pastix_int_t itercblk)
 Initialize the low-rank coeftab structure from the internal bcsc. More...
 
void cpucblk_cfillin (pastix_coefside_t side, const SolverMatrix *solvmtx, const pastix_bcsc_t *bcsc, pastix_int_t itercblk)
 Initialize the coeftab structure from the internal bcsc. More...
 

Detailed Description

Precision dependent coeficient array initialization routines.

Version
6.3.2
Author
Xavier Lacoste
Pierre Ramet
Mathieu Faverge
Esragul Korkmaz
Tony Delarue
Alycia Lisito
Nolan Bredel
Date
2023-10-25
Generated arithmetic file
from /builds/solverstack/pastix/kernels/cpucblk_zinit.c, normal z -> c, Wed Dec 13 12:09:17 2023

Definition in file cpucblk_cinit.c.

Function Documentation

◆ cpublok_calloc_lrws()

void cpublok_calloc_lrws ( const SolverCblk cblk,
const SolverBlok blok,
pastix_lrblock_t lrblok,
pastix_complex32_t ws 
)

Initialize a lrblock structure from a workspace from a specific block to the end of all blocks.

The lrblock structure must be allocated before.

Parameters
[in,out]cblkThe column block associated to the initialization.
[in]blokThe block representation associated to the initialization.
[in]lrblokThe structure blok to initialize. Must be allocated before.
[in]wsThe workspace associated with the data that will be used for initialize lrblok.

Definition at line 53 of file cpucblk_cinit.c.

References blok_rownbr(), cblk_colnbr(), solver_cblk_s::cblktype, solver_cblk_s::fblokptr, solver_blok_s::fcblknm, pastix_int_t, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.

◆ cpucblk_cfillin_fr()

static void cpucblk_cfillin_fr ( pastix_coefside_t  side,
const SolverMatrix solvmtx,
const pastix_bcsc_t *  bcsc,
pastix_int_t  itercblk 
)
inlinestatic

Initialize the full-rank coeftab structure from the internat bcsc.

Parameters
[in]sideDefine which side of the matrix must be initialized.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]solvmtxPaStiX structure to store numerical data and flags
[in]bcscThe internal bcsc structure that hold the graph with permutation stored by cblk.
[in]itercblkThe index of the cblk to fill in both bcsc and solvmtx structures.

Definition at line 395 of file cpucblk_cinit.c.

References solver_cblk_s::bcscnum, blok_rownbr(), solver_matrix_s::cblktab, solver_cblk_s::cblktype, solver_blok_s::coefind, bcsc_cblk_s::colnbr, bcsc_cblk_s::coltab, solver_cblk_s::fblokptr, solver_cblk_s::fcolnum, solver_blok_s::frownum, solver_blok_s::iluklvl, solver_cblk_s::lcoeftab, solver_blok_s::lrownum, pastix_int_t, PastixHermitian, PastixLCoef, PastixUCoef, solver_cblk_s::stride, and solver_cblk_s::ucoeftab.

Referenced by cpucblk_cfillin().

◆ cpucblk_cfillin_lr()

static void cpucblk_cfillin_lr ( pastix_coefside_t  side,
const SolverMatrix solvmtx,
const pastix_bcsc_t *  bcsc,
pastix_int_t  itercblk 
)
inlinestatic

Initialize the low-rank coeftab structure from the internal bcsc.

Parameters
[in]sideDefine which side of the matrix must be initialized.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]solvmtxPaStiX structure to store numerical data and flags
[in]bcscThe internal bcsc structure that hold the graph with permutation stored by cblk.
[in]itercblkThe index of the cblk to fill in both bcsc and solvmtx structures.

Definition at line 514 of file cpucblk_cinit.c.

References solver_cblk_s::bcscnum, blok_rownbr(), solver_matrix_s::cblktab, solver_cblk_s::cblktype, bcsc_cblk_s::colnbr, bcsc_cblk_s::coltab, solver_cblk_s::fblokptr, solver_cblk_s::fcolnum, solver_blok_s::frownum, solver_blok_s::iluklvl, solver_blok_s::LRblock, solver_blok_s::lrownum, pastix_int_t, PastixHermitian, PastixLCoef, PastixUCoef, and pastix_lrblock_s::u.

Referenced by cpucblk_cfillin().