PaStiX Handbook  6.2.1
core_zlrmm.c File Reference
#include "common.h"
#include "kernels_trace.h"
#include "pastix_zlrcores.h"

Go to the source code of this file.

Functions

static pastix_fixdbl_t core_zlrmm_Cfr (core_zlrmm_t *params)
 Compute the matrix matrix product when applied to a full rank matrix. More...
 
static pastix_fixdbl_t core_zlrmm_Cnull (core_zlrmm_t *params)
 Compute the matrix matrix product when applied to a null matrix. More...
 
static pastix_fixdbl_t core_zlrmm_Clr (core_zlrmm_t *params)
 Compute the matrix matrix product when applied to a low rank matrix. More...
 
pastix_fixdbl_t core_zlrmm (core_zlrmm_t *params)
 Compute the matrix matrix product when involved matrices are stored in a low-rank structure. More...
 

Detailed Description

PaStiX low-rank kernel routines to compute a matrix matrix product in either form low or full rank.

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_zlrmm.c, normal z -> z, Tue Apr 12 09:38:38 2022

Definition in file core_zlrmm.c.

Function Documentation

◆ core_zlrmm_Cfr()

static pastix_fixdbl_t core_zlrmm_Cfr ( core_zlrmm_t params)
inlinestatic

Compute the matrix matrix product when applied to a full rank matrix.

This function considers that the C matrix is full rank, and A and B are either full-rank or low-rank. The result of the product is directly applied to the C matrix.

Parameters
[in,out]paramsThe LRMM structure that stores all the parameters used in the LRMM functions family.
See also
core_zlrmm_t
Returns
The number of flops required to perform the operation.

Definition at line 45 of file core_zlrmm.c.

References core_zlrmm_s::A, core_zlrmm_s::B, core_zlrmm_s::C, core_zfrfr2fr(), core_zfrlr2fr(), core_zlrfr2fr(), core_zlrlr2fr(), PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, core_zlrmm_s::transA, and core_zlrmm_s::transB.

Referenced by core_zlrmm().

◆ core_zlrmm_Cnull()

static pastix_fixdbl_t core_zlrmm_Cnull ( core_zlrmm_t params)
inlinestatic

Compute the matrix matrix product when applied to a null matrix.

This function considers that the C matrix is null, and A and B are either full-rank or low-rank. The result of the product is directly applied to the C matrix.

Parameters
[in,out]paramsThe LRMM structure that stores all the parameters used in the LRMM functions family.
See also
core_zlrmm_t
Returns
The number of flops required to perform the operation.

Definition at line 109 of file core_zlrmm.c.

References core_get_rklimit, core_zfrfr2lr(), core_zfrlr2lr(), core_zlradd(), core_zlrfr2lr(), core_zlrlr2lr(), PASTE_CORE_ZLRMM_PARAMS, PASTE_CORE_ZLRMM_VOID, PASTIX_LRM3_ALLOCU, PASTIX_LRM3_ALLOCV, PASTIX_LRM3_TRANSB, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.

Referenced by core_zlrmm().

◆ core_zlrmm_Clr()

static pastix_fixdbl_t core_zlrmm_Clr ( core_zlrmm_t params)
inlinestatic

Compute the matrix matrix product when applied to a low rank matrix.

This function considers that the C matrix is low rank, and A and B are either full-rank or low-rank. The result of the product is directly applied to the C matrix.

Parameters
[in,out]paramsThe LRMM structure that stores all the parameters used in the LRMM functions family.
See also
core_zlrmm_t
Returns
The number of flops required to perform the operation.

Definition at line 195 of file core_zlrmm.c.

References core_zfrfr2lr(), core_zfrlr2lr(), core_zlradd(), core_zlrfr2lr(), core_zlrlr2lr(), PASTE_CORE_ZLRMM_PARAMS, PASTE_CORE_ZLRMM_VOID, PASTIX_LRM3_ALLOCU, PASTIX_LRM3_ALLOCV, PASTIX_LRM3_TRANSB, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.

Referenced by core_zlrmm().