PaStiX Handbook  6.2.1
Low-rank Rank-Revealing QR kernels

Modules

 Low-rank debug kernels
 

Variables

const pastix_lr_tcore_slrmm_s::lowrank
 
pastix_trans_t core_slrmm_s::transA
 
pastix_trans_t core_slrmm_s::transB
 
pastix_int_t core_slrmm_s::M
 
pastix_int_t core_slrmm_s::N
 
pastix_int_t core_slrmm_s::K
 
pastix_int_t core_slrmm_s::Cm
 
pastix_int_t core_slrmm_s::Cn
 
pastix_int_t core_slrmm_s::offx
 
pastix_int_t core_slrmm_s::offy
 
float core_slrmm_s::alpha
 
const pastix_lrblock_tcore_slrmm_s::A
 
const pastix_lrblock_tcore_slrmm_s::B
 
float core_slrmm_s::beta
 
pastix_lrblock_tcore_slrmm_s::C
 
float * core_slrmm_s::work
 
pastix_int_t core_slrmm_s::lwork
 
pastix_int_t core_slrmm_s::lwused
 
pastix_atomic_lock_t * core_slrmm_s::lock
 
const pastix_lr_tcore_dlrmm_s::lowrank
 
pastix_trans_t core_dlrmm_s::transA
 
pastix_trans_t core_dlrmm_s::transB
 
pastix_int_t core_dlrmm_s::M
 
pastix_int_t core_dlrmm_s::N
 
pastix_int_t core_dlrmm_s::K
 
pastix_int_t core_dlrmm_s::Cm
 
pastix_int_t core_dlrmm_s::Cn
 
pastix_int_t core_dlrmm_s::offx
 
pastix_int_t core_dlrmm_s::offy
 
double core_dlrmm_s::alpha
 
const pastix_lrblock_tcore_dlrmm_s::A
 
const pastix_lrblock_tcore_dlrmm_s::B
 
double core_dlrmm_s::beta
 
pastix_lrblock_tcore_dlrmm_s::C
 
double * core_dlrmm_s::work
 
pastix_int_t core_dlrmm_s::lwork
 
pastix_int_t core_dlrmm_s::lwused
 
pastix_atomic_lock_t * core_dlrmm_s::lock
 
const pastix_lr_tcore_clrmm_s::lowrank
 
pastix_trans_t core_clrmm_s::transA
 
pastix_trans_t core_clrmm_s::transB
 
pastix_int_t core_clrmm_s::M
 
pastix_int_t core_clrmm_s::N
 
pastix_int_t core_clrmm_s::K
 
pastix_int_t core_clrmm_s::Cm
 
pastix_int_t core_clrmm_s::Cn
 
pastix_int_t core_clrmm_s::offx
 
pastix_int_t core_clrmm_s::offy
 
pastix_complex32_t core_clrmm_s::alpha
 
const pastix_lrblock_tcore_clrmm_s::A
 
const pastix_lrblock_tcore_clrmm_s::B
 
pastix_complex32_t core_clrmm_s::beta
 
pastix_lrblock_tcore_clrmm_s::C
 
pastix_complex32_t * core_clrmm_s::work
 
pastix_int_t core_clrmm_s::lwork
 
pastix_int_t core_clrmm_s::lwused
 
pastix_atomic_lock_t * core_clrmm_s::lock
 
const pastix_lr_tcore_zlrmm_s::lowrank
 
pastix_trans_t core_zlrmm_s::transA
 
pastix_trans_t core_zlrmm_s::transB
 
pastix_int_t core_zlrmm_s::M
 
pastix_int_t core_zlrmm_s::N
 
pastix_int_t core_zlrmm_s::K
 
pastix_int_t core_zlrmm_s::Cm
 
pastix_int_t core_zlrmm_s::Cn
 
pastix_int_t core_zlrmm_s::offx
 
pastix_int_t core_zlrmm_s::offy
 
pastix_complex64_t core_zlrmm_s::alpha
 
const pastix_lrblock_tcore_zlrmm_s::A
 
const pastix_lrblock_tcore_zlrmm_s::B
 
pastix_complex64_t core_zlrmm_s::beta
 
pastix_lrblock_tcore_zlrmm_s::C
 
pastix_complex64_t * core_zlrmm_s::work
 
pastix_int_t core_zlrmm_s::lwork
 
pastix_int_t core_zlrmm_s::lwused
 
pastix_atomic_lock_t * core_zlrmm_s::lock
 

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)
 
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)
 

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

PastixDouble main template to convert a full rank matrix to low-rank

typedef int(* core_drrqr_cp_t) (double tol, pastix_int_t maxrank, int refine, pastix_int_t nb, pastix_int_t m, pastix_int_t n, double *A, pastix_int_t lda, pastix_int_t *jpvt, double *tau, double *work, pastix_int_t lwork, double *rwork)
 
typedef int(* core_drrqr_rt_t) (double tol, pastix_int_t maxrank, pastix_int_t nb, pastix_int_t m, pastix_int_t n, double *A, pastix_int_t lda, double *tau, double *B, pastix_int_t ldb, double *tau_b, double *work, pastix_int_t lwork, double normA)
 

PastixDouble Rank Revealing QR kernels for low-rank

