PaStiX Handbook
6.3.2
|
#include "common/common.h"
#include "blend/solver.h"
#include "kernels_trace.h"
#include "pastix_scores.h"
#include "pastix_slrcores.h"
Go to the source code of this file.
Functions | |
static pastix_fixdbl_t | cpucblk_sadd_frlr (float alpha, const SolverCblk *cblkA, SolverCblk *cblkB, const float *A, pastix_lrblock_t *lrB, float *work, pastix_int_t lwork, const pastix_lr_t *lowrank) |
Add a column blok in full rank format to a column blok in low rank format. More... | |
static pastix_fixdbl_t | cpucblk_sadd_lrlr (float alpha, const SolverCblk *cblkA, SolverCblk *cblkB, const pastix_lrblock_t *lrA, pastix_lrblock_t *lrB, float *work, pastix_int_t lwork, const pastix_lr_t *lowrank) |
Add two column bloks in low rank format. More... | |
static pastix_fixdbl_t | cpucblk_sadd_frfr (float alpha, const SolverCblk *cblkA, SolverCblk *cblkB, const float *A, float *B) |
Add two column bloks in full rank format. More... | |
pastix_fixdbl_t | cpucblk_sadd (float alpha, const SolverCblk *cblkA, SolverCblk *cblkB, const void *A, void *B, float *work, pastix_int_t lwork, const pastix_lr_t *lowrank) |
Add two column bloks in full rank format. More... | |
Precision dependent routines to add different cblks.
Definition in file cpucblk_sadd.c.
|
inlinestatic |
Add a column blok in full rank format to a column blok in low rank format.
The second cblk is overwritten by the sum of the two column blocks. B <- alpha * A + B
[in] | alpha | The scalar alpha |
[in] | cblkA | The column block of the A matrix. |
[in,out] | cblkB | The column block of the B matrix On exit, cblkB coefficient arrays are overwritten by the result of alpha * A + B. |
[in,out] | A | The pointer to the coeftab of the cblk.lcoeftab matrix storing the coefficients of the panel when the Lower part is computed, cblk.ucoeftab otherwise. Must be of size cblk.stride -by- cblk.width |
[in] | lrB | Pointer to the low-rank representation of the column block B. Must be followed by the low-rank representation of the following blocks. |
[in] | work | Temporary memory buffer. |
[in] | lwork | Temporary workspace dimension. |
[in] | lowrank | The structure with low-rank parameters. |
Definition at line 73 of file cpucblk_sadd.c.
References core_slrmm_s::A, core_slrmm_s::alpha, core_slrmm_s::B, core_slrmm_s::beta, blok_rownbr(), core_slrmm_s::C, cblk_colnbr(), solver_cblk_s::cblktype, core_slrmm_s::Cm, core_slrmm_s::Cn, solver_blok_s::coefind, core_slradd(), solver_cblk_s::fblokptr, solver_cblk_s::fcolnum, solver_blok_s::frownum, is_block_inside_fblock(), core_slrmm_s::K, solver_cblk_s::lock, core_slrmm_s::lock, core_slrmm_s::lowrank, core_slrmm_s::lwork, core_slrmm_s::lwused, core_slrmm_s::M, core_slrmm_s::N, core_slrmm_s::offx, core_slrmm_s::offy, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, core_slrmm_s::transA, core_slrmm_s::transB, pastix_lrblock_s::u, pastix_lrblock_s::v, and core_slrmm_s::work.
Referenced by cpucblk_sadd().
|
inlinestatic |
Add two column bloks in low rank format.
The second cblk is overwritten by the sum of the two column blocks. B <- alpha * A + B
[in] | alpha | The scalar alpha |
[in] | cblkA | The column block of the A matrix. |
[in,out] | cblkB | The column block of the B matrix On exit, cblkB coefficient arrays are overwritten by the result of alpha * A + B. |
[in] | lrA | Pointer to the low-rank representation of the column block A. Must be followed by the low-rank representation of the following blocks. |
[in] | lrB | Pointer to the low-rank representation of the column block B. Must be followed by the low-rank representation of the following blocks. |
[in] | work | Temporary memory buffer. |
[in] | lwork | Temporary workspace dimension. |
[in] | lowrank | The structure with low-rank parameters. |
Definition at line 185 of file cpucblk_sadd.c.
References core_slrmm_s::A, core_slrmm_s::alpha, core_slrmm_s::B, core_slrmm_s::beta, blok_rownbr(), core_slrmm_s::C, cblk_colnbr(), solver_cblk_s::cblktype, core_slrmm_s::Cm, core_slrmm_s::Cn, core_slradd(), solver_cblk_s::fblokptr, solver_cblk_s::fcolnum, solver_blok_s::frownum, is_block_inside_fblock(), core_slrmm_s::K, solver_cblk_s::lock, core_slrmm_s::lock, core_slrmm_s::lowrank, core_slrmm_s::lwork, core_slrmm_s::lwused, core_slrmm_s::M, core_slrmm_s::N, core_slrmm_s::offx, core_slrmm_s::offy, PASTIX_LRM3_ORTHOU, PastixNoTrans, core_slrmm_s::transA, core_slrmm_s::transB, and core_slrmm_s::work.
Referenced by cpucblk_sadd().
|
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
[in] | alpha | The scalar alpha |
[in] | cblkA | The column block of the A matrix. |
[in,out] | cblkB | The column block of the B matrix On exit, cblkB coefficient arrays are overwritten by the result of alpha * A + B. |
[in,out] | A | The pointer to the coeftab of the cblk.lcoeftab matrix storing the coefficients of the panel when the Lower part is computed, cblk.ucoeftab otherwise. Must be of size cblk.stride -by- cblk.width |
[in,out] | B | The pointer to the coeftab of the cblk.lcoeftab matrix storing the coefficients of the panel, if Symmetric/Symmetric cases or if upper part is computed; cblk.ucoeftab otherwise. Must be of size cblk.stride -by- cblk.width |
Definition at line 279 of file cpucblk_sadd.c.
References blok_rownbr(), cblk_colnbr(), solver_cblk_s::cblktype, solver_blok_s::coefind, core_sgeadd(), solver_cblk_s::fblokptr, solver_cblk_s::fcolnum, solver_blok_s::frownum, is_block_inside_fblock(), pastix_int_t, PastixNoTrans, and solver_cblk_s::stride.
Referenced by cpucblk_sadd().