PaStiX Handbook 6.4.0
|
#include "common/common.h"
#include "blend/solver.h"
#include "kernels_trace.h"
#include "pastix_dcores.h"
#include "pastix_dlrcores.h"
Go to the source code of this file.
Functions | |
static pastix_fixdbl_t | cpucblk_dadd_frlr (double alpha, const SolverCblk *cblkA, SolverCblk *cblkB, const double *A, pastix_lrblock_t *lrB, double *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_dadd_lrlr (double alpha, const SolverCblk *cblkA, SolverCblk *cblkB, const pastix_lrblock_t *lrA, pastix_lrblock_t *lrB, double *work, pastix_int_t lwork, const pastix_lr_t *lowrank) |
Add two column bloks in low rank format. | |
static pastix_fixdbl_t | cpucblk_dadd_frfr (double alpha, const SolverCblk *cblkA, SolverCblk *cblkB, const double *A, double *B) |
Add two column bloks in full rank format. | |
pastix_fixdbl_t | cpucblk_dadd (double alpha, const SolverCblk *cblkA, SolverCblk *cblkB, const void *A, void *B, double *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_dadd.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_dadd.c.
References core_dlrmm_s::A, core_dlrmm_s::alpha, core_dlrmm_s::B, core_dlrmm_s::beta, blok_rownbr(), core_dlrmm_s::C, cblk_colnbr(), solver_cblk_s::cblktype, core_dlrmm_s::Cm, core_dlrmm_s::Cn, solver_blok_s::coefind, core_dlradd(), solver_cblk_s::fblokptr, solver_cblk_s::fcolnum, solver_blok_s::frownum, is_block_inside_fblock(), core_dlrmm_s::K, solver_cblk_s::lock, core_dlrmm_s::lock, core_dlrmm_s::lowrank, core_dlrmm_s::lwork, core_dlrmm_s::lwused, core_dlrmm_s::M, core_dlrmm_s::N, core_dlrmm_s::offx, core_dlrmm_s::offy, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, core_dlrmm_s::transA, core_dlrmm_s::transB, pastix_lrblock_s::u, pastix_lrblock_s::v, and core_dlrmm_s::work.
Referenced by cpucblk_dadd().
|
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_dadd.c.
References core_dlrmm_s::A, core_dlrmm_s::alpha, core_dlrmm_s::B, core_dlrmm_s::beta, blok_rownbr(), core_dlrmm_s::C, cblk_colnbr(), solver_cblk_s::cblktype, core_dlrmm_s::Cm, core_dlrmm_s::Cn, core_dlradd(), solver_cblk_s::fblokptr, solver_cblk_s::fcolnum, solver_blok_s::frownum, is_block_inside_fblock(), core_dlrmm_s::K, solver_cblk_s::lock, core_dlrmm_s::lock, core_dlrmm_s::lowrank, core_dlrmm_s::lwork, core_dlrmm_s::lwused, core_dlrmm_s::M, core_dlrmm_s::N, core_dlrmm_s::offx, core_dlrmm_s::offy, PASTIX_LRM3_ORTHOU, PastixNoTrans, core_dlrmm_s::transA, core_dlrmm_s::transB, and core_dlrmm_s::work.
Referenced by cpucblk_dadd().
|
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_dadd.c.
References blok_rownbr(), cblk_colnbr(), solver_cblk_s::cblktype, solver_blok_s::coefind, core_dgeadd(), 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_dadd().