pastix_fixdbl_t core_dge2lr_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_drradd_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_dge2lr_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_drradd_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_dge2lr_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_drradd_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_dge2lr_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_dge2lr_qrcp (core_drrqr_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_dge2lr_qrrt (core_drrqr_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_drradd_qr (core_drrqr_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 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)
 

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

PastixComplex64 main template to convert a full rank matrix to low-rank

typedef int(* core_zrrqr_cp_t) (double tol, pastix_int_t maxrank, int refine, pastix_int_t nb, pastix_int_t m, pastix_int_t n, pastix_complex64_t *A, pastix_int_t lda, pastix_int_t *jpvt, pastix_complex64_t *tau, pastix_complex64_t *work, pastix_int_t lwork, double *rwork)
 
typedef int(* core_zrrqr_rt_t) (double tol, pastix_int_t maxrank, pastix_int_t nb, pastix_int_t m, pastix_int_t n, pastix_complex64_t *A, pastix_int_t lda, pastix_complex64_t *tau, pastix_complex64_t *B, pastix_int_t ldb, pastix_complex64_t *tau_b, pastix_complex64_t *work, pastix_int_t lwork, double normA)
 

PastixComplex64 Rank Revealing QR kernels for low-rank

pastix_fixdbl_t core_zge2lr_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_zrradd_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_zge2lr_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_zrradd_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_zge2lr_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_zrradd_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_zge2lr_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_zge2lr_qrcp (core_zrrqr_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_zge2lr_qrrt (core_zrrqr_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_zrradd_qr (core_zrrqr_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...
 

Detailed Description

These are the rank-revealing QR implementations to generate the low-rank representations of a full rank matrix.

Function Documentation

◆ core_sge2lr_pqrcp()

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 *  A,
pastix_int_t  lda,
pastix_lrblock_t Alr 
)

Convert a full rank matrix in a low rank matrix, using PQRCP.

Parameters
[in]use_reltolDefines if the kernel should use relative tolerance (tol *||A||), or absolute tolerance (tol).
[in]tolThe tolerance used as a criterion to eliminate information from the full rank matrix
[in]rklimitThe maximum rank to store the matrix in low-rank format. If -1, set to min(m, n) / PASTIX_LR_MINRATIO.
[in]mNumber of rows of the matrix A, and of the low rank matrix Alr.
[in]nNumber of columns of the matrix A, and of the low rank matrix Alr.
[in]AThe matrix of dimension lda-by-n that needs to be compressed
[in]ldaThe leading dimension of the matrix A. lda >= max(1, m)
[out]AlrThe low rank matrix structure that will store the low rank representation of A

Definition at line 440 of file core_spqrcp.c.

References core_sge2lr_qrcp(), and core_spqrcp().

◆ core_srradd_pqrcp()

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.

u2v2^T - u1v1^T = (u2 u1) (v2 v1)^T Orthogonalize (u2 u1) = (u2, u1 - u2(u2^T u1)) * (I u2^T u1) (0 I ) Compute PQRCP decomposition of (I u2^T u1) * (v2 v1)^T (0 I )

Parameters
[in]lowrankThe structure with low-rank parameters.
[in]transA1
  • PastixNoTrans: No transpose, op( A ) = A;
  • PastixTrans: Transpose, op( A ) = A';
[in]alphaalpha * A is add to B
[in]M1The number of rows of the matrix A.
[in]N1The number of columns of the matrix A.
[in]AThe low-rank representation of the matrix A.
[in]M2The number of rows of the matrix B.
[in]N2The number of columns of the matrix B.
[in]BThe low-rank representation of the matrix B.
[in]offxThe horizontal offset of A with respect to B.
[in]offyThe vertical offset of A with respect to B.
Returns
The new rank of u2 v2^T or -1 if ranks are too large for recompression

Definition at line 504 of file core_spqrcp.c.

References core_spqrcp(), and core_srradd_qr().

◆ core_sge2lr_rqrcp()

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 *  A,
pastix_int_t  lda,
pastix_lrblock_t Alr 
)

Convert a full rank matrix in a low rank matrix, using RQRCP.

Parameters
[in]use_reltolDefines if the kernel should use relative tolerance (tol *||A||), or absolute tolerance (tol).
[in]tolThe tolerance used as a criterion to eliminate information from the full rank matrix
[in]rklimitThe maximum rank to store the matrix in low-rank format. If -1, set to min(m, n) / PASTIX_LR_MINRATIO.
[in]mNumber of rows of the matrix A, and of the low rank matrix Alr.
[in]nNumber of columns of the matrix A, and of the low rank matrix Alr.
[in]AThe matrix of dimension lda-by-n that needs to be compressed
[in]ldaThe leading dimension of the matrix A. lda >= max(1, m)
[out]AlrThe low rank matrix structure that will store the low rank representation of A

Definition at line 411 of file core_srqrcp.c.

References core_sge2lr_qrcp(), and core_srqrcp().

◆ core_srradd_rqrcp()

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.

u2v2^T - u1v1^T = (u2 u1) (v2 v1)^T Orthogonalize (u2 u1) = (u2, u1 - u2(u2^T u1)) * (I u2^T u1) (0 I ) Compute RQRCP decomposition of (I u2^T u1) * (v2 v1)^T (0 I )

Parameters
[in]lowrankThe structure with low-rank parameters.
[in]transA1
  • PastixNoTrans: No transpose, op( A ) = A;
  • PastixTrans: Transpose, op( A ) = A';
[in]alphaalpha * A is add to B
[in]M1The number of rows of the matrix A.
[in]N1The number of columns of the matrix A.
[in]AThe low-rank representation of the matrix A.
[in]M2The number of rows of the matrix B.
[in]N2The number of columns of the matrix B.
[in]BThe low-rank representation of the matrix B.
[in]offxThe horizontal offset of A with respect to B.
[in]offyThe vertical offset of A with respect to B.
Returns
The new rank of u2 v2^T or -1 if ranks are too large for recompression

Definition at line 474 of file core_srqrcp.c.

References core_srqrcp(), and core_srradd_qr().

◆ core_sge2lr_tqrcp()

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 *  A,
pastix_int_t  lda,
pastix_lrblock_t Alr 
)

Convert a full rank matrix in a low rank matrix, using TQRCP.

Parameters
[in]use_reltolDefines if the kernel should use relative tolerance (tol *||A||), or absolute tolerance (tol).
[in]tolThe tolerance used as a criterion to eliminate information from the full rank matrix
[in]rklimitThe maximum rank to store the matrix in low-rank format. If -1, set to min(m, n) / PASTIX_LR_MINRATIO.
[in]mNumber of rows of the matrix A, and of the low rank matrix Alr.
[in]nNumber of columns of the matrix A, and of the low rank matrix Alr.
[in]AThe matrix of dimension lda-by-n that needs to be compressed
[in]ldaThe leading dimension of the matrix A. lda >= max(1, m)
[out]AlrThe low rank matrix structure that will store the low rank representation of A

Definition at line 454 of file core_stqrcp.c.

References core_sge2lr_qrcp(), and core_stqrcp().

◆ core_srradd_tqrcp()

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.

u2v2^T - u1v1^T = (u2 u1) (v2 v1)^T Orthogonalize (u2 u1) = (u2, u1 - u2(u2^T u1)) * (I u2^T u1) (0 I ) Compute TQRCP decomposition of (I u2^T u1) * (v2 v1)^T (0 I )

Parameters
[in]lowrankThe structure with low-rank parameters.
[in]transA1
  • PastixNoTrans: No transpose, op( A ) = A;
  • PastixTrans: Transpose, op( A ) = A';
[in]alphaalpha * A is add to B
[in]M1The number of rows of the matrix A.
[in]N1The number of columns of the matrix A.
[in]AThe low-rank representation of the matrix A.
[in]M2The number of rows of the matrix B.
[in]N2The number of columns of the matrix B.
[in]BThe low-rank representation of the matrix B.
[in]offxThe horizontal offset of A with respect to B.
[in]offyThe vertical offset of A with respect to B.
Returns
The new rank of u2 v2^T or -1 if ranks are too large for recompression

Definition at line 518 of file core_stqrcp.c.

References core_srradd_qr(), and core_stqrcp().

◆ core_sge2lr_rqrrt()

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 *  A,
pastix_int_t  lda,
pastix_lrblock_t Alr 
)

Convert a full rank matrix in a low rank matrix, using RQRRT.

Parameters
[in]use_reltolDefines if the kernel should use relative tolerance (tol *||A||), or absolute tolerance (tol).
[in]tolThe tolerance used as a criterion to eliminate information from the full rank matrix
[in]rklimitThe maximum rank to store the matrix in low-rank format. If -1, set to min(m, n) / PASTIX_LR_MINRATIO.
[in]mNumber of rows of the matrix A, and of the low rank matrix Alr.
[in]nNumber of columns of the matrix A, and of the low rank matrix Alr.
[in]AThe matrix of dimension lda-by-n that needs to be compressed
[in]ldaThe leading dimension of the matrix A. lda >= max(1, m)
[out]AlrThe low rank matrix structure that will store the low rank representation of A

Definition at line 374 of file core_srqrrt.c.

References core_sge2lr_qrrt(), and core_srqrrt().

◆ core_sge2lr_qrcp()

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.

This version is only used when permutation method is used. Only difference from core_sge2lr_qrrt is the V calculation part, That is: Instead of applying inverse rotation on V, here inverse permutation is applied

Parameters
[in]rrqrfctQR decomposition function used to compute the rank revealing factorization and create the low-rank form of A.
[in]tolThe tolerance used as a criterion to eliminate information from the full rank matrix
[in]rklimitThe maximum rank to store the matrix in low-rank format. If -1, set to min(m, n) / PASTIX_LR_MINRATIO.
[in]mNumber of rows of the matrix A, and of the low rank matrix Alr.
[in]nNumber of columns of the matrix A, and of the low rank matrix Alr.
[in]AThe matrix of dimension lda-by-n that needs to be compressed
[in]ldaThe leading dimension of the matrix A. lda >= max(1, m)
[out]AlrThe low rank matrix structure that will store the low rank representation of A

Backup A into Acpy to try to compress

It was not interesting to compress, so we restore the dense version in Alr

We compute U and V

Definition at line 749 of file core_sgelrops.c.

Referenced by core_sge2lr_pqrcp(), core_sge2lr_rqrcp(), and core_sge2lr_tqrcp().

◆ core_sge2lr_qrrt()

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.

This version is only used when rotational method is used. Only difference from core_sge2lr_qr is the V calculation part, That is: Instead of applying inverse permutation on V, here inverse rotation is applied

Parameters
[in]rrqrfctQR decomposition function used to compute the rank revealing factorization and create the low-rank form of A.
[in]tolThe tolerance used as a criterion to eliminate information from the full rank matrix
[in]rklimitThe maximum rank to store the matrix in low-rank format. If -1, set to min(m, n) / PASTIX_LR_MINRATIO.
[in]mNumber of rows of the matrix A, and of the low rank matrix Alr.
[in]nNumber of columns of the matrix A, and of the low rank matrix Alr.
[in]AThe matrix of dimension lda-by-n that needs to be compressed
[in]ldaThe leading dimension of the matrix A. lda >= max(1, m)
[out]AlrThe low rank matrix structure that will store the low rank representation of A

Backup A into Acpy to try to compress

It was not interesting to compress, so we restore the dense version in Alr

We compute U and V

Definition at line 937 of file core_sgelrops.c.

Referenced by core_sge2lr_rqrrt().

◆ core_srradd_qr()

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.

Add two LR structures A=(-u1) v1^T and B=u2 v2^T into u2 v2^T

u2v2^T - u1v1^T = (u2 u1) (v2 v1)^T Orthogonalize (u2 u1) = (u2, u1 - u2(u2^T u1)) * (I u2^T u1) (0 I ) Compute Rank Revealing QR decomposition of (I u2^T u1) * (v2 v1)^T (0 I ) Any QR rank revealing kernel can be used for the recompression of the V part.

Parameters
[in]rrqrfctQR decomposition function used to compute the rank revealing factorization of the sum of the two low-rank matrices.
[in]lowrankThe structure with low-rank parameters.
[in]transA1
  • PastixNoTrans: No transpose, op( A ) = A;
  • PastixTrans: Transpose, op( A ) = A';
[in]alphaalpha * A is add to B
[in]M1The number of rows of the matrix A.
[in]N1The number of columns of the matrix A.
[in]AThe low-rank representation of the matrix A.
[in]M2The number of rows of the matrix B.
[in]N2The number of columns of the matrix B.
[in]BThe low-rank representation of the matrix B.
[in]offxThe horizontal offset of A with respect to B.
[in]offyThe vertical offset of A with respect to B.
Returns
The new rank of u2 v2^T or -1 if ranks are too large for recompression

In relative tolerance, we can choose two solutions: 1) The first one, more conservative, is to compress relatively to the norm of the final matrix [ \alpha A + B ]. In this kernel, we exploit the fact that the V part contains all the information while the U part is orthonormal, and compute it as follow:

float norm = LAPACKE_slange_work( LAPACK_COL_MAJOR, 'f', rank, N, v1v2, ldv, NULL ); tol = tol * norm;

