PaStiX Handbook  6.2.1
cpucblk_zadd.c File Reference
#include "common/common.h"
#include "blend/solver.h"
#include "kernels_trace.h"
#include "pastix_zcores.h"
#include "pastix_zlrcores.h"

Go to the source code of this file.

Functions

static pastix_fixdbl_t cpucblk_zadd_frlr (pastix_coefside_t side, pastix_int_t alpha, const SolverCblk *cblkA, SolverCblk *cblkB, pastix_complex64_t *work, pastix_int_t lwork, const pastix_lr_t *lowrank)
 Add two column bloks in full rank format. More...
 
static pastix_fixdbl_t cpucblk_zadd_lrlr (pastix_coefside_t side, pastix_int_t alpha, const SolverCblk *cblkA, SolverCblk *cblkB, pastix_complex64_t *work, pastix_int_t lwork, const pastix_lr_t *lowrank)
 Add two column bloks in full rank format. More...
 
static pastix_fixdbl_t cpucblk_zadd_frfr (pastix_coefside_t side, pastix_int_t alpha, const SolverCblk *cblkA, SolverCblk *cblkB)
 Add two column bloks in full rank format. More...
 
void cpucblk_zadd (pastix_coefside_t side, double alpha, const SolverCblk *cblkA, SolverCblk *cblkB, const pastix_lr_t *lowrank)
 Add two column bloks in full rank format. More...
 

Detailed Description

Precision dependent routines to add different cblks.

Version
6.2.0
Author
Pierre Ramet
Mathieu Faverge
Tony Delarue
Date
2021-01-03
Generated arithmetic file\n from /builds/solverstack/pastix/kernels/cpucblk_zadd.c, normal z -> z, Tue Apr 12 09:38:40 2022

Definition in file cpucblk_zadd.c.

Function Documentation

◆ cpucblk_zadd_frlr()

static pastix_fixdbl_t cpucblk_zadd_frlr ( pastix_coefside_t  side,
pastix_int_t  alpha,
const SolverCblk cblkA,
SolverCblk cblkB,
pastix_complex64_t *  work,
pastix_int_t  lwork,
const pastix_lr_t lowrank 
)
inlinestatic

Add two column bloks in full rank format.

The second cblk is overwritten by the sum of the two column blocks. B <- alpha * A + B

Parameters
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part
  • PastixUCoef if upper part
[in]alphaThe scalar alpha
[in]cblkAThe column block of the A matrix.
[in,out]cblkBThe column block of the B matrix On exit, cblkB coefficient arrays are overwritten by the result of alpha * A + B.
Returns
The number of flops of the operation.

Definition at line 57 of file cpucblk_zadd.c.

References solver_cblk_s::cblktype, and solver_cblk_s::fblokptr.

◆ cpucblk_zadd_lrlr()

static pastix_fixdbl_t cpucblk_zadd_lrlr ( pastix_coefside_t  side,
pastix_int_t  alpha,
const SolverCblk cblkA,
SolverCblk cblkB,
pastix_complex64_t *  work,
pastix_int_t  lwork,
const pastix_lr_t lowrank 
)
inlinestatic

Add two column bloks in full rank format.

The second cblk is overwritten by the sum of the two column blocks. B <- alpha * A + B

Parameters
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part
  • PastixUCoef if upper part
[in]alphaThe scalar alpha
[in]cblkAThe column block of the A matrix.
[in,out]cblkBThe column block of the B matrix On exit, cblkB coefficient arrays are overwritten by the result of alpha * A + B.
Returns
The number of flops of the operation.

Definition at line 167 of file cpucblk_zadd.c.

References solver_cblk_s::cblktype, and solver_cblk_s::fblokptr.

◆ cpucblk_zadd_frfr()

static pastix_fixdbl_t cpucblk_zadd_frfr ( pastix_coefside_t  side,
pastix_int_t  alpha,
const SolverCblk cblkA,
SolverCblk cblkB 
)
inlinestatic

Add two column bloks in full rank format.

The second cblk is overwritten by the sum of the two column blocks. B <- alpha * A + B

Parameters
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part
  • PastixUCoef if upper part
[in]alphaThe scalar alpha
[in]cblkAThe column block of the A matrix.
[in,out]cblkBThe column block of the B matrix On exit, cblkB coefficient arrays are overwritten by the result of alpha * A + B.
Returns
The number of flops of the operation.

Definition at line 257 of file cpucblk_zadd.c.

References cblk_colnbr(), solver_cblk_s::cblktype, and solver_cblk_s::stride.