PaStiX Handbook
6.4.0
|
Data Structures | |
struct | core_clrmm_s |
Structure to store all the parameters of the core_clrmm family functions. More... | |
struct | core_slrmm_s |
Structure to store all the parameters of the core_slrmm family functions. More... | |
struct | core_zlrmm_s |
Structure to store all the parameters of the core_zlrmm family functions. More... | |
struct | core_dlrmm_s |
Structure to store all the parameters of the core_dlrmm family functions. More... | |
Functions | |
pastix_fixdbl_t | core_clrmm (core_clrmm_t *params) |
Compute the matrix matrix product when involved matrices are stored in a low-rank structure. More... | |
pastix_fixdbl_t | core_slrmm (core_slrmm_t *params) |
Compute the matrix matrix product when involved matrices are stored in a low-rank structure. 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... | |
pastix_fixdbl_t | core_dlrmm (core_dlrmm_t *params) |
Compute the matrix matrix product when involved matrices are stored in a low-rank structure. More... | |
PastixComplex32 LRMM low-rank kernels | |
typedef struct core_clrmm_s | core_clrmm_t |
Structure to store all the parameters of the core_clrmm family functions. | |
static pastix_complex32_t * | core_clrmm_getws (core_clrmm_t *params, ssize_t newsize) |
Function to get a workspace pointer if space is available in the one provided. More... | |
#define | PASTE_CORE_CLRMM_PARAMS(_a_) |
Initialize all the parameters of the core_clrmm family functions to ease the access. More... | |
#define | PASTE_CORE_CLRMM_VOID |
Void all the parameters of the core_clrmm family functions to silent warnings. More... | |
PastixFloat LRMM low-rank kernels | |
typedef struct core_slrmm_s | core_slrmm_t |
Structure to store all the parameters of the core_slrmm family functions. | |
static float * | core_slrmm_getws (core_slrmm_t *params, ssize_t newsize) |
Function to get a workspace pointer if space is available in the one provided. More... | |
#define | PASTE_CORE_SLRMM_PARAMS(_a_) |
Initialize all the parameters of the core_slrmm family functions to ease the access. More... | |
#define | PASTE_CORE_SLRMM_VOID |
Void all the parameters of the core_slrmm family functions to silent warnings. More... | |
PastixComplex64 LRMM low-rank kernels | |
typedef struct core_zlrmm_s | core_zlrmm_t |
Structure to store all the parameters of the core_zlrmm family functions. | |
static pastix_complex64_t * | core_zlrmm_getws (core_zlrmm_t *params, ssize_t newsize) |
Function to get a workspace pointer if space is available in the one provided. More... | |
#define | PASTE_CORE_ZLRMM_PARAMS(_a_) |
Initialize all the parameters of the core_zlrmm family functions to ease the access. More... | |
#define | PASTE_CORE_ZLRMM_VOID |
Void all the parameters of the core_zlrmm family functions to silent warnings. More... | |
PastixDouble LRMM low-rank kernels | |
typedef struct core_dlrmm_s | core_dlrmm_t |
Structure to store all the parameters of the core_dlrmm family functions. | |
static double * | core_dlrmm_getws (core_dlrmm_t *params, ssize_t newsize) |
Function to get a workspace pointer if space is available in the one provided. More... | |
#define | PASTE_CORE_DLRMM_PARAMS(_a_) |
Initialize all the parameters of the core_dlrmm family functions to ease the access. More... | |
#define | PASTE_CORE_DLRMM_VOID |
Void all the parameters of the core_dlrmm family functions to silent warnings. More... | |
update_fr Functions to perform the update on a full-rank matrix | |
pastix_fixdbl_t | core_cfrfr2fr (core_clrmm_t *params) |
Perform the full-rank operation C = alpha * op(A) * op(B) + beta C. More... | |
pastix_fixdbl_t | core_cfrlr2fr (core_clrmm_t *params) |
Perform the operation C = alpha * op(A) * op(B) + beta C, with A and C full-rank and B low-rank. More... | |
pastix_fixdbl_t | core_clrfr2fr (core_clrmm_t *params) |
Perform the operation C = alpha * op(A) * op(B) + beta C, with B and C full-rank and A low-rank. More... | |
pastix_fixdbl_t | core_clrlr2fr (core_clrmm_t *params) |
Perform the operation C = alpha * op(A) * op(B) + beta C, with A and B low-rank and C full-rank. More... | |
update_lr Functions to prepare the AB product for an update on a low-rank matrix | |
pastix_fixdbl_t | core_cfrfr2lr (core_clrmm_t *params, pastix_lrblock_t *AB, int *infomask, pastix_int_t Kmax) |
Perform the operation AB = op(A) * op(B), with A and B full-rank and AB low-rank. More... | |
pastix_fixdbl_t | core_cfrlr2lr (core_clrmm_t *params, pastix_lrblock_t *AB, int *infomask, pastix_int_t Brkmin) |
Perform the operation AB = op(A) * op(B), with A full-rank and B and AB low-rank. More... | |
pastix_fixdbl_t | core_clrfr2lr (core_clrmm_t *params, pastix_lrblock_t *AB, int *infomask, pastix_int_t Arkmin) |
Perform the operation AB = op(A) * op(B), with B full-rank and A and AB low-rank. More... | |
pastix_fixdbl_t | core_clrlr2lr (core_clrmm_t *params, pastix_lrblock_t *AB, int *infomask) |
Perform the operation AB = op(A) * op(B), with A, B, and AB low-rank. More... | |
add_lr Functions to add the AB contribution in a low-rank format to any C matrix | |
pastix_fixdbl_t | core_clradd (core_clrmm_t *params, const pastix_lrblock_t *AB, pastix_trans_t transV, int infomask) |
Perform the addition of two low-rank matrices. More... | |
update_fr Functions to perform the update on a full-rank matrix | |
pastix_fixdbl_t | core_sfrfr2fr (core_slrmm_t *params) |
Perform the full-rank operation C = alpha * op(A) * op(B) + beta C. More... | |
pastix_fixdbl_t | core_sfrlr2fr (core_slrmm_t *params) |
Perform the operation C = alpha * op(A) * op(B) + beta C, with A and C full-rank and B low-rank. More... | |
pastix_fixdbl_t | core_slrfr2fr (core_slrmm_t *params) |
Perform the operation C = alpha * op(A) * op(B) + beta C, with B and C full-rank and A low-rank. More... | |
pastix_fixdbl_t | core_slrlr2fr (core_slrmm_t *params) |
Perform the operation C = alpha * op(A) * op(B) + beta C, with A and B low-rank and C full-rank. More... | |
update_lr Functions to prepare the AB product for an update on a low-rank matrix | |
pastix_fixdbl_t | core_sfrfr2lr (core_slrmm_t *params, pastix_lrblock_t *AB, int *infomask, pastix_int_t Kmax) |
Perform the operation AB = op(A) * op(B), with A and B full-rank and AB low-rank. More... | |
pastix_fixdbl_t | core_sfrlr2lr (core_slrmm_t *params, pastix_lrblock_t *AB, int *infomask, pastix_int_t Brkmin) |
Perform the operation AB = op(A) * op(B), with A full-rank and B and AB low-rank. More... | |
pastix_fixdbl_t | core_slrfr2lr (core_slrmm_t *params, pastix_lrblock_t *AB, int *infomask, pastix_int_t Arkmin) |
Perform the operation AB = op(A) * op(B), with B full-rank and A and AB low-rank. More... | |
pastix_fixdbl_t | core_slrlr2lr (core_slrmm_t *params, pastix_lrblock_t *AB, int *infomask) |
Perform the operation AB = op(A) * op(B), with A, B, and AB low-rank. More... | |
add_lr Functions to add the AB contribution in a low-rank format to any C matrix | |
pastix_fixdbl_t | core_slradd (core_slrmm_t *params, const pastix_lrblock_t *AB, pastix_trans_t transV, int infomask) |
Perform the addition of two low-rank matrices. More... | |
update_fr Functions to perform the update on a full-rank matrix | |
pastix_fixdbl_t | core_zfrfr2fr (core_zlrmm_t *params) |
Perform the full-rank operation C = alpha * op(A) * op(B) + beta C. More... | |
pastix_fixdbl_t | core_zfrlr2fr (core_zlrmm_t *params) |
Perform the operation C = alpha * op(A) * op(B) + beta C, with A and C full-rank and B low-rank. More... | |
pastix_fixdbl_t | core_zlrfr2fr (core_zlrmm_t *params) |
Perform the operation C = alpha * op(A) * op(B) + beta C, with B and C full-rank and A low-rank. More... | |
pastix_fixdbl_t | core_zlrlr2fr (core_zlrmm_t *params) |
Perform the operation C = alpha * op(A) * op(B) + beta C, with A and B low-rank and C full-rank. More... | |
update_lr Functions to prepare the AB product for an update on a low-rank matrix | |
pastix_fixdbl_t | core_zfrfr2lr (core_zlrmm_t *params, pastix_lrblock_t *AB, int *infomask, pastix_int_t Kmax) |
Perform the operation AB = op(A) * op(B), with A and B full-rank and AB low-rank. More... | |
pastix_fixdbl_t | core_zfrlr2lr (core_zlrmm_t *params, pastix_lrblock_t *AB, int *infomask, pastix_int_t Brkmin) |
Perform the operation AB = op(A) * op(B), with A full-rank and B and AB low-rank. More... | |
pastix_fixdbl_t | core_zlrfr2lr (core_zlrmm_t *params, pastix_lrblock_t *AB, int *infomask, pastix_int_t Arkmin) |
Perform the operation AB = op(A) * op(B), with B full-rank and A and AB low-rank. More... | |
pastix_fixdbl_t | core_zlrlr2lr (core_zlrmm_t *params, pastix_lrblock_t *AB, int *infomask) |
Perform the operation AB = op(A) * op(B), with A, B, and AB low-rank. More... | |
add_lr Functions to add the AB contribution in a low-rank format to any C matrix | |
pastix_fixdbl_t | core_zlradd (core_zlrmm_t *params, const pastix_lrblock_t *AB, pastix_trans_t transV, int infomask) |
Perform the addition of two low-rank matrices. More... | |
update_fr Functions to perform the update on a full-rank matrix | |
pastix_fixdbl_t | core_dfrfr2fr (core_dlrmm_t *params) |
Perform the full-rank operation C = alpha * op(A) * op(B) + beta C. More... | |
pastix_fixdbl_t | core_dfrlr2fr (core_dlrmm_t *params) |
Perform the operation C = alpha * op(A) * op(B) + beta C, with A and C full-rank and B low-rank. More... | |
pastix_fixdbl_t | core_dlrfr2fr (core_dlrmm_t *params) |
Perform the operation C = alpha * op(A) * op(B) + beta C, with B and C full-rank and A low-rank. More... | |
pastix_fixdbl_t | core_dlrlr2fr (core_dlrmm_t *params) |
Perform the operation C = alpha * op(A) * op(B) + beta C, with A and B low-rank and C full-rank. More... | |
update_lr Functions to prepare the AB product for an update on a low-rank matrix | |
pastix_fixdbl_t | core_dfrfr2lr (core_dlrmm_t *params, pastix_lrblock_t *AB, int *infomask, pastix_int_t Kmax) |
Perform the operation AB = op(A) * op(B), with A and B full-rank and AB low-rank. More... | |
pastix_fixdbl_t | core_dfrlr2lr (core_dlrmm_t *params, pastix_lrblock_t *AB, int *infomask, pastix_int_t Brkmin) |
Perform the operation AB = op(A) * op(B), with A full-rank and B and AB low-rank. More... | |
pastix_fixdbl_t | core_dlrfr2lr (core_dlrmm_t *params, pastix_lrblock_t *AB, int *infomask, pastix_int_t Arkmin) |
Perform the operation AB = op(A) * op(B), with B full-rank and A and AB low-rank. More... | |
pastix_fixdbl_t | core_dlrlr2lr (core_dlrmm_t *params, pastix_lrblock_t *AB, int *infomask) |
Perform the operation AB = op(A) * op(B), with A, B, and AB low-rank. More... | |
add_lr Functions to add the AB contribution in a low-rank format to any C matrix | |
pastix_fixdbl_t | core_dlradd (core_dlrmm_t *params, const pastix_lrblock_t *AB, pastix_trans_t transV, int infomask) |
Perform the addition of two low-rank matrices. More... | |
This are the kernels to compute the low-rank updates
struct core_clrmm_s |
Structure to store all the parameters of the core_clrmm family functions.
Definition at line 80 of file pastix_clrcores.h.
Data Fields | ||
---|---|---|
const pastix_lr_t * | lowrank |
The lowrank structure |
pastix_trans_t | transA |
Specify op(A) and is equal to PastixNoTrans, PastixTrans, or PastixConjTrans |
pastix_trans_t | transB |
Specify op(B) and is equal to PastixNoTrans, PastixTrans, or PastixConjTrans |
pastix_int_t | M |
Number of rows of the A matrix |
pastix_int_t | N |
Number of columns of the B matrix |
pastix_int_t | K |
Number of columns of the A matrix (= number of rows of the B matrix) |
pastix_int_t | Cm |
Number of rows of the C matrix that receives the AB contribution |
pastix_int_t | Cn |
Number of columns of the C matrix that receives the AB contribution |
pastix_int_t | offx |
Horizontal offsets of the AB product in the C matrix |
pastix_int_t | offy |
Vertical offsets of the AB product in the C matrix |
pastix_complex32_t | alpha |
The alpha factor |
const pastix_lrblock_t * | A |
The A matrix described in a low-rank structure |
const pastix_lrblock_t * | B |
The B matrix described in a low-rank structure |
pastix_complex32_t | beta |
The beta factor |
pastix_lrblock_t * | C |
The C matrix described in a low-rank structure |
pastix_complex32_t * | work |
The pointer to an available workspace |
pastix_int_t | lwork |
The size of the given workspace |
pastix_int_t | lwused |
The size of the workspace that is already used |
pastix_atomic_lock_t * | lock |
The lock to protect the concurrent accesses on the C matrix |
struct core_slrmm_s |
Structure to store all the parameters of the core_slrmm family functions.
Definition at line 80 of file pastix_slrcores.h.
Data Fields | ||
---|---|---|
const pastix_lr_t * | lowrank |
The lowrank structure |
pastix_trans_t | transA |
Specify op(A) and is equal to PastixNoTrans, PastixTrans, or PastixTrans |
pastix_trans_t | transB |
Specify op(B) and is equal to PastixNoTrans, PastixTrans, or PastixTrans |
pastix_int_t | M |
Number of rows of the A matrix |
pastix_int_t | N |
Number of columns of the B matrix |
pastix_int_t | K |
Number of columns of the A matrix (= number of rows of the B matrix) |
pastix_int_t | Cm |
Number of rows of the C matrix that receives the AB contribution |
pastix_int_t | Cn |
Number of columns of the C matrix that receives the AB contribution |
pastix_int_t | offx |
Horizontal offsets of the AB product in the C matrix |
pastix_int_t | offy |
Vertical offsets of the AB product in the C matrix |
float | alpha |
The alpha factor |
const pastix_lrblock_t * | A |
The A matrix described in a low-rank structure |
const pastix_lrblock_t * | B |
The B matrix described in a low-rank structure |
float | beta |
The beta factor |
pastix_lrblock_t * | C |
The C matrix described in a low-rank structure |
float * | work |
The pointer to an available workspace |
pastix_int_t | lwork |
The size of the given workspace |
pastix_int_t | lwused |
The size of the workspace that is already used |
pastix_atomic_lock_t * | lock |
The lock to protect the concurrent accesses on the C matrix |
struct core_zlrmm_s |
Structure to store all the parameters of the core_zlrmm family functions.
Definition at line 80 of file pastix_zlrcores.h.
Data Fields | ||
---|---|---|
const pastix_lr_t * | lowrank |
The lowrank structure |
pastix_trans_t | transA |
Specify op(A) and is equal to PastixNoTrans, PastixTrans, or PastixConjTrans |
pastix_trans_t | transB |
Specify op(B) and is equal to PastixNoTrans, PastixTrans, or PastixConjTrans |
pastix_int_t | M |
Number of rows of the A matrix |
pastix_int_t | N |
Number of columns of the B matrix |
pastix_int_t | K |
Number of columns of the A matrix (= number of rows of the B matrix) |
pastix_int_t | Cm |
Number of rows of the C matrix that receives the AB contribution |
pastix_int_t | Cn |
Number of columns of the C matrix that receives the AB contribution |
pastix_int_t | offx |
Horizontal offsets of the AB product in the C matrix |
pastix_int_t | offy |
Vertical offsets of the AB product in the C matrix |
pastix_complex64_t | alpha |
The alpha factor |
const pastix_lrblock_t * | A |
The A matrix described in a low-rank structure |
const pastix_lrblock_t * | B |
The B matrix described in a low-rank structure |
pastix_complex64_t | beta |
The beta factor |
pastix_lrblock_t * | C |
The C matrix described in a low-rank structure |
pastix_complex64_t * | work |
The pointer to an available workspace |
pastix_int_t | lwork |
The size of the given workspace |
pastix_int_t | lwused |
The size of the workspace that is already used |
pastix_atomic_lock_t * | lock |
The lock to protect the concurrent accesses on the C matrix |
struct core_dlrmm_s |
Structure to store all the parameters of the core_dlrmm family functions.
Definition at line 80 of file pastix_dlrcores.h.
Data Fields | ||
---|---|---|
const pastix_lr_t * | lowrank |
The lowrank structure |
pastix_trans_t | transA |
Specify op(A) and is equal to PastixNoTrans, PastixTrans, or PastixTrans |
pastix_trans_t | transB |
Specify op(B) and is equal to PastixNoTrans, PastixTrans, or PastixTrans |
pastix_int_t | M |
Number of rows of the A matrix |
pastix_int_t | N |
Number of columns of the B matrix |
pastix_int_t | K |
Number of columns of the A matrix (= number of rows of the B matrix) |
pastix_int_t | Cm |
Number of rows of the C matrix that receives the AB contribution |
pastix_int_t | Cn |
Number of columns of the C matrix that receives the AB contribution |
pastix_int_t | offx |
Horizontal offsets of the AB product in the C matrix |
pastix_int_t | offy |
Vertical offsets of the AB product in the C matrix |
double | alpha |
The alpha factor |
const pastix_lrblock_t * | A |
The A matrix described in a low-rank structure |
const pastix_lrblock_t * | B |
The B matrix described in a low-rank structure |
double | beta |
The beta factor |
pastix_lrblock_t * | C |
The C matrix described in a low-rank structure |
double * | work |
The pointer to an available workspace |
pastix_int_t | lwork |
The size of the given workspace |
pastix_int_t | lwused |
The size of the workspace that is already used |
pastix_atomic_lock_t * | lock |
The lock to protect the concurrent accesses on the C matrix |
#define PASTE_CORE_CLRMM_PARAMS | ( | _a_ | ) |
Initialize all the parameters of the core_clrmm family functions to ease the access.
Definition at line 105 of file pastix_clrcores.h.
#define PASTE_CORE_CLRMM_VOID |
Void all the parameters of the core_clrmm family functions to silent warnings.
Definition at line 128 of file pastix_clrcores.h.
#define PASTE_CORE_SLRMM_PARAMS | ( | _a_ | ) |
Initialize all the parameters of the core_slrmm family functions to ease the access.
Definition at line 105 of file pastix_slrcores.h.
#define PASTE_CORE_SLRMM_VOID |
Void all the parameters of the core_slrmm family functions to silent warnings.
Definition at line 128 of file pastix_slrcores.h.
#define PASTE_CORE_ZLRMM_PARAMS | ( | _a_ | ) |
Initialize all the parameters of the core_zlrmm family functions to ease the access.
Definition at line 105 of file pastix_zlrcores.h.
#define PASTE_CORE_ZLRMM_VOID |
Void all the parameters of the core_zlrmm family functions to silent warnings.
Definition at line 128 of file pastix_zlrcores.h.
#define PASTE_CORE_DLRMM_PARAMS | ( | _a_ | ) |
Initialize all the parameters of the core_dlrmm family functions to ease the access.
Definition at line 105 of file pastix_dlrcores.h.
#define PASTE_CORE_DLRMM_VOID |
Void all the parameters of the core_dlrmm family functions to silent warnings.
Definition at line 128 of file pastix_dlrcores.h.
|
inlinestatic |
Function to get a workspace pointer if space is available in the one provided.
[in,out] | params | The parameters structure for core_clrmm family functions |
[in] | newsize | The required workspace size in number of elements |
Definition at line 155 of file pastix_clrcores.h.
References core_clrmm_s::lwork, core_clrmm_s::lwused, and core_clrmm_s::work.
Referenced by core_cfrfr2lr(), core_cfrlr2fr(), core_cfrlr2lr(), core_clr2lr(), core_clr2null(), core_clrfr2fr(), core_clrfr2lr(), and core_clrlr2lr().
pastix_fixdbl_t core_cfrfr2fr | ( | core_clrmm_t * | params | ) |
Perform the full-rank operation C = alpha * op(A) * op(B) + beta C.
[in,out] | params | The 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. |
Definition at line 48 of file core_cxx2fr.c.
References PASTE_CORE_CLRMM_PARAMS, PASTE_CORE_CLRMM_VOID, pastix_int_t, and PastixNoTrans.
pastix_fixdbl_t core_cfrlr2fr | ( | core_clrmm_t * | params | ) |
Perform the operation C = alpha * op(A) * op(B) + beta C, with A and C full-rank and B low-rank.
[in,out] | params | The 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. |
Definition at line 101 of file core_cxx2fr.c.
References core_clrmm_getws(), PASTE_CORE_CLRMM_PARAMS, PASTE_CORE_CLRMM_VOID, pastix_int_t, and PastixNoTrans.
pastix_fixdbl_t core_clrfr2fr | ( | core_clrmm_t * | params | ) |
Perform the operation C = alpha * op(A) * op(B) + beta C, with B and C full-rank and A low-rank.
[in,out] | params | The 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. |
Definition at line 202 of file core_cxx2fr.c.
References core_clrmm_getws(), PASTE_CORE_CLRMM_PARAMS, PASTE_CORE_CLRMM_VOID, pastix_int_t, and PastixNoTrans.
pastix_fixdbl_t core_clrlr2fr | ( | core_clrmm_t * | params | ) |
Perform the operation C = alpha * op(A) * op(B) + beta C, with A and B low-rank and C full-rank.
[in,out] | params | The 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. |
Definition at line 304 of file core_cxx2fr.c.
References core_clrlr2lr(), PASTE_CORE_CLRMM_PARAMS, PASTE_CORE_CLRMM_VOID, pastix_int_t, 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.
pastix_fixdbl_t core_cfrfr2lr | ( | core_clrmm_t * | params, |
pastix_lrblock_t * | AB, | ||
int * | infomask, | ||
pastix_int_t | Kmax | ||
) |
Perform the operation AB = op(A) * op(B), with A and B full-rank and AB low-rank.
[in,out] | params | The 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. |
[in,out] | AB | The low-rank structure of the AB matrix in which to store the AB product. |
[in,out] | infomask | The mask of informations returned by the core_cxx2lr() functions.
|
[in] | Kmax | The maximum K value for which the AB product is contructed as AB.u = A, and AB.v = B |
Definition at line 66 of file core_cxx2lr.c.
References core_clrmm_getws(), PASTE_CORE_CLRMM_PARAMS, PASTE_CORE_CLRMM_VOID, pastix_int_t, PASTIX_LRM3_ALLOCU, PASTIX_LRM3_TRANSB, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
pastix_fixdbl_t core_cfrlr2lr | ( | core_clrmm_t * | params, |
pastix_lrblock_t * | AB, | ||
int * | infomask, | ||
pastix_int_t | Brkmin | ||
) |
Perform the operation AB = op(A) * op(B), with A full-rank and B and AB low-rank.
[in,out] | params | The 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. |
[in,out] | AB | The low-rank structure of the AB matrix in which to store the AB product. |
[in,out] | infomask | The mask of informations returned by the core_cxx2lr() functions.
|
[in] | Brkmin | Threshold for which B->rk is considered as the final rank of AB |
Definition at line 152 of file core_cxx2lr.c.
References core_clrmm_getws(), PASTE_CORE_CLRMM_PARAMS, PASTE_CORE_CLRMM_VOID, pastix_int_t, PASTIX_LRM3_ALLOCU, PASTIX_LRM3_TRANSB, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
pastix_fixdbl_t core_clrfr2lr | ( | core_clrmm_t * | params, |
pastix_lrblock_t * | AB, | ||
int * | infomask, | ||
pastix_int_t | Arkmin | ||
) |
Perform the operation AB = op(A) * op(B), with B full-rank and A and AB low-rank.
[in,out] | params | The 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. |
[in,out] | AB | The low-rank structure of the AB matrix in which to store the AB product. |
[in,out] | infomask | The mask of informations returned by the core_cxx2lr() functions.
|
[in] | Arkmin | Threshold for which A->rk is considered as the final rank of AB |
Definition at line 298 of file core_cxx2lr.c.
References core_clrmm_getws(), PASTE_CORE_CLRMM_PARAMS, PASTE_CORE_CLRMM_VOID, pastix_int_t, PASTIX_LRM3_ALLOCU, PASTIX_LRM3_ALLOCV, PASTIX_LRM3_ORTHOU, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
pastix_fixdbl_t core_clrlr2lr | ( | core_clrmm_t * | params, |
pastix_lrblock_t * | AB, | ||
int * | infomask | ||
) |
Perform the operation AB = op(A) * op(B), with A, B, and AB low-rank.
[in,out] | params | The 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. |
[in,out] | AB | The low-rank structure of the AB matrix in which to store the AB product. |
[in,out] | infomask | The mask of informations returned by the core_cxx2lr() functions.
|
The rank of AB is smaller than min(rankA, rankB)
Definition at line 442 of file core_cxx2lr.c.
References core_clrfree(), core_clrmm_getws(), PASTE_CORE_CLRMM_PARAMS, PASTE_CORE_CLRMM_VOID, pastix_int_t, PASTIX_LRM3_ALLOCU, PASTIX_LRM3_ALLOCV, PASTIX_LRM3_ORTHOU, PASTIX_LRM3_TRANSB, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_clrlr2fr().
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.
[in,out] | params | The LRMM structure that stores all the parameters used in the LRMM functions family. On exit, the C matrix contains the addition of C and A aligned with its own dimensions. |
[in] | A | The low-rank structure of the A matrix to add to C. |
[in] | transV | Specify if A->v is stored normally or transposed.
|
[in] | infomask | Mask of informations returned by the core_cxx2lr() functions. If CORE_LRMM_ORTHOU is set, then A.u is orthogonal, otherwise an orthogonalization step is added before adding it to C. |
Definition at line 383 of file core_clr2xx.c.
References core_clrmm_s::C, core_clr2fr(), core_clr2lr(), core_clr2null(), core_clrmm_s::lock, pastix_lrblock_s::rk, and pastix_lrblock_s::rkmax.
Referenced by cpublok_cadd_frlr(), cpublok_cadd_lrlr(), cpucblk_cadd_frlr(), and cpucblk_cadd_lrlr().
pastix_fixdbl_t core_clrmm | ( | core_clrmm_t * | params | ) |
Compute the matrix matrix product when involved matrices are stored in a low-rank structure.
This function considers the generic matrix matrix product added to a third matric C. All matrices are either null, low-rank or full-rank.
[in,out] | params | The LRMM structure that stores all the parameters used in the LRMM functions family. |
Definition at line 278 of file core_clrmm.c.
References core_clrdbg_check_orthogonality(), core_clrmm_Cfr(), core_clrmm_Clr(), core_clrmm_Cnull(), core_clrmm_s::lwused, PASTE_CORE_CLRMM_PARAMS, PASTE_CORE_CLRMM_VOID, PastixCompressMethodSVD, PastixNoTrans, and core_clrmm_s::work.
Referenced by core_cgemmsp_block_frlr(), core_cgemmsp_block_lrlr(), core_cgemmsp_fulllr(), core_cgemmsp_lr(), and core_cgemmsp_lrfr().
|
inlinestatic |
Function to get a workspace pointer if space is available in the one provided.
[in,out] | params | The parameters structure for core_slrmm family functions |
[in] | newsize | The required workspace size in number of elements |
Definition at line 155 of file pastix_slrcores.h.
References core_slrmm_s::lwork, core_slrmm_s::lwused, and core_slrmm_s::work.
Referenced by core_sfrfr2lr(), core_sfrlr2fr(), core_sfrlr2lr(), core_slr2lr(), core_slr2null(), core_slrfr2fr(), core_slrfr2lr(), and core_slrlr2lr().
pastix_fixdbl_t core_sfrfr2fr | ( | core_slrmm_t * | params | ) |
Perform the full-rank operation C = alpha * op(A) * op(B) + beta C.
[in,out] | params | The 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. |
Definition at line 48 of file core_sxx2fr.c.
References PASTE_CORE_SLRMM_PARAMS, PASTE_CORE_SLRMM_VOID, pastix_int_t, and PastixNoTrans.
pastix_fixdbl_t core_sfrlr2fr | ( | core_slrmm_t * | params | ) |
Perform the operation C = alpha * op(A) * op(B) + beta C, with A and C full-rank and B low-rank.
[in,out] | params | The 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. |
Definition at line 101 of file core_sxx2fr.c.
References core_slrmm_getws(), PASTE_CORE_SLRMM_PARAMS, PASTE_CORE_SLRMM_VOID, pastix_int_t, and PastixNoTrans.
pastix_fixdbl_t core_slrfr2fr | ( | core_slrmm_t * | params | ) |
Perform the operation C = alpha * op(A) * op(B) + beta C, with B and C full-rank and A low-rank.
[in,out] | params | The 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. |
Definition at line 202 of file core_sxx2fr.c.
References core_slrmm_getws(), PASTE_CORE_SLRMM_PARAMS, PASTE_CORE_SLRMM_VOID, pastix_int_t, and PastixNoTrans.
pastix_fixdbl_t core_slrlr2fr | ( | core_slrmm_t * | params | ) |
Perform the operation C = alpha * op(A) * op(B) + beta C, with A and B low-rank and C full-rank.
[in,out] | params | The 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. |
Definition at line 304 of file core_sxx2fr.c.
References core_slrlr2lr(), PASTE_CORE_SLRMM_PARAMS, PASTE_CORE_SLRMM_VOID, pastix_int_t, 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.
pastix_fixdbl_t core_sfrfr2lr | ( | core_slrmm_t * | params, |
pastix_lrblock_t * | AB, | ||
int * | infomask, | ||
pastix_int_t | Kmax | ||
) |
Perform the operation AB = op(A) * op(B), with A and B full-rank and AB low-rank.
[in,out] | params | The 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. |
[in,out] | AB | The low-rank structure of the AB matrix in which to store the AB product. |
[in,out] | infomask | The mask of informations returned by the core_sxx2lr() functions.
|
[in] | Kmax | The maximum K value for which the AB product is contructed as AB.u = A, and AB.v = B |
Definition at line 66 of file core_sxx2lr.c.
References core_slrmm_getws(), PASTE_CORE_SLRMM_PARAMS, PASTE_CORE_SLRMM_VOID, pastix_int_t, PASTIX_LRM3_ALLOCU, PASTIX_LRM3_TRANSB, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
pastix_fixdbl_t core_sfrlr2lr | ( | core_slrmm_t * | params, |
pastix_lrblock_t * | AB, | ||
int * | infomask, | ||
pastix_int_t | Brkmin | ||
) |
Perform the operation AB = op(A) * op(B), with A full-rank and B and AB low-rank.
[in,out] | params | The 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. |
[in,out] | AB | The low-rank structure of the AB matrix in which to store the AB product. |
[in,out] | infomask | The mask of informations returned by the core_sxx2lr() functions.
|
[in] | Brkmin | Threshold for which B->rk is considered as the final rank of AB |
Definition at line 152 of file core_sxx2lr.c.
References core_slrmm_getws(), PASTE_CORE_SLRMM_PARAMS, PASTE_CORE_SLRMM_VOID, pastix_int_t, PASTIX_LRM3_ALLOCU, PASTIX_LRM3_TRANSB, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
pastix_fixdbl_t core_slrfr2lr | ( | core_slrmm_t * | params, |
pastix_lrblock_t * | AB, | ||
int * | infomask, | ||
pastix_int_t | Arkmin | ||
) |
Perform the operation AB = op(A) * op(B), with B full-rank and A and AB low-rank.
[in,out] | params | The 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. |
[in,out] | AB | The low-rank structure of the AB matrix in which to store the AB product. |
[in,out] | infomask | The mask of informations returned by the core_sxx2lr() functions.
|
[in] | Arkmin | Threshold for which A->rk is considered as the final rank of AB |
Definition at line 298 of file core_sxx2lr.c.
References core_slrmm_getws(), PASTE_CORE_SLRMM_PARAMS, PASTE_CORE_SLRMM_VOID, pastix_int_t, PASTIX_LRM3_ALLOCU, PASTIX_LRM3_ALLOCV, PASTIX_LRM3_ORTHOU, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
pastix_fixdbl_t core_slrlr2lr | ( | core_slrmm_t * | params, |
pastix_lrblock_t * | AB, | ||
int * | infomask | ||
) |
Perform the operation AB = op(A) * op(B), with A, B, and AB low-rank.
[in,out] | params | The 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. |
[in,out] | AB | The low-rank structure of the AB matrix in which to store the AB product. |
[in,out] | infomask | The mask of informations returned by the core_sxx2lr() functions.
|
The rank of AB is smaller than min(rankA, rankB)
Definition at line 442 of file core_sxx2lr.c.
References core_slrfree(), core_slrmm_getws(), PASTE_CORE_SLRMM_PARAMS, PASTE_CORE_SLRMM_VOID, pastix_int_t, PASTIX_LRM3_ALLOCU, PASTIX_LRM3_ALLOCV, PASTIX_LRM3_ORTHOU, PASTIX_LRM3_TRANSB, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_slrlr2fr().
pastix_fixdbl_t core_slradd | ( | core_slrmm_t * | params, |
const pastix_lrblock_t * | A, | ||
pastix_trans_t | transV, | ||
int | infomask | ||
) |
Perform the addition of two low-rank matrices.
[in,out] | params | The LRMM structure that stores all the parameters used in the LRMM functions family. On exit, the C matrix contains the addition of C and A aligned with its own dimensions. |
[in] | A | The low-rank structure of the A matrix to add to C. |
[in] | transV | Specify if A->v is stored normally or transposed.
|
[in] | infomask | Mask of informations returned by the core_sxx2lr() functions. If CORE_LRMM_ORTHOU is set, then A.u is orthogonal, otherwise an orthogonalization step is added before adding it to C. |
Definition at line 383 of file core_slr2xx.c.
References core_slrmm_s::C, core_slr2fr(), core_slr2lr(), core_slr2null(), core_slrmm_s::lock, pastix_lrblock_s::rk, and pastix_lrblock_s::rkmax.
Referenced by cpublok_sadd_frlr(), cpublok_sadd_lrlr(), cpucblk_sadd_frlr(), and cpucblk_sadd_lrlr().
pastix_fixdbl_t core_slrmm | ( | core_slrmm_t * | params | ) |
Compute the matrix matrix product when involved matrices are stored in a low-rank structure.
This function considers the generic matrix matrix product added to a third matric C. All matrices are either null, low-rank or full-rank.
[in,out] | params | The LRMM structure that stores all the parameters used in the LRMM functions family. |
Definition at line 278 of file core_slrmm.c.
References core_slrdbg_check_orthogonality(), core_slrmm_Cfr(), core_slrmm_Clr(), core_slrmm_Cnull(), core_slrmm_s::lwused, PASTE_CORE_SLRMM_PARAMS, PASTE_CORE_SLRMM_VOID, PastixCompressMethodSVD, PastixNoTrans, and core_slrmm_s::work.
Referenced by core_sgemmsp_block_frlr(), core_sgemmsp_block_lrlr(), core_sgemmsp_fulllr(), core_sgemmsp_lr(), and core_sgemmsp_lrfr().
|
inlinestatic |
Function to get a workspace pointer if space is available in the one provided.
[in,out] | params | The parameters structure for core_zlrmm family functions |
[in] | newsize | The required workspace size in number of elements |
Definition at line 155 of file pastix_zlrcores.h.
References core_zlrmm_s::lwork, core_zlrmm_s::lwused, and core_zlrmm_s::work.
Referenced by core_zfrfr2lr(), core_zfrlr2fr(), core_zfrlr2lr(), core_zlr2lr(), core_zlr2null(), core_zlrfr2fr(), core_zlrfr2lr(), and core_zlrlr2lr().
pastix_fixdbl_t core_zfrfr2fr | ( | core_zlrmm_t * | params | ) |
Perform the full-rank operation C = alpha * op(A) * op(B) + beta C.
[in,out] | params | The 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. |
Definition at line 48 of file core_zxx2fr.c.
References PASTE_CORE_ZLRMM_PARAMS, PASTE_CORE_ZLRMM_VOID, pastix_int_t, and PastixNoTrans.
pastix_fixdbl_t core_zfrlr2fr | ( | core_zlrmm_t * | params | ) |
Perform the operation C = alpha * op(A) * op(B) + beta C, with A and C full-rank and B low-rank.
[in,out] | params | The 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. |
Definition at line 101 of file core_zxx2fr.c.
References core_zlrmm_getws(), PASTE_CORE_ZLRMM_PARAMS, PASTE_CORE_ZLRMM_VOID, pastix_int_t, and PastixNoTrans.
pastix_fixdbl_t core_zlrfr2fr | ( | core_zlrmm_t * | params | ) |
Perform the operation C = alpha * op(A) * op(B) + beta C, with B and C full-rank and A low-rank.
[in,out] | params | The 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. |
Definition at line 202 of file core_zxx2fr.c.
References core_zlrmm_getws(), PASTE_CORE_ZLRMM_PARAMS, PASTE_CORE_ZLRMM_VOID, pastix_int_t, and PastixNoTrans.
pastix_fixdbl_t core_zlrlr2fr | ( | core_zlrmm_t * | params | ) |
Perform the operation C = alpha * op(A) * op(B) + beta C, with A and B low-rank and C full-rank.
[in,out] | params | The 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. |
Definition at line 304 of file core_zxx2fr.c.
References core_zlrlr2lr(), PASTE_CORE_ZLRMM_PARAMS, PASTE_CORE_ZLRMM_VOID, pastix_int_t, 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.
pastix_fixdbl_t core_zfrfr2lr | ( | core_zlrmm_t * | params, |
pastix_lrblock_t * | AB, | ||
int * | infomask, | ||
pastix_int_t | Kmax | ||
) |
Perform the operation AB = op(A) * op(B), with A and B full-rank and AB low-rank.
[in,out] | params | The 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. |
[in,out] | AB | The low-rank structure of the AB matrix in which to store the AB product. |
[in,out] | infomask | The mask of informations returned by the core_zxx2lr() functions.
|
[in] | Kmax | The maximum K value for which the AB product is contructed as AB.u = A, and AB.v = B |
Definition at line 66 of file core_zxx2lr.c.
References core_zlrmm_getws(), PASTE_CORE_ZLRMM_PARAMS, PASTE_CORE_ZLRMM_VOID, pastix_int_t, PASTIX_LRM3_ALLOCU, PASTIX_LRM3_TRANSB, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
pastix_fixdbl_t core_zfrlr2lr | ( | core_zlrmm_t * | params, |
pastix_lrblock_t * | AB, | ||
int * | infomask, | ||
pastix_int_t | Brkmin | ||
) |
Perform the operation AB = op(A) * op(B), with A full-rank and B and AB low-rank.
[in,out] | params | The 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. |
[in,out] | AB | The low-rank structure of the AB matrix in which to store the AB product. |
[in,out] | infomask | The mask of informations returned by the core_zxx2lr() functions.
|
[in] | Brkmin | Threshold for which B->rk is considered as the final rank of AB |
Definition at line 152 of file core_zxx2lr.c.
References core_zlrmm_getws(), PASTE_CORE_ZLRMM_PARAMS, PASTE_CORE_ZLRMM_VOID, pastix_int_t, PASTIX_LRM3_ALLOCU, PASTIX_LRM3_TRANSB, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
pastix_fixdbl_t core_zlrfr2lr | ( | core_zlrmm_t * | params, |
pastix_lrblock_t * | AB, | ||
int * | infomask, | ||
pastix_int_t | Arkmin | ||
) |
Perform the operation AB = op(A) * op(B), with B full-rank and A and AB low-rank.
[in,out] | params | The 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. |
[in,out] | AB | The low-rank structure of the AB matrix in which to store the AB product. |
[in,out] | infomask | The mask of informations returned by the core_zxx2lr() functions.
|
[in] | Arkmin | Threshold for which A->rk is considered as the final rank of AB |
Definition at line 298 of file core_zxx2lr.c.
References core_zlrmm_getws(), PASTE_CORE_ZLRMM_PARAMS, PASTE_CORE_ZLRMM_VOID, pastix_int_t, PASTIX_LRM3_ALLOCU, PASTIX_LRM3_ALLOCV, PASTIX_LRM3_ORTHOU, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
pastix_fixdbl_t core_zlrlr2lr | ( | core_zlrmm_t * | params, |
pastix_lrblock_t * | AB, | ||
int * | infomask | ||
) |
Perform the operation AB = op(A) * op(B), with A, B, and AB low-rank.
[in,out] | params | The 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. |
[in,out] | AB | The low-rank structure of the AB matrix in which to store the AB product. |
[in,out] | infomask | The mask of informations returned by the core_zxx2lr() functions.
|
The rank of AB is smaller than min(rankA, rankB)
Definition at line 442 of file core_zxx2lr.c.
References core_zlrfree(), core_zlrmm_getws(), PASTE_CORE_ZLRMM_PARAMS, PASTE_CORE_ZLRMM_VOID, pastix_int_t, PASTIX_LRM3_ALLOCU, PASTIX_LRM3_ALLOCV, PASTIX_LRM3_ORTHOU, PASTIX_LRM3_TRANSB, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_zlrlr2fr().
pastix_fixdbl_t core_zlradd | ( | core_zlrmm_t * | params, |
const pastix_lrblock_t * | A, | ||
pastix_trans_t | transV, | ||
int | infomask | ||
) |
Perform the addition of two low-rank matrices.
[in,out] | params | The LRMM structure that stores all the parameters used in the LRMM functions family. On exit, the C matrix contains the addition of C and A aligned with its own dimensions. |
[in] | A | The low-rank structure of the A matrix to add to C. |
[in] | transV | Specify if A->v is stored normally or transposed.
|
[in] | infomask | Mask of informations returned by the core_zxx2lr() functions. If CORE_LRMM_ORTHOU is set, then A.u is orthogonal, otherwise an orthogonalization step is added before adding it to C. |
Definition at line 383 of file core_zlr2xx.c.
References core_zlrmm_s::C, core_zlr2fr(), core_zlr2lr(), core_zlr2null(), core_zlrmm_s::lock, pastix_lrblock_s::rk, and pastix_lrblock_s::rkmax.
Referenced by cpublok_zadd_frlr(), cpublok_zadd_lrlr(), cpucblk_zadd_frlr(), and cpucblk_zadd_lrlr().
pastix_fixdbl_t core_zlrmm | ( | core_zlrmm_t * | params | ) |
Compute the matrix matrix product when involved matrices are stored in a low-rank structure.
This function considers the generic matrix matrix product added to a third matric C. All matrices are either null, low-rank or full-rank.
[in,out] | params | The LRMM structure that stores all the parameters used in the LRMM functions family. |
Definition at line 278 of file core_zlrmm.c.
References core_zlrdbg_check_orthogonality(), core_zlrmm_Cfr(), core_zlrmm_Clr(), core_zlrmm_Cnull(), core_zlrmm_s::lwused, PASTE_CORE_ZLRMM_PARAMS, PASTE_CORE_ZLRMM_VOID, PastixCompressMethodSVD, PastixNoTrans, and core_zlrmm_s::work.
Referenced by core_zgemmsp_block_frlr(), core_zgemmsp_block_lrlr(), core_zgemmsp_fulllr(), core_zgemmsp_lr(), and core_zgemmsp_lrfr().
|
inlinestatic |
Function to get a workspace pointer if space is available in the one provided.
[in,out] | params | The parameters structure for core_dlrmm family functions |
[in] | newsize | The required workspace size in number of elements |
Definition at line 155 of file pastix_dlrcores.h.
References core_dlrmm_s::lwork, core_dlrmm_s::lwused, and core_dlrmm_s::work.
Referenced by core_dfrfr2lr(), core_dfrlr2fr(), core_dfrlr2lr(), core_dlr2lr(), core_dlr2null(), core_dlrfr2fr(), core_dlrfr2lr(), and core_dlrlr2lr().
pastix_fixdbl_t core_dfrfr2fr | ( | core_dlrmm_t * | params | ) |
Perform the full-rank operation C = alpha * op(A) * op(B) + beta C.
[in,out] | params | The 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. |
Definition at line 48 of file core_dxx2fr.c.
References PASTE_CORE_DLRMM_PARAMS, PASTE_CORE_DLRMM_VOID, pastix_int_t, and PastixNoTrans.
pastix_fixdbl_t core_dfrlr2fr | ( | core_dlrmm_t * | params | ) |
Perform the operation C = alpha * op(A) * op(B) + beta C, with A and C full-rank and B low-rank.
[in,out] | params | The 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. |
Definition at line 101 of file core_dxx2fr.c.
References core_dlrmm_getws(), PASTE_CORE_DLRMM_PARAMS, PASTE_CORE_DLRMM_VOID, pastix_int_t, and PastixNoTrans.
pastix_fixdbl_t core_dlrfr2fr | ( | core_dlrmm_t * | params | ) |
Perform the operation C = alpha * op(A) * op(B) + beta C, with B and C full-rank and A low-rank.
[in,out] | params | The 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. |
Definition at line 202 of file core_dxx2fr.c.
References core_dlrmm_getws(), PASTE_CORE_DLRMM_PARAMS, PASTE_CORE_DLRMM_VOID, pastix_int_t, and PastixNoTrans.
pastix_fixdbl_t core_dlrlr2fr | ( | core_dlrmm_t * | params | ) |
Perform the operation C = alpha * op(A) * op(B) + beta C, with A and B low-rank and C full-rank.
[in,out] | params | The 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. |
Definition at line 304 of file core_dxx2fr.c.
References core_dlrlr2lr(), PASTE_CORE_DLRMM_PARAMS, PASTE_CORE_DLRMM_VOID, pastix_int_t, 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.
pastix_fixdbl_t core_dfrfr2lr | ( | core_dlrmm_t * | params, |
pastix_lrblock_t * | AB, | ||
int * | infomask, | ||
pastix_int_t | Kmax | ||
) |
Perform the operation AB = op(A) * op(B), with A and B full-rank and AB low-rank.
[in,out] | params | The 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. |
[in,out] | AB | The low-rank structure of the AB matrix in which to store the AB product. |
[in,out] | infomask | The mask of informations returned by the core_dxx2lr() functions.
|
[in] | Kmax | The maximum K value for which the AB product is contructed as AB.u = A, and AB.v = B |
Definition at line 66 of file core_dxx2lr.c.
References core_dlrmm_getws(), PASTE_CORE_DLRMM_PARAMS, PASTE_CORE_DLRMM_VOID, pastix_int_t, PASTIX_LRM3_ALLOCU, PASTIX_LRM3_TRANSB, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
pastix_fixdbl_t core_dfrlr2lr | ( | core_dlrmm_t * | params, |
pastix_lrblock_t * | AB, | ||
int * | infomask, | ||
pastix_int_t | Brkmin | ||
) |
Perform the operation AB = op(A) * op(B), with A full-rank and B and AB low-rank.
[in,out] | params | The 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. |
[in,out] | AB | The low-rank structure of the AB matrix in which to store the AB product. |
[in,out] | infomask | The mask of informations returned by the core_dxx2lr() functions.
|
[in] | Brkmin | Threshold for which B->rk is considered as the final rank of AB |
Definition at line 152 of file core_dxx2lr.c.
References core_dlrmm_getws(), PASTE_CORE_DLRMM_PARAMS, PASTE_CORE_DLRMM_VOID, pastix_int_t, PASTIX_LRM3_ALLOCU, PASTIX_LRM3_TRANSB, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
pastix_fixdbl_t core_dlrfr2lr | ( | core_dlrmm_t * | params, |
pastix_lrblock_t * | AB, | ||
int * | infomask, | ||
pastix_int_t | Arkmin | ||
) |
Perform the operation AB = op(A) * op(B), with B full-rank and A and AB low-rank.
[in,out] | params | The 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. |
[in,out] | AB | The low-rank structure of the AB matrix in which to store the AB product. |
[in,out] | infomask | The mask of informations returned by the core_dxx2lr() functions.
|
[in] | Arkmin | Threshold for which A->rk is considered as the final rank of AB |
Definition at line 298 of file core_dxx2lr.c.
References core_dlrmm_getws(), PASTE_CORE_DLRMM_PARAMS, PASTE_CORE_DLRMM_VOID, pastix_int_t, PASTIX_LRM3_ALLOCU, PASTIX_LRM3_ALLOCV, PASTIX_LRM3_ORTHOU, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
pastix_fixdbl_t core_dlrlr2lr | ( | core_dlrmm_t * | params, |
pastix_lrblock_t * | AB, | ||
int * | infomask | ||
) |
Perform the operation AB = op(A) * op(B), with A, B, and AB low-rank.
[in,out] | params | The 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. |
[in,out] | AB | The low-rank structure of the AB matrix in which to store the AB product. |
[in,out] | infomask | The mask of informations returned by the core_dxx2lr() functions.
|
The rank of AB is smaller than min(rankA, rankB)
Definition at line 442 of file core_dxx2lr.c.
References core_dlrfree(), core_dlrmm_getws(), PASTE_CORE_DLRMM_PARAMS, PASTE_CORE_DLRMM_VOID, pastix_int_t, PASTIX_LRM3_ALLOCU, PASTIX_LRM3_ALLOCV, PASTIX_LRM3_ORTHOU, PASTIX_LRM3_TRANSB, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_dlrlr2fr().
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.
[in,out] | params | The LRMM structure that stores all the parameters used in the LRMM functions family. On exit, the C matrix contains the addition of C and A aligned with its own dimensions. |
[in] | A | The low-rank structure of the A matrix to add to C. |
[in] | transV | Specify if A->v is stored normally or transposed.
|
[in] | infomask | Mask of informations returned by the core_dxx2lr() functions. If CORE_LRMM_ORTHOU is set, then A.u is orthogonal, otherwise an orthogonalization step is added before adding it to C. |
Definition at line 383 of file core_dlr2xx.c.
References core_dlrmm_s::C, core_dlr2fr(), core_dlr2lr(), core_dlr2null(), core_dlrmm_s::lock, pastix_lrblock_s::rk, and pastix_lrblock_s::rkmax.
Referenced by cpublok_dadd_frlr(), cpublok_dadd_lrlr(), cpucblk_dadd_frlr(), and cpucblk_dadd_lrlr().
pastix_fixdbl_t core_dlrmm | ( | core_dlrmm_t * | params | ) |
Compute the matrix matrix product when involved matrices are stored in a low-rank structure.
This function considers the generic matrix matrix product added to a third matric C. All matrices are either null, low-rank or full-rank.
[in,out] | params | The LRMM structure that stores all the parameters used in the LRMM functions family. |
Definition at line 278 of file core_dlrmm.c.
References core_dlrdbg_check_orthogonality(), core_dlrmm_Cfr(), core_dlrmm_Clr(), core_dlrmm_Cnull(), core_dlrmm_s::lwused, PASTE_CORE_DLRMM_PARAMS, PASTE_CORE_DLRMM_VOID, PastixCompressMethodSVD, PastixNoTrans, and core_dlrmm_s::work.
Referenced by core_dgemmsp_block_frlr(), core_dgemmsp_block_lrlr(), core_dgemmsp_fulllr(), core_dgemmsp_lr(), and core_dgemmsp_lrfr().