2) The second solution, less conservative, will allow to reduce the rank more efficiently. Since A and B have been compressed relatively to their respective norms, there is no reason to compress the sum relatively to its own norm, but it is more reasonable to compress it relatively to the norm of A and B. For example, A-B would be full with the first criterion, and rank null with the second. Note that here, we can only have an estimation that once again reduces the conservation of the criterion. || \alpha A + B || <= |\alpha| ||A|| + ||B|| <= |\alpha| ||U_aV_a|| + ||U_bV_b||

Definition at line 1174 of file core_sgelrops.c.

Referenced by core_srradd_pqrcp(), core_srradd_rqrcp(), and core_srradd_tqrcp().

◆ core_dge2lr_pqrcp()

pastix_fixdbl_t core_dge2lr_pqrcp ( int  use_reltol,
pastix_fixdbl_t  tol,
pastix_int_t  rklimit,
pastix_int_t  m,
pastix_int_t  n,
const void *  A,
pastix_int_t  lda,
pastix_lrblock_t Alr 
)

Convert a full rank matrix in a low rank matrix, using PQRCP.

Parameters
[in]use_reltolDefines if the kernel should use relative tolerance (tol *||A||), or absolute tolerance (tol).
[in]tolThe tolerance used as a criterion to eliminate information from the full rank matrix
[in]rklimitThe maximum rank to store the matrix in low-rank format. If -1, set to min(m, n) / PASTIX_LR_MINRATIO.
[in]mNumber of rows of the matrix A, and of the low rank matrix Alr.
[in]nNumber of columns of the matrix A, and of the low rank matrix Alr.
[in]AThe matrix of dimension lda-by-n that needs to be compressed
[in]ldaThe leading dimension of the matrix A. lda >= max(1, m)
[out]AlrThe low rank matrix structure that will store the low rank representation of A

Definition at line 440 of file core_dpqrcp.c.

References core_dge2lr_qrcp(), and core_dpqrcp().

◆ core_drradd_pqrcp()

pastix_fixdbl_t core_drradd_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.

u2v2^T - u1v1^T = (u2 u1) (v2 v1)^T Orthogonalize (u2 u1) = (u2, u1 - u2(u2^T u1)) * (I u2^T u1) (0 I ) Compute PQRCP decomposition of (I u2^T u1) * (v2 v1)^T (0 I )

Parameters
[in]lowrankThe structure with low-rank parameters.
[in]transA1
  • PastixNoTrans: No transpose, op( A ) = A;
  • PastixTrans: Transpose, op( A ) = A';
[in]alphaalpha * A is add to B
[in]M1The number of rows of the matrix A.
[in]N1The number of columns of the matrix A.
[in]AThe low-rank representation of the matrix A.
[in]M2The number of rows of the matrix B.
[in]N2The number of columns of the matrix B.
[in]BThe low-rank representation of the matrix B.
[in]offxThe horizontal offset of A with respect to B.
[in]offyThe vertical offset of A with respect to B.
Returns
The new rank of u2 v2^T or -1 if ranks are too large for recompression

Definition at line 504 of file core_dpqrcp.c.

References core_dpqrcp(), and core_drradd_qr().

◆ core_dge2lr_rqrcp()

pastix_fixdbl_t core_dge2lr_rqrcp ( int  use_reltol,
pastix_fixdbl_t  tol,
pastix_int_t  rklimit,
pastix_int_t  m,
pastix_int_t  n,
const void *  A,
pastix_int_t  lda,
pastix_lrblock_t Alr 
)

Convert a full rank matrix in a low rank matrix, using RQRCP.

Parameters
[in]use_reltolDefines if the kernel should use relative tolerance (tol *||A||), or absolute tolerance (tol).
[in]tolThe tolerance used as a criterion to eliminate information from the full rank matrix
[in]rklimitThe maximum rank to store the matrix in low-rank format. If -1, set to min(m, n) / PASTIX_LR_MINRATIO.
[in]mNumber of rows of the matrix A, and of the low rank matrix Alr.
[in]nNumber of columns of the matrix A, and of the low rank matrix Alr.
[in]AThe matrix of dimension lda-by-n that needs to be compressed
[in]ldaThe leading dimension of the matrix A. lda >= max(1, m)
[out]AlrThe low rank matrix structure that will store the low rank representation of A

Definition at line 411 of file core_drqrcp.c.

References core_dge2lr_qrcp(), and core_drqrcp().

◆ core_drradd_rqrcp()

pastix_fixdbl_t core_drradd_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.

u2v2^T - u1v1^T = (u2 u1) (v2 v1)^T Orthogonalize (u2 u1) = (u2, u1 - u2(u2^T u1)) * (I u2^T u1) (0 I ) Compute RQRCP decomposition of (I u2^T u1) * (v2 v1)^T (0 I )

Parameters
[in]lowrankThe structure with low-rank parameters.
[in]transA1
  • PastixNoTrans: No transpose, op( A ) = A;
  • PastixTrans: Transpose, op( A ) = A';
[in]alphaalpha * A is add to B
[in]M1The number of rows of the matrix A.
[in]N1The number of columns of the matrix A.
[in]AThe low-rank representation of the matrix A.
[in]M2The number of rows of the matrix B.
[in]N2The number of columns of the matrix B.
[in]BThe low-rank representation of the matrix B.
[in]offxThe horizontal offset of A with respect to B.
[in]offyThe vertical offset of A with respect to B.
Returns
The new rank of u2 v2^T or -1 if ranks are too large for recompression

Definition at line 474 of file core_drqrcp.c.

References core_drqrcp(), and core_drradd_qr().

◆ core_dge2lr_tqrcp()

pastix_fixdbl_t core_dge2lr_tqrcp ( int  use_reltol,
pastix_fixdbl_t  tol,
pastix_int_t  rklimit,
pastix_int_t  m,
pastix_int_t  n,
const void *  A,
pastix_int_t  lda,
pastix_lrblock_t Alr 
)

Convert a full rank matrix in a low rank matrix, using TQRCP.

Parameters
[in]use_reltolDefines if the kernel should use relative tolerance (tol *||A||), or absolute tolerance (tol).
[in]tolThe tolerance used as a criterion to eliminate information from the full rank matrix
[in]rklimitThe maximum rank to store the matrix in low-rank format. If -1, set to min(m, n) / PASTIX_LR_MINRATIO.
[in]mNumber of rows of the matrix A, and of the low rank matrix Alr.
[in]nNumber of columns of the matrix A, and of the low rank matrix Alr.
[in]AThe matrix of dimension lda-by-n that needs to be compressed
[in]ldaThe leading dimension of the matrix A. lda >= max(1, m)
[out]AlrThe low rank matrix structure that will store the low rank representation of A

Definition at line 454 of file core_dtqrcp.c.

References core_dge2lr_qrcp(), and core_dtqrcp().

◆ core_drradd_tqrcp()

pastix_fixdbl_t core_drradd_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.

u2v2^T - u1v1^T = (u2 u1) (v2 v1)^T Orthogonalize (u2 u1) = (u2, u1 - u2(u2^T u1)) * (I u2^T u1) (0 I ) Compute TQRCP decomposition of (I u2^T u1) * (v2 v1)^T (0 I )

Parameters
[in]lowrankThe structure with low-rank parameters.
[in]transA1
  • PastixNoTrans: No transpose, op( A ) = A;
  • PastixTrans: Transpose, op( A ) = A';
[in]alphaalpha * A is add to B
[in]M1The number of rows of the matrix A.
[in]N1The number of columns of the matrix A.
[in]AThe low-rank representation of the matrix A.
[in]M2The number of rows of the matrix B.
[in]N2The number of columns of the matrix B.
[in]BThe low-rank representation of the matrix B.
[in]offxThe horizontal offset of A with respect to B.
[in]offyThe vertical offset of A with respect to B.
Returns
The new rank of u2 v2^T or -1 if ranks are too large for recompression

Definition at line 518 of file core_dtqrcp.c.

References core_drradd_qr(), and core_dtqrcp().

◆ core_dge2lr_rqrrt()

pastix_fixdbl_t core_dge2lr_rqrrt ( int  use_reltol,
pastix_fixdbl_t  tol,
pastix_int_t  rklimit,
pastix_int_t  m,
pastix_int_t  n,
const void *  A,
pastix_int_t  lda,
pastix_lrblock_t Alr 
)

Convert a full rank matrix in a low rank matrix, using RQRRT.

Parameters
[in]use_reltolDefines if the kernel should use relative tolerance (tol *||A||), or absolute tolerance (tol).
[in]tolThe tolerance used as a criterion to eliminate information from the full rank matrix
[in]rklimitThe maximum rank to store the matrix in low-rank format. If -1, set to min(m, n) / PASTIX_LR_MINRATIO.
[in]mNumber of rows of the matrix A, and of the low rank matrix Alr.
[in]nNumber of columns of the matrix A, and of the low rank matrix Alr.
[in]AThe matrix of dimension lda-by-n that needs to be compressed
[in]ldaThe leading dimension of the matrix A. lda >= max(1, m)
[out]AlrThe low rank matrix structure that will store the low rank representation of A

Definition at line 374 of file core_drqrrt.c.

References core_dge2lr_qrrt(), and core_drqrrt().

