PaStiX Handbook  6.2.1
pastix_clrcores.h File Reference
#include "pastix_lowrank.h"

Go to the source code of this file.

Data Structures

struct  core_clrmm_s
 Structure to store all the parameters of the core_clrmm family functions. More...
 

Typedefs

PastixComplex32 main template to convert a full rank matrix to low-rank
typedef int(* core_crrqr_cp_t) (float tol, pastix_int_t maxrank, int refine, pastix_int_t nb, pastix_int_t m, pastix_int_t n, pastix_complex32_t *A, pastix_int_t lda, pastix_int_t *jpvt, pastix_complex32_t *tau, pastix_complex32_t *work, pastix_int_t lwork, float *rwork)
 
typedef int(* core_crrqr_rt_t) (float tol, pastix_int_t maxrank, pastix_int_t nb, pastix_int_t m, pastix_int_t n, pastix_complex32_t *A, pastix_int_t lda, pastix_complex32_t *tau, pastix_complex32_t *B, pastix_int_t ldb, pastix_complex32_t *tau_b, pastix_complex32_t *work, pastix_int_t lwork, float normA)
 

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...
 
PastixComplex32 low-rank kernels
void core_clralloc (pastix_int_t M, pastix_int_t N, pastix_int_t rkmax, pastix_lrblock_t *A)
 Allocate a low-rank matrix. More...
 
void core_clrfree (pastix_lrblock_t *A)
 Free a low-rank matrix. More...
 
int core_clrsze (int copy, pastix_int_t M, pastix_int_t N, pastix_lrblock_t *A, pastix_int_t newrk, pastix_int_t newrkmax, pastix_int_t rklimit)
 Resize a low-rank matrix. More...
 
int core_clr2ge (pastix_trans_t trans, pastix_int_t M, pastix_int_t N, const pastix_lrblock_t *Alr, pastix_complex32_t *A, pastix_int_t lda)
 Convert a low rank matrix into a dense matrix. More...
 
void core_clrcpy (const pastix_lr_t *lowrank, pastix_trans_t transA, pastix_complex32_t alpha, pastix_int_t M1, pastix_int_t N1, const pastix_lrblock_t *A, pastix_int_t M2, pastix_int_t N2, pastix_lrblock_t *B, pastix_int_t offx, pastix_int_t offy)
 Copy a small low-rank structure into a large one. More...
 
void core_clrconcatenate_u (pastix_complex32_t alpha, pastix_int_t M1, pastix_int_t N1, const pastix_lrblock_t *A, pastix_int_t M2, pastix_lrblock_t *B, pastix_int_t offx, pastix_complex32_t *u1u2)
 Concatenate left parts of two low-rank matrices. More...
 
void core_clrconcatenate_v (pastix_trans_t transA1, pastix_complex32_t alpha, pastix_int_t M1, pastix_int_t N1, const pastix_lrblock_t *A, pastix_int_t N2, pastix_lrblock_t *B, pastix_int_t offy, pastix_complex32_t *v1v2)
 Concatenate right parts of two low-rank matrices. More...
 
float core_clrnrm (pastix_normtype_t ntype, int transV, pastix_int_t M, pastix_int_t N, const pastix_lrblock_t *A)
 Compute the norm of a low-rank matrix. More...
 
size_t core_clrgetsize (pastix_int_t M, pastix_int_t N, pastix_lrblock_t *A)
 Compute the size of a block to send in LR. More...
 
char * core_clrpack (pastix_int_t M, pastix_int_t N, const pastix_lrblock_t *A, char *buffer)
 Pack low-rank data by side. More...
 
char * core_clrunpack (pastix_int_t M, pastix_int_t N, pastix_lrblock_t *A, char *buffer)
 Unpack low rank data and fill the cblk concerned by the computation. More...
 
const char * core_clrunpack2 (pastix_int_t M, pastix_int_t N, pastix_lrblock_t *A, const char *input, char **outptr)
 Unpack low rank data and fill the cblk concerned by the computation. 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...
 
PastixComplex32 SVD low-rank kernels
pastix_fixdbl_t core_cge2lr_svd (int use_reltol, pastix_fixdbl_t tol, pastix_int_t rklimit, pastix_int_t m, pastix_int_t n, const void *Avoid, pastix_int_t lda, pastix_lrblock_t *Alr)
 Convert a full rank matrix in a low rank matrix, using SVD. More...
 
pastix_fixdbl_t core_crradd_svd (const pastix_lr_t *lowrank, pastix_trans_t transA1, const void *alphaptr, pastix_int_t M1, pastix_int_t N1, const pastix_lrblock_t *A, pastix_int_t M2, pastix_int_t N2, pastix_lrblock_t *B, pastix_int_t offx, pastix_int_t offy)
 Add two LR structures A=(-u1) v1^T and B=u2 v2^T into u2 v2^T. More...
 
PastixComplex32 Rank Revealing QR kernels for low-rank
pastix_fixdbl_t core_cge2lr_pqrcp (int use_reltol, pastix_fixdbl_t tol, pastix_int_t rklimit, pastix_int_t m, pastix_int_t n, const void *Avoid, pastix_int_t lda, pastix_lrblock_t *Alr)
 Convert a full rank matrix in a low rank matrix, using PQRCP. More...
 
