PaStiX Handbook  6.2.1
core_clr2xx.c File Reference
#include "common.h"
#include <cblas.h>
#include "kernels_trace.h"
#include "blend/solver.h"
#include "pastix_ccores.h"
#include "pastix_clrcores.h"

Go to the source code of this file.

Functions

static pastix_fixdbl_t core_clr2fr (core_clrmm_t *params, const pastix_lrblock_t *AB, pastix_trans_t transV)
 Perform the addition of the low-rank matrix AB and the full-rank matrix C. More...
 
static pastix_fixdbl_t core_clr2lr (core_clrmm_t *params, const pastix_lrblock_t *AB, pastix_trans_t transV)
 Perform the addition of the low-rank matrix AB and the low-rank matrix C. More...
 
static pastix_fixdbl_t core_clr2null (core_clrmm_t *params, const pastix_lrblock_t *AB, pastix_trans_t transV, int infomask)
 Perform the addition of the low-rank matrix AB into the null matrix C. More...
 
pastix_fixdbl_t core_clradd (core_clrmm_t *params, const pastix_lrblock_t *A, pastix_trans_t transV, int infomask)
 Perform the addition of two low-rank matrices. More...
 

Detailed Description

PaStiX low-rank kernel routines that perform the addition of AB into C.

Version
6.0.3
Author
Mathieu Faverge
Gregoire Pichon
Pierre Ramet
Date
2019-11-12
Generated arithmetic file\n from /builds/solverstack/pastix/kernels/core_zlr2xx.c, normal z -> c, Tue Apr 12 09:38:38 2022

Definition in file core_clr2xx.c.

Function Documentation

◆ core_clr2fr()

static pastix_fixdbl_t core_clr2fr ( core_clrmm_t params,
const pastix_lrblock_t AB,
pastix_trans_t  transV 
)
inlinestatic

Perform the addition of the low-rank matrix AB and the full-rank matrix C.

Parameters
[in,out]paramsThe LRMM structure that stores all the parameters used in the LRMM functions family. On exit, the C matrix is udpated with the addition of AB.
See also
core_clrmm_t
Parameters
[in]ABThe low-rank structure of the AB matrix to apply to C.
[in]transVSpecify if AB->v is stored normally or transposed.
  • If PastixNoTrans, AB->v is stored normally for low-rank format.
  • If PastixTrans, AB->v is stored transposed.
  • If PastixConjTrans, AB->v is stored transposed, and conjf() must be applied to the matrix.
Returns
The number of flops required to perform the operation.

Definition at line 60 of file core_clr2xx.c.

References core_cgeadd(), PASTE_CORE_CLRMM_PARAMS, PASTE_CORE_CLRMM_VOID, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.

Referenced by core_clradd().

◆ core_clr2lr()

static pastix_fixdbl_t core_clr2lr ( core_clrmm_t params,
const pastix_lrblock_t AB,
pastix_trans_t  transV 
)
inlinestatic

Perform the addition of the low-rank matrix AB and the low-rank matrix C.

Parameters
[in,out]paramsThe LRMM structure that stores all the parameters used in the LRMM functions family. On exit, the C matrix is udpated with the addition of AB.
See also
core_clrmm_t
Parameters
[in]ABThe low-rank structure of the AB matrix to apply to C.
[in]transVSpecify if AB->v is stored normally or transposed.
  • If PastixNoTrans, AB->v is stored normally for low-rank format.
  • If PastixTrans, AB->v is stored transposed.
  • If PastixConjTrans, AB->v is stored transposed, and conjf() must be applied to the matrix.
Returns
The number of flops required to perform the operation.

Definition at line 127 of file core_clr2xx.c.

References core_cgeadd(), core_clrfree(), core_clrmm_getws(), core_get_rklimit, PASTE_CORE_CLRMM_PARAMS, PASTE_CORE_CLRMM_VOID, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.

Referenced by core_clradd().

◆ core_clr2null()

static pastix_fixdbl_t core_clr2null ( core_clrmm_t params,
const pastix_lrblock_t AB,
pastix_trans_t  transV,
int  infomask 
)
inlinestatic

Perform the addition of the low-rank matrix AB into the null matrix C.

Parameters
[in,out]paramsThe LRMM structure that stores all the parameters used in the LRMM functions family. On exit, the C matrix contains the product AB aligned with its own dimensions.
See also
core_clrmm_t
Parameters
[in]ABThe low-rank structure of the AB matrix to apply to C.
[in]transVSpecify if AB->v is stored normally or transposed.
  • If PastixNoTrans, AB->v is stored normally for low-rank format.
  • If PastixTrans, AB->v is stored transposed.
  • If PastixConjTrans, AB->v is stored transposed, and conjf() must be applied to the matrix.
[in]infomaskMask of informations returned by the core_cxx2lr() functions. If CORE_LRMM_ORTHOU is set, then AB.u is orthogonal, otherwise an orthogonalization step is added before adding it to C.
Returns
The number of flops required to perform the operation.

Definition at line 240 of file core_clr2xx.c.

References core_clrcpy(), core_clrfree(), core_clrmm_getws(), core_get_rklimit, PASTE_CORE_CLRMM_PARAMS, PASTE_CORE_CLRMM_VOID, PASTIX_LRM3_ORTHOU, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.

Referenced by core_clradd().