◆ core_dge2lr_qrcp()

pastix_fixdbl_t core_dge2lr_qrcp ( core_drrqr_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.

This version is only used when permutation method is used. Only difference from core_dge2lr_qrrt is the V calculation part, That is: Instead of applying inverse rotation on V, here inverse permutation is applied

Parameters
[in]rrqrfctQR decomposition function used to compute the rank revealing factorization and create the low-rank form of A.
[in]tolThe tolerance used as a criterion to eliminate information from the full rank matrix
[in]rklimitThe maximum rank to store the matrix in low-rank format. If -1, set to min(m, n) / PASTIX_LR_MINRATIO.
[in]mNumber of rows of the matrix A, and of the low rank matrix Alr.
[in]nNumber of columns of the matrix A, and of the low rank matrix Alr.
[in]AThe matrix of dimension lda-by-n that needs to be compressed
[in]ldaThe leading dimension of the matrix A. lda >= max(1, m)
[out]AlrThe low rank matrix structure that will store the low rank representation of A

Backup A into Acpy to try to compress

It was not interesting to compress, so we restore the dense version in Alr

We compute U and V

Definition at line 749 of file core_dgelrops.c.

Referenced by core_dge2lr_pqrcp(), core_dge2lr_rqrcp(), and core_dge2lr_tqrcp().

◆ core_dge2lr_qrrt()

pastix_fixdbl_t core_dge2lr_qrrt ( core_drrqr_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.

This version is only used when rotational method is used. Only difference from core_dge2lr_qr is the V calculation part, That is: Instead of applying inverse permutation on V, here inverse rotation is applied

Parameters
[in]rrqrfctQR decomposition function used to compute the rank revealing factorization and create the low-rank form of A.
[in]tolThe tolerance used as a criterion to eliminate information from the full rank matrix
[in]rklimitThe maximum rank to store the matrix in low-rank format. If -1, set to min(m, n) / PASTIX_LR_MINRATIO.
[in]mNumber of rows of the matrix A, and of the low rank matrix Alr.
[in]nNumber of columns of the matrix A, and of the low rank matrix Alr.
[in]AThe matrix of dimension lda-by-n that needs to be compressed
[in]ldaThe leading dimension of the matrix A. lda >= max(1, m)
[out]AlrThe low rank matrix structure that will store the low rank representation of A

Backup A into Acpy to try to compress

It was not interesting to compress, so we restore the dense version in Alr

We compute U and V

Definition at line 937 of file core_dgelrops.c.

Referenced by core_dge2lr_rqrrt().

◆ core_drradd_qr()

pastix_fixdbl_t core_drradd_qr ( core_drrqr_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.

Add two LR structures A=(-u1) v1^T and B=u2 v2^T into u2 v2^T

u2v2^T - u1v1^T = (u2 u1) (v2 v1)^T Orthogonalize (u2 u1) = (u2, u1 - u2(u2^T u1)) * (I u2^T u1) (0 I ) Compute Rank Revealing QR decomposition of (I u2^T u1) * (v2 v1)^T (0 I ) Any QR rank revealing kernel can be used for the recompression of the V part.

Parameters
[in]rrqrfctQR decomposition function used to compute the rank revealing factorization of the sum of the two low-rank matrices.
[in]lowrankThe structure with low-rank parameters.
[in]transA1
  • PastixNoTrans: No transpose, op( A ) = A;
  • PastixTrans: Transpose, op( A ) = A';
[in]alphaalpha * A is add to B
[in]M1The number of rows of the matrix A.
[in]N1The number of columns of the matrix A.
[in]AThe low-rank representation of the matrix A.
[in]M2The number of rows of the matrix B.
[in]N2The number of columns of the matrix B.
[in]BThe low-rank representation of the matrix B.
[in]offxThe horizontal offset of A with respect to B.
[in]offyThe vertical offset of A with respect to B.
Returns
The new rank of u2 v2^T or -1 if ranks are too large for recompression

In relative tolerance, we can choose two solutions: 1) The first one, more conservative, is to compress relatively to the norm of the final matrix [ \alpha A + B ]. In this kernel, we exploit the fact that the V part contains all the information while the U part is orthonormal, and compute it as follow:

double norm = LAPACKE_dlange_work( LAPACK_COL_MAJOR, 'f', rank, N, v1v2, ldv, NULL ); tol = tol * norm;

2) The second solution, less conservative, will allow to reduce the rank more efficiently. Since A and B have been compressed relatively to their respective norms, there is no reason to compress the sum relatively to its own norm, but it is more reasonable to compress it relatively to the norm of A and B. For example, A-B would be full with the first criterion, and rank null with the second. Note that here, we can only have an estimation that once again reduces the conservation of the criterion. || \alpha A + B || <= |\alpha| ||A|| + ||B|| <= |\alpha| ||U_aV_a|| + ||U_bV_b||

Definition at line 1174 of file core_dgelrops.c.

Referenced by core_drradd_pqrcp(), core_drradd_rqrcp(), and core_drradd_tqrcp().

◆ core_cge2lr_pqrcp()

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 *  A,
pastix_int_t  lda,
pastix_lrblock_t Alr 
)

Convert a full rank matrix in a low rank matrix, using PQRCP.

Parameters
[in]use_reltolDefines if the kernel should use relative tolerance (tol *||A||), or absolute tolerance (tol).
[in]tolThe tolerance used as a criterion to eliminate information from the full rank matrix
[in]rklimitThe maximum rank to store the matrix in low-rank format. If -1, set to min(m, n) / PASTIX_LR_MINRATIO.
[in]mNumber of rows of the matrix A, and of the low rank matrix Alr.
[in]nNumber of columns of the matrix A, and of the low rank matrix Alr.
[in]AThe matrix of dimension lda-by-n that needs to be compressed
[in]ldaThe leading dimension of the matrix A. lda >= max(1, m)
[out]AlrThe low rank matrix structure that will store the low rank representation of A

Definition at line 440 of file core_cpqrcp.c.

References core_cge2lr_qrcp(), and core_cpqrcp().

◆ core_crradd_pqrcp()

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.

u2v2^T - u1v1^T = (u2 u1) (v2 v1)^T Orthogonalize (u2 u1) = (u2, u1 - u2(u2^T u1)) * (I u2^T u1) (0 I ) Compute PQRCP decomposition of (I u2^T u1) * (v2 v1)^T (0 I )

Parameters
[in]lowrankThe structure with low-rank parameters.
[in]transA1
  • PastixNoTrans: No transpose, op( A ) = A;
  • PastixTrans: Transpose, op( A ) = A';
[in]alphaalpha * A is add to B
[in]M1The number of rows of the matrix A.
[in]N1The number of columns of the matrix A.
[in]AThe low-rank representation of the matrix A.
[in]M2The number of rows of the matrix B.
[in]N2The number of columns of the matrix B.
[in]BThe low-rank representation of the matrix B.
[in]offxThe horizontal offset of A with respect to B.
[in]offyThe vertical offset of A with respect to B.
Returns
The new rank of u2 v2^T or -1 if ranks are too large for recompression

Definition at line 504 of file core_cpqrcp.c.

References core_cpqrcp(), and core_crradd_qr().

◆ core_cge2lr_rqrcp()

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 *  A,
pastix_int_t  lda,
pastix_lrblock_t Alr 
)

Convert a full rank matrix in a low rank matrix, using RQRCP.

Parameters
[in]use_reltolDefines if the kernel should use relative tolerance (tol *||A||), or absolute tolerance (tol).
[in]tolThe tolerance used as a criterion to eliminate information from the full rank matrix
[in]rklimitThe maximum rank to store the matrix in low-rank format. If -1, set to min(m, n) / PASTIX_LR_MINRATIO.
[in]mNumber of rows of the matrix A, and of the low rank matrix Alr.
[in]nNumber of columns of the matrix A, and of the low rank matrix Alr.
[in]AThe matrix of dimension lda-by-n that needs to be compressed
[in]ldaThe leading dimension of the matrix A. lda >= max(1, m)
[out]AlrThe low rank matrix structure that will store the low rank representation of A

Definition at line 411 of file core_crqrcp.c.

References core_cge2lr_qrcp(), and core_crqrcp().

◆ core_crradd_rqrcp()

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.

u2v2^T - u1v1^T = (u2 u1) (v2 v1)^T Orthogonalize (u2 u1) = (u2, u1 - u2(u2^T u1)) * (I u2^T u1) (0 I ) Compute RQRCP decomposition of (I u2^T u1) * (v2 v1)^T (0 I )

Parameters
[in]lowrankThe structure with low-rank parameters.
[in]transA1
  • PastixNoTrans: No transpose, op( A ) = A;
  • PastixTrans: Transpose, op( A ) = A';
[in]alphaalpha * A is add to B
[in]M1The number of rows of the matrix A.
[in]N1The number of columns of the matrix A.
[in]AThe low-rank representation of the matrix A.
[in]M2The number of rows of the matrix B.
[in]N2The number of columns of the matrix B.
[in]BThe low-rank representation of the matrix B.
[in]offxThe horizontal offset of A with respect to B.
[in]offyThe vertical offset of A with respect to B.
Returns
The new rank of u2 v2^T or -1 if ranks are too large for recompression

