PaStiX Handbook  6.3.2
pastix_slrcores.h File Reference
#include "pastix_lowrank.h"

Go to the source code of this file.

Data Structures

struct  core_slrmm_s
 Structure to store all the parameters of the core_slrmm family functions. More...
 

Typedefs

PastixFloat main template to convert a full rank matrix to low-rank
typedef int(* core_srrqr_cp_t) (float tol, pastix_int_t maxrank, int refine, pastix_int_t nb, pastix_int_t m, pastix_int_t n, float *A, pastix_int_t lda, pastix_int_t *jpvt, float *tau, float *work, pastix_int_t lwork, float *rwork)
 TODO.
 
typedef int(* core_srrqr_rt_t) (float tol, pastix_int_t maxrank, pastix_int_t nb, pastix_int_t m, pastix_int_t n, float *A, pastix_int_t lda, float *tau, float *B, pastix_int_t ldb, float *tau_b, float *work, pastix_int_t lwork, float normA)
 TODO.
 

Functions

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...
 
PastixFloat low-rank kernels
void core_slralloc (pastix_int_t M, pastix_int_t N, pastix_int_t rkmax, pastix_lrblock_t *A)
 Allocate a low-rank matrix. More...
 
void core_slrfree (pastix_lrblock_t *A)
 Free a low-rank matrix. More...
 
int core_slrsze (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_slr2ge (pastix_trans_t trans, pastix_int_t M, pastix_int_t N, const pastix_lrblock_t *Alr, float *A, pastix_int_t lda)
 Convert a low rank matrix into a dense matrix. More...
 
void core_slrcpy (const pastix_lr_t *lowrank, pastix_trans_t transA, float 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_slrconcatenate_u (float 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, float *u1u2)
 Concatenate left parts of two low-rank matrices. More...
 
void core_slrconcatenate_v (pastix_trans_t transA1, float 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, float *v1v2)
 Concatenate right parts of two low-rank matrices. More...
 
float core_slrnrm (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_slrgetsize (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_slrpack (pastix_int_t M, pastix_int_t N, const pastix_lrblock_t *A, char *buffer)
 Pack low-rank data by side. More...
 
char * core_slrunpack (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_slrunpack2 (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_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...
 
PastixFloat SVD low-rank kernels
pastix_fixdbl_t core_sge2lr_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_srradd_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...
 
PastixFloat Rank Revealing QR kernels for low-rank
pastix_fixdbl_t core_sge2lr_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_srradd_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_sge2lr_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_srradd_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_sge2lr_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_srradd_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_sge2lr_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_sge2lr_qrcp (core_srrqr_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_sge2lr_qrrt (core_srrqr_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_srradd_qr (core_srrqr_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...
 
PastixFloat low-rank debug functions
void core_slrdbg_printsvd (pastix_int_t M, pastix_int_t N, const float *A, pastix_int_t lda)
 Print the svd values of the given matrix. More...
 
int core_slrdbg_check_orthogonality (pastix_int_t M, pastix_int_t N, const float *A, pastix_int_t lda)
 Check the orthogonality of the matrix A. More...
 
int core_slrdbg_check_orthogonality_AB (pastix_int_t M, pastix_int_t NA, pastix_int_t NB, const float *A, pastix_int_t lda, const float *B, pastix_int_t ldb)
 Check the orthogonality of the matrix A relatively to the matrix B. More...
 

PastixFloat LRMM low-rank kernels

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

Detailed Description

PaStiX kernel header.

Version
6.3.2
Author
Mathieu Faverge
Pierre Ramet
Xavier Lacoste
Esragul Korkmaz
Nolan Bredel
Date
2023-07-21
Generated arithmetic file
from /builds/solverstack/pastix/kernels/pastix_zlrcores.h, normal z -> s, Wed Dec 13 12:09:04 2023

Definition in file pastix_slrcores.h.