PaStiX Handbook  6.2.1
core_dlr2xx.c File Reference
#include "common.h"
#include <cblas.h>
#include "kernels_trace.h"
#include "blend/solver.h"
#include "pastix_dcores.h"
#include "pastix_dlrcores.h"

Go to the source code of this file.

Functions

static pastix_fixdbl_t core_dlr2fr (core_dlrmm_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_dlr2lr (core_dlrmm_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_dlr2null (core_dlrmm_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_dlradd (core_dlrmm_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 -> d, Tue Apr 12 09:38:38 2022

Definition in file core_dlr2xx.c.

Function Documentation

◆ core_dlr2fr()

static pastix_fixdbl_t core_dlr2fr ( core_dlrmm_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_dlrmm_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 PastixTrans, AB->v is stored transposed, and () must be applied to the matrix.
Returns
The number of flops required to perform the operation.

Definition at line 60 of file core_dlr2xx.c.

References core_dgeadd(), PASTE_CORE_DLRMM_PARAMS, PASTE_CORE_DLRMM_VOID, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.

Referenced by core_dlradd().

◆ core_dlr2lr()

static pastix_fixdbl_t core_dlr2lr ( core_dlrmm_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_dlrmm_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 PastixTrans, AB->v is stored transposed, and () must be applied to the matrix.
Returns
The number of flops required to perform the operation.

Definition at line 127 of file core_dlr2xx.c.

References core_dgeadd(), core_dlrfree(), core_dlrmm_getws(), core_get_rklimit, PASTE_CORE_DLRMM_PARAMS, PASTE_CORE_DLRMM_VOID, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.

Referenced by core_dlradd().

◆ core_dlr2null()

static pastix_fixdbl_t core_dlr2null ( core_dlrmm_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_dlrmm_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 PastixTrans, AB->v is stored transposed, and () must be applied to the matrix.
[in]infomaskMask of informations returned by the core_dxx2lr() 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_dlr2xx.c.

References core_dlrcpy(), core_dlrfree(), core_dlrmm_getws(), core_get_rklimit, PASTE_CORE_DLRMM_PARAMS, PASTE_CORE_DLRMM_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_dlradd().