PaStiX Handbook 6.4.0
|
#include "common/common.h"
#include "blend/solver.h"
#include "kernels_trace.h"
#include "pastix_ccores.h"
#include "pastix_clrcores.h"
Go to the source code of this file.
Functions | |
static pastix_fixdbl_t | cpucblk_cadd_frlr (pastix_complex32_t alpha, const SolverCblk *cblkA, SolverCblk *cblkB, const pastix_complex32_t *A, pastix_lrblock_t *lrB, pastix_complex32_t *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. | |
static pastix_fixdbl_t | cpucblk_cadd_lrlr (pastix_complex32_t alpha, const SolverCblk *cblkA, SolverCblk *cblkB, const pastix_lrblock_t *lrA, pastix_lrblock_t *lrB, pastix_complex32_t *work, pastix_int_t lwork, const pastix_lr_t *lowrank) |
Add two column bloks in low rank format. | |
static pastix_fixdbl_t | cpucblk_cadd_frfr (pastix_complex32_t alpha, const SolverCblk *cblkA, SolverCblk *cblkB, const pastix_complex32_t *A, pastix_complex32_t *B) |
Add two column bloks in full rank format. | |
pastix_fixdbl_t | cpucblk_cadd (pastix_complex32_t alpha, const SolverCblk *cblkA, SolverCblk *cblkB, const void *A, void *B, pastix_complex32_t *work, pastix_int_t lwork, const pastix_lr_t *lowrank) |
Add two column bloks in full rank format. | |
Precision dependent routines to add different cblks.
Definition in file cpucblk_cadd.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_cadd.c.
References core_clrmm_s::A, core_clrmm_s::alpha, core_clrmm_s::B, core_clrmm_s::beta, blok_rownbr(), core_clrmm_s::C, cblk_colnbr(), solver_cblk_s::cblktype, core_clrmm_s::Cm, core_clrmm_s::Cn, solver_blok_s::coefind, core_clradd(), solver_cblk_s::fblokptr, solver_cblk_s::fcolnum, solver_blok_s::frownum, is_block_inside_fblock(), core_clrmm_s::K, solver_cblk_s::lock, core_clrmm_s::lock, core_clrmm_s::lowrank, core_clrmm_s::lwork, core_clrmm_s::lwused, core_clrmm_s::M, core_clrmm_s::N, core_clrmm_s::offx, core_clrmm_s::offy, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, core_clrmm_s::transA, core_clrmm_s::transB, pastix_lrblock_s::u, pastix_lrblock_s::v, and core_clrmm_s::work.
Referenced by cpucblk_cadd().
|
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_cadd.c.
References core_clrmm_s::A, core_clrmm_s::alpha, core_clrmm_s::B, core_clrmm_s::beta, blok_rownbr(), core_clrmm_s::C, cblk_colnbr(), solver_cblk_s::cblktype, core_clrmm_s::Cm, core_clrmm_s::Cn, core_clradd(), solver_cblk_s::fblokptr, solver_cblk_s::fcolnum, solver_blok_s::frownum, is_block_inside_fblock(), core_clrmm_s::K, solver_cblk_s::lock, core_clrmm_s::lock, core_clrmm_s::lowrank, core_clrmm_s::lwork, core_clrmm_s::lwused, core_clrmm_s::M, core_clrmm_s::N, core_clrmm_s::offx, core_clrmm_s::offy, PASTIX_LRM3_ORTHOU, PastixNoTrans, core_clrmm_s::transA, core_clrmm_s::transB, and core_clrmm_s::work.
Referenced by cpucblk_cadd().
|
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/Hermitian 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_cadd.c.
References blok_rownbr(), cblk_colnbr(), solver_cblk_s::cblktype, solver_blok_s::coefind, core_cgeadd(), 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_cadd().