Definition at line 474 of file core_crqrcp.c.

References core_crqrcp(), and core_crradd_qr().

◆ core_cge2lr_tqrcp()

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 *  A,
pastix_int_t  lda,
pastix_lrblock_t Alr 
)

Convert a full rank matrix in a low rank matrix, using TQRCP.

Parameters
[in]use_reltolDefines if the kernel should use relative tolerance (tol *||A||), or absolute tolerance (tol).
[in]tolThe tolerance used as a criterion to eliminate information from the full rank matrix
[in]rklimitThe maximum rank to store the matrix in low-rank format. If -1, set to min(m, n) / PASTIX_LR_MINRATIO.
[in]mNumber of rows of the matrix A, and of the low rank matrix Alr.
[in]nNumber of columns of the matrix A, and of the low rank matrix Alr.
[in]AThe matrix of dimension lda-by-n that needs to be compressed
[in]ldaThe leading dimension of the matrix A. lda >= max(1, m)
[out]AlrThe low rank matrix structure that will store the low rank representation of A

Definition at line 454 of file core_ctqrcp.c.

References core_cge2lr_qrcp(), and core_ctqrcp().

◆ core_crradd_tqrcp()

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.

u2v2^T - u1v1^T = (u2 u1) (v2 v1)^T Orthogonalize (u2 u1) = (u2, u1 - u2(u2^T u1)) * (I u2^T u1) (0 I ) Compute TQRCP decomposition of (I u2^T u1) * (v2 v1)^T (0 I )

Parameters
[in]lowrankThe structure with low-rank parameters.
[in]transA1
  • PastixNoTrans: No transpose, op( A ) = A;
  • PastixTrans: Transpose, op( A ) = A';
[in]alphaalpha * A is add to B
[in]M1The number of rows of the matrix A.
[in]N1The number of columns of the matrix A.
[in]AThe low-rank representation of the matrix A.
[in]M2The number of rows of the matrix B.
[in]N2The number of columns of the matrix B.
[in]BThe low-rank representation of the matrix B.
[in]offxThe horizontal offset of A with respect to B.
[in]offyThe vertical offset of A with respect to B.
Returns
The new rank of u2 v2^T or -1 if ranks are too large for recompression

Definition at line 518 of file core_ctqrcp.c.

References core_crradd_qr(), and core_ctqrcp().

◆ core_cge2lr_rqrrt()

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 *  A,
pastix_int_t  lda,
pastix_lrblock_t Alr 
)

Convert a full rank matrix in a low rank matrix, using RQRRT.

Parameters
[in]use_reltolDefines if the kernel should use relative tolerance (tol *||A||), or absolute tolerance (tol).
[in]tolThe tolerance used as a criterion to eliminate information from the full rank matrix
[in]rklimitThe maximum rank to store the matrix in low-rank format. If -1, set to min(m, n) / PASTIX_LR_MINRATIO.
[in]mNumber of rows of the matrix A, and of the low rank matrix Alr.
[in]nNumber of columns of the matrix A, and of the low rank matrix Alr.
[in]AThe matrix of dimension lda-by-n that needs to be compressed
[in]ldaThe leading dimension of the matrix A. lda >= max(1, m)
[out]AlrThe low rank matrix structure that will store the low rank representation of A

Definition at line 374 of file core_crqrrt.c.

References core_cge2lr_qrrt(), and core_crqrrt().

◆ core_cge2lr_qrcp()

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.

This version is only used when permutation method is used. Only difference from core_cge2lr_qrrt is the V calculation part, That is: Instead of applying inverse rotation on V, here inverse permutation is applied

Parameters
[in]rrqrfctQR decomposition function used to compute the rank revealing factorization and create the low-rank form of A.
[in]tolThe tolerance used as a criterion to eliminate information from the full rank matrix
[in]rklimitThe maximum rank to store the matrix in low-rank format. If -1, set to min(m, n) / PASTIX_LR_MINRATIO.
[in]mNumber of rows of the matrix A, and of the low rank matrix Alr.
[in]nNumber of columns of the matrix A, and of the low rank matrix Alr.
[in]AThe matrix of dimension lda-by-n that needs to be compressed
[in]ldaThe leading dimension of the matrix A. lda >= max(1, m)
[out]AlrThe low rank matrix structure that will store the low rank representation of A

Backup A into Acpy to try to compress

It was not interesting to compress, so we restore the dense version in Alr

We compute U and V

Definition at line 749 of file core_cgelrops.c.

Referenced by core_cge2lr_pqrcp(), core_cge2lr_rqrcp(), and core_cge2lr_tqrcp().

◆ core_cge2lr_qrrt()

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.

This version is only used when rotational method is used. Only difference from core_cge2lr_qr is the V calculation part, That is: Instead of applying inverse permutation on V, here inverse rotation is applied

Parameters
[in]rrqrfctQR decomposition function used to compute the rank revealing factorization and create the low-rank form of A.
[in]tolThe tolerance used as a criterion to eliminate information from the full rank matrix
[in]rklimitThe maximum rank to store the matrix in low-rank format. If -1, set to min(m, n) / PASTIX_LR_MINRATIO.
[in]mNumber of rows of the matrix A, and of the low rank matrix Alr.
[in]nNumber of columns of the matrix A, and of the low rank matrix Alr.
[in]AThe matrix of dimension lda-by-n that needs to be compressed
[in]ldaThe leading dimension of the matrix A. lda >= max(1, m)
[out]AlrThe low rank matrix structure that will store the low rank representation of A

Backup A into Acpy to try to compress

It was not interesting to compress, so we restore the dense version in Alr

We compute U and V

Definition at line 937 of file core_cgelrops.c.

Referenced by core_cge2lr_rqrrt().

◆ core_crradd_qr()

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.

Add two LR structures A=(-u1) v1^T and B=u2 v2^T into u2 v2^T

u2v2^T - u1v1^T = (u2 u1) (v2 v1)^T Orthogonalize (u2 u1) = (u2, u1 - u2(u2^T u1)) * (I u2^T u1) (0 I ) Compute Rank Revealing QR decomposition of (I u2^T u1) * (v2 v1)^T (0 I ) Any QR rank revealing kernel can be used for the recompression of the V part.

Parameters
[in]rrqrfctQR decomposition function used to compute the rank revealing factorization of the sum of the two low-rank matrices.
[in]lowrankThe structure with low-rank parameters.
[in]transA1
  • PastixNoTrans: No transpose, op( A ) = A;
  • PastixTrans: Transpose, op( A ) = A';
[in]alphaalpha * A is add to B
[in]M1The number of rows of the matrix A.
[in]N1The number of columns of the matrix A.
[in]AThe low-rank representation of the matrix A.
[in]M2The number of rows of the matrix B.
[in]N2The number of columns of the matrix B.
[in]BThe low-rank representation of the matrix B.
[in]offxThe horizontal offset of A with respect to B.
[in]offyThe vertical offset of A with respect to B.
Returns
The new rank of u2 v2^T or -1 if ranks are too large for recompression

In relative tolerance, we can choose two solutions: 1) The first one, more conservative, is to compress relatively to the norm of the final matrix [ \alpha A + B ]. In this kernel, we exploit the fact that the V part contains all the information while the U part is orthonormal, and compute it as follow:

float norm = LAPACKE_clange_work( LAPACK_COL_MAJOR, 'f', rank, N, v1v2, ldv, NULL ); tol = tol * norm;

2) The second solution, less conservative, will allow to reduce the rank more efficiently. Since A and B have been compressed relatively to their respective norms, there is no reason to compress the sum relatively to its own norm, but it is more reasonable to compress it relatively to the norm of A and B. For example, A-B would be full with the first criterion, and rank null with the second. Note that here, we can only have an estimation that once again reduces the conservation of the criterion. || \alpha A + B || <= |\alpha| ||A|| + ||B|| <= |\alpha| ||U_aV_a|| + ||U_bV_b||

Definition at line 1174 of file core_cgelrops.c.

Referenced by core_crradd_pqrcp(), core_crradd_rqrcp(), and core_crradd_tqrcp().

◆ core_zge2lr_pqrcp()

pastix_fixdbl_t core_zge2lr_pqrcp ( int  use_reltol,
pastix_fixdbl_t  tol,
pastix_int_t  rklimit,
pastix_int_t  m,
pastix_int_t  n,
const void *  A,
pastix_int_t  lda,
pastix_lrblock_t Alr 
)

Convert a full rank matrix in a low rank matrix, using PQRCP.

Parameters
[in]use_reltolDefines if the kernel should use relative tolerance (tol *||A||), or absolute tolerance (tol).
[in]tolThe tolerance used as a criterion to eliminate information from the full rank matrix
[in]rklimitThe maximum rank to store the matrix in low-rank format. If -1, set to min(m, n) / PASTIX_LR_MINRATIO.
[in]mNumber of rows of the matrix A, and of the low rank matrix Alr.
[in]nNumber of columns of the matrix A, and of the low rank matrix Alr.
[in]AThe matrix of dimension lda-by-n that needs to be compressed
[in]ldaThe leading dimension of the matrix A. lda >= max(1, m)
[out]AlrThe low rank matrix structure that will store the low rank representation of A