pastix_fixdbl_t core_crradd_pqrcp (const pastix_lr_t *lowrank, pastix_trans_t transA1, const void *alphaptr, pastix_int_t M1, pastix_int_t N1, const pastix_lrblock_t *A, pastix_int_t M2, pastix_int_t N2, pastix_lrblock_t *B, pastix_int_t offx, pastix_int_t offy)
 Add two LR structures A=(-u1) v1^T and B=u2 v2^T into u2 v2^T. More...
 
pastix_fixdbl_t core_cge2lr_rqrcp (int use_reltol, pastix_fixdbl_t tol, pastix_int_t rklimit, pastix_int_t m, pastix_int_t n, const void *Avoid, pastix_int_t lda, pastix_lrblock_t *Alr)
 Convert a full rank matrix in a low rank matrix, using RQRCP. More...
 
pastix_fixdbl_t core_crradd_rqrcp (const pastix_lr_t *lowrank, pastix_trans_t transA1, const void *alphaptr, pastix_int_t M1, pastix_int_t N1, const pastix_lrblock_t *A, pastix_int_t M2, pastix_int_t N2, pastix_lrblock_t *B, pastix_int_t offx, pastix_int_t offy)
 Add two LR structures A=(-u1) v1^T and B=u2 v2^T into u2 v2^T. More...
 
pastix_fixdbl_t core_cge2lr_tqrcp (int use_reltol, pastix_fixdbl_t tol, pastix_int_t rklimit, pastix_int_t m, pastix_int_t n, const void *Avoid, pastix_int_t lda, pastix_lrblock_t *Alr)
 Convert a full rank matrix in a low rank matrix, using TQRCP. More...
 
pastix_fixdbl_t core_crradd_tqrcp (const pastix_lr_t *lowrank, pastix_trans_t transA1, const void *alphaptr, pastix_int_t M1, pastix_int_t N1, const pastix_lrblock_t *A, pastix_int_t M2, pastix_int_t N2, pastix_lrblock_t *B, pastix_int_t offx, pastix_int_t offy)
 Add two LR structures A=(-u1) v1^T and B=u2 v2^T into u2 v2^T. More...
 
pastix_fixdbl_t core_cge2lr_rqrrt (int use_reltol, pastix_fixdbl_t tol, pastix_int_t rklimit, pastix_int_t m, pastix_int_t n, const void *Avoid, pastix_int_t lda, pastix_lrblock_t *Alr)
 Convert a full rank matrix in a low rank matrix, using RQRRT. More...
 
pastix_fixdbl_t core_cge2lr_qrcp (core_crrqr_cp_t rrqrfct, int use_reltol, pastix_fixdbl_t tol, pastix_int_t rklimit, pastix_int_t m, pastix_int_t n, const void *Avoid, pastix_int_t lda, pastix_lrblock_t *Alr)
 Template to convert a full rank matrix into a low rank matrix through QR decompositions. More...
 
pastix_fixdbl_t core_cge2lr_qrrt (core_crrqr_rt_t rrqrfct, int use_reltol, pastix_fixdbl_t tol, pastix_int_t rklimit, pastix_int_t m, pastix_int_t n, const void *Avoid, pastix_int_t lda, pastix_lrblock_t *Alr)
 Template to convert a full rank matrix into a low rank matrix through QR decompositions. More...
 
pastix_fixdbl_t core_crradd_qr (core_crrqr_cp_t rrqrfct, const pastix_lr_t *lowrank, pastix_trans_t transA1, const void *alphaptr, pastix_int_t M1, pastix_int_t N1, const pastix_lrblock_t *A, pastix_int_t M2, pastix_int_t N2, pastix_lrblock_t *B, pastix_int_t offx, pastix_int_t offy)
 Template to perform the addition of two low-rank structures with compression kernel based on QR decomposition. More...
 
PastixComplex32 low-rank debug functions
void core_clrdbg_printsvd (pastix_int_t M, pastix_int_t N, const pastix_complex32_t *A, pastix_int_t lda)
 Print the svd values of the given matrix. More...
 
int core_clrdbg_check_orthogonality (pastix_int_t M, pastix_int_t N, const pastix_complex32_t *A, pastix_int_t lda)
 Check the orthogonality of the matrix A. More...
 
int core_clrdbg_check_orthogonality_AB (pastix_int_t M, pastix_int_t NA, pastix_int_t NB, const pastix_complex32_t *A, pastix_int_t lda, const pastix_complex32_t *B, pastix_int_t ldb)
 Check the orthogonality of the matrix A relatively to the matrix B. More...
 

PastixComplex32 LRMM low-rank kernels

#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...
 
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...
 

Detailed Description

PaStiX kernel header.

Version
6.2.1
Author
Mathieu Faverge
Pierre Ramet
Xavier Lacoste
Esragul Korkmaz
Nolan Bredel
Date
2021-06-29
Generated arithmetic file\n from /builds/solverstack/pastix/kernels/pastix_zlrcores.h, normal z -> c, Tue Apr 12 09:38:27 2022

Definition in file pastix_clrcores.h.