Definition at line 440 of file core_zpqrcp.c.

References core_zge2lr_qrcp(), and core_zpqrcp().

◆ core_zrradd_pqrcp()

pastix_fixdbl_t core_zrradd_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.

u2v2^T - u1v1^T = (u2 u1) (v2 v1)^T Orthogonalize (u2 u1) = (u2, u1 - u2(u2^T u1)) * (I u2^T u1) (0 I ) Compute PQRCP decomposition of (I u2^T u1) * (v2 v1)^T (0 I )

Parameters
[in]lowrankThe structure with low-rank parameters.
[in]transA1
  • PastixNoTrans: No transpose, op( A ) = A;
  • PastixTrans: Transpose, op( A ) = A';
[in]alphaalpha * A is add to B
[in]M1The number of rows of the matrix A.
[in]N1The number of columns of the matrix A.
[in]AThe low-rank representation of the matrix A.
[in]M2The number of rows of the matrix B.
[in]N2The number of columns of the matrix B.
[in]BThe low-rank representation of the matrix B.
[in]offxThe horizontal offset of A with respect to B.
[in]offyThe vertical offset of A with respect to B.
Returns
The new rank of u2 v2^T or -1 if ranks are too large for recompression

Definition at line 504 of file core_zpqrcp.c.

References core_zpqrcp(), and core_zrradd_qr().

◆ core_zge2lr_rqrcp()

pastix_fixdbl_t core_zge2lr_rqrcp ( int  use_reltol,
pastix_fixdbl_t  tol,
pastix_int_t  rklimit,
pastix_int_t  m,
pastix_int_t  n,
const void *  A,
pastix_int_t  lda,
pastix_lrblock_t Alr 
)

Convert a full rank matrix in a low rank matrix, using RQRCP.

Parameters
[in]use_reltolDefines if the kernel should use relative tolerance (tol *||A||), or absolute tolerance (tol).
[in]tolThe tolerance used as a criterion to eliminate information from the full rank matrix
[in]rklimitThe maximum rank to store the matrix in low-rank format. If -1, set to min(m, n) / PASTIX_LR_MINRATIO.
[in]mNumber of rows of the matrix A, and of the low rank matrix Alr.
[in]nNumber of columns of the matrix A, and of the low rank matrix Alr.
[in]AThe matrix of dimension lda-by-n that needs to be compressed
[in]ldaThe leading dimension of the matrix A. lda >= max(1, m)
[out]AlrThe low rank matrix structure that will store the low rank representation of A

Definition at line 411 of file core_zrqrcp.c.

References core_zge2lr_qrcp(), and core_zrqrcp().

◆ core_zrradd_rqrcp()

pastix_fixdbl_t core_zrradd_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.

u2v2^T - u1v1^T = (u2 u1) (v2 v1)^T Orthogonalize (u2 u1) = (u2, u1 - u2(u2^T u1)) * (I u2^T u1) (0 I ) Compute RQRCP decomposition of (I u2^T u1) * (v2 v1)^T (0 I )

Parameters
[in]lowrankThe structure with low-rank parameters.
[in]transA1
  • PastixNoTrans: No transpose, op( A ) = A;
  • PastixTrans: Transpose, op( A ) = A';
[in]alphaalpha * A is add to B
[in]M1The number of rows of the matrix A.
[in]N1The number of columns of the matrix A.
[in]AThe low-rank representation of the matrix A.
[in]M2The number of rows of the matrix B.
[in]N2The number of columns of the matrix B.
[in]BThe low-rank representation of the matrix B.
[in]offxThe horizontal offset of A with respect to B.
[in]offyThe vertical offset of A with respect to B.
Returns
The new rank of u2 v2^T or -1 if ranks are too large for recompression

Definition at line 474 of file core_zrqrcp.c.

References core_zrqrcp(), and core_zrradd_qr().

◆ core_zge2lr_tqrcp()

pastix_fixdbl_t core_zge2lr_tqrcp ( int  use_reltol,
pastix_fixdbl_t  tol,
pastix_int_t  rklimit,
pastix_int_t  m,
pastix_int_t  n,
const void *  A,
pastix_int_t  lda,
pastix_lrblock_t Alr 
)

Convert a full rank matrix in a low rank matrix, using TQRCP.

Parameters
[in]use_reltolDefines if the kernel should use relative tolerance (tol *||A||), or absolute tolerance (tol).
[in]tolThe tolerance used as a criterion to eliminate information from the full rank matrix
[in]rklimitThe maximum rank to store the matrix in low-rank format. If -1, set to min(m, n) / PASTIX_LR_MINRATIO.
[in]mNumber of rows of the matrix A, and of the low rank matrix Alr.
[in]nNumber of columns of the matrix A, and of the low rank matrix Alr.
[in]AThe matrix of dimension lda-by-n that needs to be compressed
[in]ldaThe leading dimension of the matrix A. lda >= max(1, m)
[out]AlrThe low rank matrix structure that will store the low rank representation of A

Definition at line 454 of file core_ztqrcp.c.

References core_zge2lr_qrcp(), and core_ztqrcp().

◆ core_zrradd_tqrcp()

pastix_fixdbl_t core_zrradd_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.

u2v2^T - u1v1^T = (u2 u1) (v2 v1)^T Orthogonalize (u2 u1) = (u2, u1 - u2(u2^T u1)) * (I u2^T u1) (0 I ) Compute TQRCP decomposition of (I u2^T u1) * (v2 v1)^T (0 I )

Parameters
[in]lowrankThe structure with low-rank parameters.
[in]transA1
  • PastixNoTrans: No transpose, op( A ) = A;
  • PastixTrans: Transpose, op( A ) = A';
[in]alphaalpha * A is add to B
[in]M1The number of rows of the matrix A.
[in]N1The number of columns of the matrix A.
[in]AThe low-rank representation of the matrix A.
[in]M2The number of rows of the matrix B.
[in]N2The number of columns of the matrix B.
[in]BThe low-rank representation of the matrix B.
[in]offxThe horizontal offset of A with respect to B.
[in]offyThe vertical offset of A with respect to B.
Returns
The new rank of u2 v2^T or -1 if ranks are too large for recompression

Definition at line 518 of file core_ztqrcp.c.

References core_zrradd_qr(), and core_ztqrcp().

◆ core_zge2lr_rqrrt()

pastix_fixdbl_t core_zge2lr_rqrrt ( int  use_reltol,
pastix_fixdbl_t  tol,
pastix_int_t  rklimit,
pastix_int_t  m,
pastix_int_t  n,
const void *  A,
pastix_int_t  lda,
pastix_lrblock_t Alr 
)

Convert a full rank matrix in a low rank matrix, using RQRRT.

Parameters
[in]use_reltolDefines if the kernel should use relative tolerance (tol *||A||), or absolute tolerance (tol).
[in]tolThe tolerance used as a criterion to eliminate information from the full rank matrix
[in]rklimitThe maximum rank to store the matrix in low-rank format. If -1, set to min(m, n) / PASTIX_LR_MINRATIO.
[in]mNumber of rows of the matrix A, and of the low rank matrix Alr.
[in]nNumber of columns of the matrix A, and of the low rank matrix Alr.
[in]AThe matrix of dimension lda-by-n that needs to be compressed
[in]ldaThe leading dimension of the matrix A. lda >= max(1, m)
[out]AlrThe low rank matrix structure that will store the low rank representation of A

Definition at line 374 of file core_zrqrrt.c.

References core_zge2lr_qrrt(), and core_zrqrrt().

◆ core_zge2lr_qrcp()

pastix_fixdbl_t core_zge2lr_qrcp ( core_zrrqr_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.

This version is only used when permutation method is used. Only difference from core_zge2lr_qrrt is the V calculation part, That is: Instead of applying inverse rotation on V, here inverse permutation is applied

Parameters
[in]rrqrfctQR decomposition function used to compute the rank revealing factorization and create the low-rank form of A.
[in]tolThe tolerance used as a criterion to eliminate information from the full rank matrix
[in]rklimitThe maximum rank to store the matrix in low-rank format. If -1, set to min(m, n) / PASTIX_LR_MINRATIO.
[in]mNumber of rows of the matrix A, and of the low rank matrix Alr.
[in]nNumber of columns of the matrix A, and of the low rank matrix Alr.
[in]AThe matrix of dimension lda-by-n that needs to be compressed
[in]ldaThe leading dimension of the matrix A. lda >= max(1, m)
[out]AlrThe low rank matrix structure that will store the low rank representation of A

Backup A into Acpy to try to compress

It was not interesting to compress, so we restore the dense version in Alr

We compute U and V

Definition at line 749 of file core_zgelrops.c.

Referenced by core_zge2lr_pqrcp(), core_zge2lr_rqrcp(), and core_zge2lr_tqrcp().

◆ core_zge2lr_qrrt()

pastix_fixdbl_t core_zge2lr_qrrt ( core_zrrqr_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.

This version is only used when rotational method is used. Only difference from core_zge2lr_qr is the V calculation part, That is: Instead of applying inverse permutation on V, here inverse rotation is applied

Parameters
[in]rrqrfctQR decomposition function used to compute the rank revealing factorization and create the low-rank form of A.
[in]tolThe tolerance used as a criterion to eliminate information from the full rank matrix
[in]rklimitThe maximum rank to store the matrix in low-rank format. If -1, set to min(m, n) / PASTIX_LR_MINRATIO.
[in]mNumber of rows of the matrix A, and of the low rank matrix Alr.
[in]nNumber of columns of the matrix A, and of the low rank matrix Alr.
[in]AThe matrix of dimension lda-by-n that needs to be compressed
[in]ldaThe leading dimension of the matrix A. lda >= max(1, m)
[out]AlrThe low rank matrix structure that will store the low rank representation of A

Backup A into Acpy to try to compress

It was not interesting to compress, so we restore the dense version in Alr

We compute U and V

Definition at line 937 of file core_zgelrops.c.

Referenced by core_zge2lr_rqrrt().

◆ core_zrradd_qr()

pastix_fixdbl_t core_zrradd_qr ( core_zrrqr_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.

Add two LR structures A=(-u1) v1^T and B=u2 v2^T into u2 v2^T

u2v2^T - u1v1^T = (u2 u1) (v2 v1)^T Orthogonalize (u2 u1) = (u2, u1 - u2(u2^T u1)) * (I u2^T u1) (0 I ) Compute Rank Revealing QR decomposition of (I u2^T u1) * (v2 v1)^T (0 I ) Any QR rank revealing kernel can be used for the recompression of the V part.

Parameters
[in]rrqrfctQR decomposition function used to compute the rank revealing factorization of the sum of the two low-rank matrices.
[in]lowrankThe structure with low-rank parameters.
[in]transA1
  • PastixNoTrans: No transpose, op( A ) = A;
  • PastixTrans: Transpose, op( A ) = A';
[in]alphaalpha * A is add to B
[in]M1The number of rows of the matrix A.
[in]N1The number of columns of the matrix A.
[in]AThe low-rank representation of the matrix A.
[in]M2The number of rows of the matrix B.
[in]N2The number of columns of the matrix B.
[in]BThe low-rank representation of the matrix B.
[in]offxThe horizontal offset of A with respect to B.
[in]offyThe vertical offset of A with respect to B.
Returns
The new rank of u2 v2^T or -1 if ranks are too large for recompression

In relative tolerance, we can choose two solutions: 1) The first one, more conservative, is to compress relatively to the norm of the final matrix [ \alpha A + B ]. In this kernel, we exploit the fact that the V part contains all the information while the U part is orthonormal, and compute it as follow:

double norm = LAPACKE_zlange_work( LAPACK_COL_MAJOR, 'f', rank, N, v1v2, ldv, NULL ); tol = tol * norm;

2) The second solution, less conservative, will allow to reduce the rank more efficiently. Since A and B have been compressed relatively to their respective norms, there is no reason to compress the sum relatively to its own norm, but it is more reasonable to compress it relatively to the norm of A and B. For example, A-B would be full with the first criterion, and rank null with the second. Note that here, we can only have an estimation that once again reduces the conservation of the criterion. || \alpha A + B || <= |\alpha| ||A|| + ||B|| <= |\alpha| ||U_aV_a|| + ||U_bV_b||

Definition at line 1174 of file core_zgelrops.c.

Referenced by core_zrradd_pqrcp(), core_zrradd_rqrcp(), and core_zrradd_tqrcp().

Variable Documentation

◆ lowrank [1/4]

const pastix_lr_t* core_slrmm_s::lowrank

The lowrank structure

Definition at line 81 of file pastix_slrcores.h.

◆ transA [1/4]

pastix_trans_t core_slrmm_s::transA

Specify op(A) and is equal to PastixNoTrans, PastixTrans, or PastixTrans

Definition at line 82 of file pastix_slrcores.h.

Referenced by core_slrmm_Cfr().

◆ transB [1/4]

pastix_trans_t core_slrmm_s::transB

Specify op(B) and is equal to PastixNoTrans, PastixTrans, or PastixTrans

Definition at line 83 of file pastix_slrcores.h.

Referenced by core_slrmm_Cfr().

◆ M [1/4]

pastix_int_t core_slrmm_s::M

Number of rows of the A matrix

Definition at line 84 of file pastix_slrcores.h.

◆ N [1/4]

pastix_int_t core_slrmm_s::N

Number of columns of the B matrix

Definition at line 85 of file pastix_slrcores.h.

◆ K [1/4]

pastix_int_t core_slrmm_s::K

Number of columns of the A matrix (= number of rows of the B matrix)

Definition at line 86 of file pastix_slrcores.h.

◆ Cm [1/4]

pastix_int_t core_slrmm_s::Cm

Number of rows of the C matrix that receives the AB contribution

Definition at line 87 of file pastix_slrcores.h.

◆ Cn [1/4]

pastix_int_t core_slrmm_s::Cn

Number of columns of the C matrix that receives the AB contribution

Definition at line 88 of file pastix_slrcores.h.

◆ offx [1/4]

pastix_int_t core_slrmm_s::offx

Horizontal offsets of the AB product in the C matrix

Definition at line 89 of file pastix_slrcores.h.

◆ offy [1/4]

pastix_int_t core_slrmm_s::offy

Vertical offsets of the AB product in the C matrix

Definition at line 90 of file pastix_slrcores.h.

◆ alpha [1/4]

float core_slrmm_s::alpha

The alpha factor

Definition at line 91 of file pastix_slrcores.h.

◆ A [1/4]

const pastix_lrblock_t* core_slrmm_s::A

The A matrix described in a low-rank structure

Definition at line 92 of file pastix_slrcores.h.

Referenced by core_slrmm_Cfr().

◆ B [1/4]

const pastix_lrblock_t* core_slrmm_s::B

The B matrix described in a low-rank structure

Definition at line 93 of file pastix_slrcores.h.

Referenced by core_slrmm_Cfr().

◆ beta [1/4]

float core_slrmm_s::beta

The beta factor

Definition at line 94 of file pastix_slrcores.h.

◆ C [1/4]

pastix_lrblock_t* core_slrmm_s::C

The C matrix described in a low-rank structure

Definition at line 95 of file pastix_slrcores.h.

Referenced by core_slradd(), and core_slrmm_Cfr().

◆ work [1/4]

float* core_slrmm_s::work

The pointer to an available workspace

Definition at line 96 of file pastix_slrcores.h.

Referenced by core_slrmm(), and core_slrmm_getws().

◆ lwork [1/4]

pastix_int_t core_slrmm_s::lwork

The size of the given workspace

Definition at line 97 of file pastix_slrcores.h.

Referenced by core_slrmm_getws().

◆ lwused [1/4]

pastix_int_t core_slrmm_s::lwused

The size of the workspace that is already used

Definition at line 98 of file pastix_slrcores.h.

Referenced by core_slrmm(), and core_slrmm_getws().

◆ lock [1/4]

pastix_atomic_lock_t* core_slrmm_s::lock

The lock to protect the concurrent accesses on the C matrix

Definition at line 99 of file pastix_slrcores.h.

Referenced by core_slradd().

◆ lowrank [2/4]

const pastix_lr_t* core_dlrmm_s::lowrank

The lowrank structure

Definition at line 81 of file pastix_dlrcores.h.

◆ transA [2/4]

pastix_trans_t core_dlrmm_s::transA

Specify op(A) and is equal to PastixNoTrans, PastixTrans, or PastixTrans

Definition at line 82 of file pastix_dlrcores.h.

Referenced by core_dlrmm_Cfr().

◆ transB [2/4]

pastix_trans_t core_dlrmm_s::transB

Specify op(B) and is equal to PastixNoTrans, PastixTrans, or PastixTrans

Definition at line 83 of file pastix_dlrcores.h.

Referenced by core_dlrmm_Cfr().

◆ M [2/4]

pastix_int_t core_dlrmm_s::M

Number of rows of the A matrix

Definition at line 84 of file pastix_dlrcores.h.

◆ N [2/4]

pastix_int_t core_dlrmm_s::N

Number of columns of the B matrix

Definition at line 85 of file pastix_dlrcores.h.

◆ K [2/4]

pastix_int_t core_dlrmm_s::K

Number of columns of the A matrix (= number of rows of the B matrix)

Definition at line 86 of file pastix_dlrcores.h.

◆ Cm [2/4]

pastix_int_t core_dlrmm_s::Cm

Number of rows of the C matrix that receives the AB contribution

Definition at line 87 of file pastix_dlrcores.h.

◆ Cn [2/4]

pastix_int_t core_dlrmm_s::Cn

Number of columns of the C matrix that receives the AB contribution

Definition at line 88 of file pastix_dlrcores.h.

◆ offx [2/4]

pastix_int_t core_dlrmm_s::offx

Horizontal offsets of the AB product in the C matrix

Definition at line 89 of file pastix_dlrcores.h.

◆ offy [2/4]

pastix_int_t core_dlrmm_s::offy

Vertical offsets of the AB product in the C matrix

Definition at line 90 of file pastix_dlrcores.h.

◆ alpha [2/4]

double core_dlrmm_s::alpha

The alpha factor

Definition at line 91 of file pastix_dlrcores.h.

◆ A [2/4]

const pastix_lrblock_t* core_dlrmm_s::A

The A matrix described in a low-rank structure

Definition at line 92 of file pastix_dlrcores.h.

Referenced by core_dlrmm_Cfr().

◆ B [2/4]

const pastix_lrblock_t* core_dlrmm_s::B

The B matrix described in a low-rank structure

Definition at line 93 of file pastix_dlrcores.h.

Referenced by core_dlrmm_Cfr().

◆ beta [2/4]

double core_dlrmm_s::beta

The beta factor

Definition at line 94 of file pastix_dlrcores.h.

◆ C [2/4]

pastix_lrblock_t* core_dlrmm_s::C

The C matrix described in a low-rank structure

Definition at line 95 of file pastix_dlrcores.h.

Referenced by core_dlradd(), and core_dlrmm_Cfr().

◆ work [2/4]

double* core_dlrmm_s::work

The pointer to an available workspace

Definition at line 96 of file pastix_dlrcores.h.

Referenced by core_dlrmm(), and core_dlrmm_getws().

◆ lwork [2/4]

pastix_int_t core_dlrmm_s::lwork

The size of the given workspace

Definition at line 97 of file pastix_dlrcores.h.

Referenced by core_dlrmm_getws().

◆ lwused [2/4]

pastix_int_t core_dlrmm_s::lwused

The size of the workspace that is already used

Definition at line 98 of file pastix_dlrcores.h.

Referenced by core_dlrmm(), and core_dlrmm_getws().

◆ lock [2/4]

pastix_atomic_lock_t* core_dlrmm_s::lock

The lock to protect the concurrent accesses on the C matrix

Definition at line 99 of file pastix_dlrcores.h.

Referenced by core_dlradd().

◆ lowrank [3/4]

const pastix_lr_t* core_clrmm_s::lowrank

The lowrank structure

Definition at line 81 of file pastix_clrcores.h.

◆ transA [3/4]

pastix_trans_t core_clrmm_s::transA

Specify op(A) and is equal to PastixNoTrans, PastixTrans, or PastixConjTrans

Definition at line 82 of file pastix_clrcores.h.

Referenced by core_clrmm_Cfr().

◆ transB [3/4]

pastix_trans_t core_clrmm_s::transB

Specify op(B) and is equal to PastixNoTrans, PastixTrans, or PastixConjTrans

Definition at line 83 of file pastix_clrcores.h.

Referenced by core_clrmm_Cfr().

◆ M [3/4]

pastix_int_t core_clrmm_s::M

Number of rows of the A matrix

Definition at line 84 of file pastix_clrcores.h.

◆ N [3/4]

pastix_int_t core_clrmm_s::N

Number of columns of the B matrix

Definition at line 85 of file pastix_clrcores.h.

◆ K [3/4]

pastix_int_t core_clrmm_s::K

Number of columns of the A matrix (= number of rows of the B matrix)

Definition at line 86 of file pastix_clrcores.h.

◆ Cm [3/4]

pastix_int_t core_clrmm_s::Cm

Number of rows of the C matrix that receives the AB contribution

Definition at line 87 of file pastix_clrcores.h.

◆ Cn [3/4]

pastix_int_t core_clrmm_s::Cn

Number of columns of the C matrix that receives the AB contribution

Definition at line 88 of file pastix_clrcores.h.

◆ offx [3/4]

pastix_int_t core_clrmm_s::offx

Horizontal offsets of the AB product in the C matrix

Definition at line 89 of file pastix_clrcores.h.

◆ offy [3/4]

pastix_int_t core_clrmm_s::offy

Vertical offsets of the AB product in the C matrix

Definition at line 90 of file pastix_clrcores.h.

◆ alpha [3/4]

pastix_complex32_t core_clrmm_s::alpha

The alpha factor

Definition at line 91 of file pastix_clrcores.h.

◆ A [3/4]

const pastix_lrblock_t* core_clrmm_s::A

The A matrix described in a low-rank structure

Definition at line 92 of file pastix_clrcores.h.

Referenced by core_clrmm_Cfr().

◆ B [3/4]

const pastix_lrblock_t* core_clrmm_s::B

The B matrix described in a low-rank structure

Definition at line 93 of file pastix_clrcores.h.

Referenced by core_clrmm_Cfr().

◆ beta [3/4]

pastix_complex32_t core_clrmm_s::beta

The beta factor

Definition at line 94 of file pastix_clrcores.h.

◆ C [3/4]

pastix_lrblock_t* core_clrmm_s::C

The C matrix described in a low-rank structure

Definition at line 95 of file pastix_clrcores.h.

Referenced by core_clradd(), and core_clrmm_Cfr().

◆ work [3/4]

pastix_complex32_t* core_clrmm_s::work

The pointer to an available workspace

Definition at line 96 of file pastix_clrcores.h.

Referenced by core_clrmm(), and core_clrmm_getws().

◆ lwork [3/4]

pastix_int_t core_clrmm_s::lwork

The size of the given workspace

Definition at line 97 of file pastix_clrcores.h.

Referenced by core_clrmm_getws().

◆ lwused [3/4]

pastix_int_t core_clrmm_s::lwused

The size of the workspace that is already used

Definition at line 98 of file pastix_clrcores.h.

Referenced by core_clrmm(), and core_clrmm_getws().

◆ lock [3/4]

pastix_atomic_lock_t* core_clrmm_s::lock

The lock to protect the concurrent accesses on the C matrix

Definition at line 99 of file pastix_clrcores.h.

Referenced by core_clradd().

◆ lowrank [4/4]

const pastix_lr_t* core_zlrmm_s::lowrank

The lowrank structure

Definition at line 81 of file pastix_zlrcores.h.

◆ transA [4/4]

pastix_trans_t core_zlrmm_s::transA

Specify op(A) and is equal to PastixNoTrans, PastixTrans, or PastixConjTrans

Definition at line 82 of file pastix_zlrcores.h.

Referenced by core_zlrmm_Cfr().

◆ transB [4/4]

pastix_trans_t core_zlrmm_s::transB

Specify op(B) and is equal to PastixNoTrans, PastixTrans, or PastixConjTrans

Definition at line 83 of file pastix_zlrcores.h.

Referenced by core_zlrmm_Cfr().

◆ M [4/4]

pastix_int_t core_zlrmm_s::M

Number of rows of the A matrix

Definition at line 84 of file pastix_zlrcores.h.

◆ N [4/4]

pastix_int_t core_zlrmm_s::N

Number of columns of the B matrix

Definition at line 85 of file pastix_zlrcores.h.

◆ K [4/4]

pastix_int_t core_zlrmm_s::K

Number of columns of the A matrix (= number of rows of the B matrix)

Definition at line 86 of file pastix_zlrcores.h.

◆ Cm [4/4]

pastix_int_t core_zlrmm_s::Cm

Number of rows of the C matrix that receives the AB contribution

Definition at line 87 of file pastix_zlrcores.h.

◆ Cn [4/4]

pastix_int_t core_zlrmm_s::Cn

Number of columns of the C matrix that receives the AB contribution

Definition at line 88 of file pastix_zlrcores.h.

◆ offx [4/4]

pastix_int_t core_zlrmm_s::offx

Horizontal offsets of the AB product in the C matrix

Definition at line 89 of file pastix_zlrcores.h.

◆ offy [4/4]

pastix_int_t core_zlrmm_s::offy

Vertical offsets of the AB product in the C matrix

Definition at line 90 of file pastix_zlrcores.h.

◆ alpha [4/4]

pastix_complex64_t core_zlrmm_s::alpha

The alpha factor

Definition at line 91 of file pastix_zlrcores.h.

◆ A [4/4]

const pastix_lrblock_t* core_zlrmm_s::A

The A matrix described in a low-rank structure

Definition at line 92 of file pastix_zlrcores.h.

Referenced by core_zlrmm_Cfr().

◆ B [4/4]

const pastix_lrblock_t* core_zlrmm_s::B

The B matrix described in a low-rank structure

Definition at line 93 of file pastix_zlrcores.h.

Referenced by core_zlrmm_Cfr().

◆ beta [4/4]

pastix_complex64_t core_zlrmm_s::beta

The beta factor

Definition at line 94 of file pastix_zlrcores.h.

◆ C [4/4]

pastix_lrblock_t* core_zlrmm_s::C

The C matrix described in a low-rank structure

Definition at line 95 of file pastix_zlrcores.h.

Referenced by core_zlradd(), and core_zlrmm_Cfr().

◆ work [4/4]

pastix_complex64_t* core_zlrmm_s::work

The pointer to an available workspace

Definition at line 96 of file pastix_zlrcores.h.

Referenced by core_zlrmm(), and core_zlrmm_getws().

◆ lwork [4/4]

pastix_int_t core_zlrmm_s::lwork

The size of the given workspace

Definition at line 97 of file pastix_zlrcores.h.

Referenced by core_zlrmm_getws().

◆ lwused [4/4]

pastix_int_t core_zlrmm_s::lwused

The size of the workspace that is already used

Definition at line 98 of file pastix_zlrcores.h.

Referenced by core_zlrmm(), and core_zlrmm_getws().

◆ lock [4/4]

pastix_atomic_lock_t* core_zlrmm_s::lock

The lock to protect the concurrent accesses on the C matrix

Definition at line 99 of file pastix_zlrcores.h.

Referenced by core_zlradd().