PaStiX Handbook
6.4.0
|
Modules | |
Internal functions for low-rank kernels | |
Low-rank debug kernels | |
Low-rank update kernels | |
Low-rank Rank-Revealing QR kernels | |
Low-rank SVD kernels | |
PastixComplex32 low-rank kernels | |
void | core_clralloc (pastix_int_t M, pastix_int_t N, pastix_int_t rkmax, pastix_lrblock_t *A) |
Allocate a low-rank matrix. More... | |
void | core_clrfree (pastix_lrblock_t *A) |
Free a low-rank matrix. More... | |
int | core_clrsze (int copy, pastix_int_t M, pastix_int_t N, pastix_lrblock_t *A, pastix_int_t newrk, pastix_int_t newrkmax, pastix_int_t rklimit) |
Resize a low-rank matrix. More... | |
int | core_clr2ge (pastix_trans_t trans, pastix_int_t M, pastix_int_t N, const pastix_lrblock_t *Alr, pastix_complex32_t *A, pastix_int_t lda) |
Convert a low rank matrix into a dense matrix. More... | |
void | core_clrcpy (const pastix_lr_t *lowrank, pastix_trans_t transA, pastix_complex32_t alpha, pastix_int_t M1, pastix_int_t N1, const pastix_lrblock_t *A, pastix_int_t M2, pastix_int_t N2, pastix_lrblock_t *B, pastix_int_t offx, pastix_int_t offy) |
Copy a small low-rank structure into a large one. More... | |
void | core_clrconcatenate_u (pastix_complex32_t alpha, pastix_int_t M1, pastix_int_t N1, const pastix_lrblock_t *A, pastix_int_t M2, pastix_lrblock_t *B, pastix_int_t offx, pastix_complex32_t *u1u2) |
Concatenate left parts of two low-rank matrices. More... | |
void | core_clrconcatenate_v (pastix_trans_t transA1, pastix_complex32_t alpha, pastix_int_t M1, pastix_int_t N1, const pastix_lrblock_t *A, pastix_int_t N2, pastix_lrblock_t *B, pastix_int_t offy, pastix_complex32_t *v1v2) |
Concatenate right parts of two low-rank matrices. More... | |
float | core_clrnrm (pastix_normtype_t ntype, int transV, pastix_int_t M, pastix_int_t N, const pastix_lrblock_t *A) |
Compute the norm of a low-rank matrix. More... | |
size_t | core_clrgetsize (pastix_int_t M, pastix_int_t N, pastix_lrblock_t *A) |
Compute the size of a block to send in LR. More... | |
char * | core_clrpack (pastix_int_t M, pastix_int_t N, const pastix_lrblock_t *A, char *buffer) |
Pack low-rank data by side. More... | |
char * | core_clrunpack (pastix_int_t M, pastix_int_t N, pastix_lrblock_t *A, char *buffer) |
Unpack low rank data and fill the cblk concerned by the computation. More... | |
const char * | core_clrunpack2 (pastix_int_t M, pastix_int_t N, pastix_lrblock_t *A, const char *input, char **outptr) |
Unpack low rank data and fill the cblk concerned by the computation. More... | |
PastixComplex64 low-rank kernels | |
void | core_zlralloc (pastix_int_t M, pastix_int_t N, pastix_int_t rkmax, pastix_lrblock_t *A) |
Allocate a low-rank matrix. More... | |
void | core_zlrfree (pastix_lrblock_t *A) |
Free a low-rank matrix. More... | |
int | core_zlrsze (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_zlr2ge (pastix_trans_t trans, pastix_int_t M, pastix_int_t N, const pastix_lrblock_t *Alr, pastix_complex64_t *A, pastix_int_t lda) |
Convert a low rank matrix into a dense matrix. More... | |
void | core_zlrcpy (const pastix_lr_t *lowrank, pastix_trans_t transA, pastix_complex64_t alpha, pastix_int_t M1, pastix_int_t N1, const pastix_lrblock_t *A, pastix_int_t M2, pastix_int_t N2, pastix_lrblock_t *B, pastix_int_t offx, pastix_int_t offy) |
Copy a small low-rank structure into a large one. More... | |
void | core_zlrconcatenate_u (pastix_complex64_t alpha, pastix_int_t M1, pastix_int_t N1, const pastix_lrblock_t *A, pastix_int_t M2, pastix_lrblock_t *B, pastix_int_t offx, pastix_complex64_t *u1u2) |
Concatenate left parts of two low-rank matrices. More... | |
void | core_zlrconcatenate_v (pastix_trans_t transA1, pastix_complex64_t alpha, pastix_int_t M1, pastix_int_t N1, const pastix_lrblock_t *A, pastix_int_t N2, pastix_lrblock_t *B, pastix_int_t offy, pastix_complex64_t *v1v2) |
Concatenate right parts of two low-rank matrices. More... | |
double | core_zlrnrm (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_zlrgetsize (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_zlrpack (pastix_int_t M, pastix_int_t N, const pastix_lrblock_t *A, char *buffer) |
Pack low-rank data by side. More... | |
char * | core_zlrunpack (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_zlrunpack2 (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... | |
PastixDouble low-rank kernels | |
void | core_dlralloc (pastix_int_t M, pastix_int_t N, pastix_int_t rkmax, pastix_lrblock_t *A) |
Allocate a low-rank matrix. More... | |
void | core_dlrfree (pastix_lrblock_t *A) |
Free a low-rank matrix. More... | |
int | core_dlrsze (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_dlr2ge (pastix_trans_t trans, pastix_int_t M, pastix_int_t N, const pastix_lrblock_t *Alr, double *A, pastix_int_t lda) |
Convert a low rank matrix into a dense matrix. More... | |
void | core_dlrcpy (const pastix_lr_t *lowrank, pastix_trans_t transA, double 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_dlrconcatenate_u (double 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, double *u1u2) |
Concatenate left parts of two low-rank matrices. More... | |
void | core_dlrconcatenate_v (pastix_trans_t transA1, double 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, double *v1v2) |
Concatenate right parts of two low-rank matrices. More... | |
double | core_dlrnrm (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_dlrgetsize (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_dlrpack (pastix_int_t M, pastix_int_t N, const pastix_lrblock_t *A, char *buffer) |
Pack low-rank data by side. More... | |
char * | core_dlrunpack (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_dlrunpack2 (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... | |
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... | |
This module contains all the low-rank kernels working on pastix_lr_t matrix representations.
void core_clralloc | ( | pastix_int_t | M, |
pastix_int_t | N, | ||
pastix_int_t | rkmax, | ||
pastix_lrblock_t * | A | ||
) |
Allocate a low-rank matrix.
[in] | M | Number of rows of the matrix A. |
[in] | N | Number of columns of the matrix A. |
[in] | rkmax |
|
[out] | A | The allocated low-rank matrix |
Definition at line 56 of file core_cgelrops.c.
References pastix_int_t, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_cge2lr_qrcp(), core_cge2lr_qrrt(), core_cge2lr_svd(), core_clrcpy(), cpucblk_calloc_lr(), and cpucblk_cuncompress().
void core_clrfree | ( | pastix_lrblock_t * | A | ) |
Free a low-rank matrix.
[in,out] | A | The low-rank matrix that will be desallocated. |
Definition at line 116 of file core_cgelrops.c.
References pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_clrcpy(), core_clrlr2lr(), cpucblk_cfree(), and cpucblk_cuncompress().
int core_clrsze | ( | int | copy, |
pastix_int_t | M, | ||
pastix_int_t | N, | ||
pastix_lrblock_t * | A, | ||
pastix_int_t | newrk, | ||
pastix_int_t | newrkmax, | ||
pastix_int_t | rklimit | ||
) |
Resize a low-rank matrix.
[in] | copy | Enable/disable the copy of the data from A->u and A->v into the new low-rank representation. |
[in] | M | The number of rows of the matrix A. |
[in] | N | The number of columns of the matrix A. |
[in,out] | A | The low-rank representation of the matrix. At exit, this structure is modified with the new low-rank representation of A, is the rank is small enough |
[in] | newrk | The new rank of the matrix A. |
[in] | newrkmax | The new maximum rank of the matrix A. Useful if the low-rank structure was allocated with more data than the rank. |
[in] | rklimit | The maximum rank to store the matrix in low-rank format. If -1, set to core_get_rklimit(M, N) |
Definition at line 173 of file core_cgelrops.c.
References core_get_rklimit, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_cge2lr_svd(), and core_clrunpack().
int core_clr2ge | ( | pastix_trans_t | trans, |
pastix_int_t | m, | ||
pastix_int_t | n, | ||
const pastix_lrblock_t * | Alr, | ||
pastix_complex32_t * | A, | ||
pastix_int_t | lda | ||
) |
Convert a low rank matrix into a dense matrix.
Convert a low-rank matrix of size m-by-n into a full rank matrix. A = op( u * v^t ) with op(A) = A or A^t
[in] | trans |
|
[in] | m | Number of rows of the low-rank matrix Alr. |
[in] | n | Number of columns of the low-rank matrix Alr. |
[in] | Alr | The low rank matrix to be converted into a full rank matrix |
[in,out] | A | The matrix of dimension lda-by-k in which to store the uncompressed version of Alr. k = n if trans == PastixNoTrans, m otherwise. |
[in] | lda | The leading dimension of the matrix A. lda >= max(1, m) if trans == PastixNoTrans, lda >= max(1,n) otherwise. |
0 | in case of success. |
-i | if the ith parameter is incorrect. |
Definition at line 302 of file core_cgelrops.c.
References core_cgetmo(), PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_clrcpy(), cpucblk_cgetschur_lr(), and cpucblk_cuncompress().
void core_clrcpy | ( | const pastix_lr_t * | lowrank, |
pastix_trans_t | transAv, | ||
pastix_complex32_t | alpha, | ||
pastix_int_t | M1, | ||
pastix_int_t | N1, | ||
const pastix_lrblock_t * | A, | ||
pastix_int_t | M2, | ||
pastix_int_t | N2, | ||
pastix_lrblock_t * | B, | ||
pastix_int_t | offx, | ||
pastix_int_t | offy | ||
) |
Copy a small low-rank structure into a large one.
[in] | lowrank | The structure with low-rank parameters. |
[in] | transAv |
|
[in] | alpha | The multiplier parameter: B = B + alpha * A |
[in] | M1 | The number of rows of the matrix A. |
[in] | N1 | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
[in] | M2 | The number of rows of the matrix B. |
[in] | N2 | The number of columns of the matrix B. |
[in,out] | B | The low-rank representation of the matrix B. |
[in] | offx | The horizontal offset of A with respect to B. |
[in] | offy | The vertical offset of A with respect to B. |
Definition at line 423 of file core_cgelrops.c.
References core_cgeadd(), core_clr2ge(), core_clralloc(), core_clrfree(), pastix_lr_s::core_ge2lr, pastix_int_t, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lr_s::tolerance, pastix_lrblock_s::u, pastix_lr_s::use_reltol, and pastix_lrblock_s::v.
Referenced by core_crradd_qr(), and core_crradd_svd().
void core_clrconcatenate_u | ( | pastix_complex32_t | alpha, |
pastix_int_t | M1, | ||
pastix_int_t | N1, | ||
const pastix_lrblock_t * | A, | ||
pastix_int_t | M2, | ||
pastix_lrblock_t * | B, | ||
pastix_int_t | offx, | ||
pastix_complex32_t * | u1u2 | ||
) |
Concatenate left parts of two low-rank matrices.
[in] | alpha | alpha * A is add to B |
[in] | M1 | The number of rows of the matrix A. |
[in] | N1 | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
[in] | M2 | The number of rows of the matrix B. |
[in] | B | The low-rank representation of the matrix B. |
[in] | offx | The horizontal offset of A with respect to B. |
[in,out] | u1u2 | The workspace where matrices are concatenated |
Definition at line 535 of file core_cgelrops.c.
References pastix_int_t, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, and pastix_lrblock_s::u.
Referenced by core_crradd_qr(), and core_crradd_svd().
void core_clrconcatenate_v | ( | pastix_trans_t | transA1, |
pastix_complex32_t | alpha, | ||
pastix_int_t | M1, | ||
pastix_int_t | N1, | ||
const pastix_lrblock_t * | A, | ||
pastix_int_t | N2, | ||
pastix_lrblock_t * | B, | ||
pastix_int_t | offy, | ||
pastix_complex32_t * | v1v2 | ||
) |
Concatenate right parts of two low-rank matrices.
[in] | transA1 |
|
[in] | alpha | alpha * A is add to B |
[in] | M1 | The number of rows of the matrix A. |
[in] | N1 | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
[in] | N2 | The number of columns of the matrix B. |
[in] | B | The low-rank representation of the matrix B. |
[in] | offy | The vertical offset of A with respect to B. |
[in,out] | v1v2 | The workspace where matrices are concatenated |
Definition at line 647 of file core_cgelrops.c.
References core_cgeadd(), pastix_int_t, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_crradd_qr(), and core_crradd_svd().
float core_clrnrm | ( | pastix_normtype_t | ntype, |
int | transV, | ||
pastix_int_t | M, | ||
pastix_int_t | N, | ||
const pastix_lrblock_t * | A | ||
) |
Compute the norm of a low-rank matrix.
[in] | ntype | The matrix norm to compute. |
[in] | transV | TODO |
[in] | M | TODO |
[in] | N | TODO |
[in] | A | The low-rank matrix |
Definition at line 48 of file core_clrnrm.c.
References PastixFrobeniusNorm, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_crradd_svd().
size_t core_clrgetsize | ( | pastix_int_t | M, |
pastix_int_t | N, | ||
pastix_lrblock_t * | A | ||
) |
Compute the size of a block to send in LR.
[in] | M | The number of rows of the matrix A. |
[in] | N | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
Definition at line 1621 of file core_cgelrops.c.
References pastix_lrblock_s::rk.
Referenced by cpublok_ccompute_size_lr().
char* core_clrpack | ( | pastix_int_t | M, |
pastix_int_t | N, | ||
const pastix_lrblock_t * | A, | ||
char * | buffer | ||
) |
Pack low-rank data by side.
[in] | M | The number of rows of the matrix A. |
[in] | N | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
[in,out] | buffer | Pointer on packed data |
Definition at line 1658 of file core_cgelrops.c.
References pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by cpublok_cpack_lr().
char* core_clrunpack | ( | pastix_int_t | M, |
pastix_int_t | N, | ||
pastix_lrblock_t * | A, | ||
char * | buffer | ||
) |
Unpack low rank data and fill the cblk concerned by the computation.
[in] | M | The number of rows of the matrix A. |
[in] | N | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
[in,out] | buffer | Pointer on packed data |
Definition at line 1725 of file core_cgelrops.c.
References core_clrsze(), pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by cpublok_cunpack_lr().
const char* core_clrunpack2 | ( | pastix_int_t | M, |
pastix_int_t | N, | ||
pastix_lrblock_t * | A, | ||
const char * | input, | ||
char ** | outptr | ||
) |
Unpack low rank data and fill the cblk concerned by the computation.
[in] | M | The number of rows of the matrix A. |
[in] | N | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
[in,out] | input | TODO |
[in,out] | outptr | TODO |
Definition at line 1783 of file core_cgelrops.c.
References pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
void core_zlralloc | ( | pastix_int_t | M, |
pastix_int_t | N, | ||
pastix_int_t | rkmax, | ||
pastix_lrblock_t * | A | ||
) |
Allocate a low-rank matrix.
[in] | M | Number of rows of the matrix A. |
[in] | N | Number of columns of the matrix A. |
[in] | rkmax |
|
[out] | A | The allocated low-rank matrix |
Definition at line 56 of file core_zgelrops.c.
References pastix_int_t, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_zge2lr_qrcp(), core_zge2lr_qrrt(), core_zge2lr_svd(), core_zlrcpy(), cpucblk_zalloc_lr(), and cpucblk_zuncompress().
void core_zlrfree | ( | pastix_lrblock_t * | A | ) |
Free a low-rank matrix.
[in,out] | A | The low-rank matrix that will be desallocated. |
Definition at line 116 of file core_zgelrops.c.
References pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_zlrcpy(), core_zlrlr2lr(), cpucblk_zfree(), and cpucblk_zuncompress().
int core_zlrsze | ( | 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.
[in] | copy | Enable/disable the copy of the data from A->u and A->v into the new low-rank representation. |
[in] | M | The number of rows of the matrix A. |
[in] | N | The number of columns of the matrix A. |
[in,out] | A | The low-rank representation of the matrix. At exit, this structure is modified with the new low-rank representation of A, is the rank is small enough |
[in] | newrk | The new rank of the matrix A. |
[in] | newrkmax | The new maximum rank of the matrix A. Useful if the low-rank structure was allocated with more data than the rank. |
[in] | rklimit | The maximum rank to store the matrix in low-rank format. If -1, set to core_get_rklimit(M, N) |
Definition at line 173 of file core_zgelrops.c.
References core_get_rklimit, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_zge2lr_svd(), and core_zlrunpack().
int core_zlr2ge | ( | pastix_trans_t | trans, |
pastix_int_t | m, | ||
pastix_int_t | n, | ||
const pastix_lrblock_t * | Alr, | ||
pastix_complex64_t * | A, | ||
pastix_int_t | lda | ||
) |
Convert a low rank matrix into a dense matrix.
Convert a low-rank matrix of size m-by-n into a full rank matrix. A = op( u * v^t ) with op(A) = A or A^t
[in] | trans |
|
[in] | m | Number of rows of the low-rank matrix Alr. |
[in] | n | Number of columns of the low-rank matrix Alr. |
[in] | Alr | The low rank matrix to be converted into a full rank matrix |
[in,out] | A | The matrix of dimension lda-by-k in which to store the uncompressed version of Alr. k = n if trans == PastixNoTrans, m otherwise. |
[in] | lda | The leading dimension of the matrix A. lda >= max(1, m) if trans == PastixNoTrans, lda >= max(1,n) otherwise. |
0 | in case of success. |
-i | if the ith parameter is incorrect. |
Definition at line 302 of file core_zgelrops.c.
References core_zgetmo(), PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_zlrcpy(), cpucblk_zgetschur_lr(), and cpucblk_zuncompress().
void core_zlrcpy | ( | const pastix_lr_t * | lowrank, |
pastix_trans_t | transAv, | ||
pastix_complex64_t | alpha, | ||
pastix_int_t | M1, | ||
pastix_int_t | N1, | ||
const pastix_lrblock_t * | A, | ||
pastix_int_t | M2, | ||
pastix_int_t | N2, | ||
pastix_lrblock_t * | B, | ||
pastix_int_t | offx, | ||
pastix_int_t | offy | ||
) |
Copy a small low-rank structure into a large one.
[in] | lowrank | The structure with low-rank parameters. |
[in] | transAv |
|
[in] | alpha | The multiplier parameter: B = B + alpha * A |
[in] | M1 | The number of rows of the matrix A. |
[in] | N1 | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
[in] | M2 | The number of rows of the matrix B. |
[in] | N2 | The number of columns of the matrix B. |
[in,out] | B | The low-rank representation of the matrix B. |
[in] | offx | The horizontal offset of A with respect to B. |
[in] | offy | The vertical offset of A with respect to B. |
Definition at line 423 of file core_zgelrops.c.
References pastix_lr_s::core_ge2lr, core_zgeadd(), core_zlr2ge(), core_zlralloc(), core_zlrfree(), pastix_int_t, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lr_s::tolerance, pastix_lrblock_s::u, pastix_lr_s::use_reltol, and pastix_lrblock_s::v.
Referenced by core_zrradd_qr(), and core_zrradd_svd().
void core_zlrconcatenate_u | ( | pastix_complex64_t | alpha, |
pastix_int_t | M1, | ||
pastix_int_t | N1, | ||
const pastix_lrblock_t * | A, | ||
pastix_int_t | M2, | ||
pastix_lrblock_t * | B, | ||
pastix_int_t | offx, | ||
pastix_complex64_t * | u1u2 | ||
) |
Concatenate left parts of two low-rank matrices.
[in] | alpha | alpha * A is add to B |
[in] | M1 | The number of rows of the matrix A. |
[in] | N1 | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
[in] | M2 | The number of rows of the matrix B. |
[in] | B | The low-rank representation of the matrix B. |
[in] | offx | The horizontal offset of A with respect to B. |
[in,out] | u1u2 | The workspace where matrices are concatenated |
Definition at line 535 of file core_zgelrops.c.
References pastix_int_t, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, and pastix_lrblock_s::u.
Referenced by core_zrradd_qr(), and core_zrradd_svd().
void core_zlrconcatenate_v | ( | pastix_trans_t | transA1, |
pastix_complex64_t | alpha, | ||
pastix_int_t | M1, | ||
pastix_int_t | N1, | ||
const pastix_lrblock_t * | A, | ||
pastix_int_t | N2, | ||
pastix_lrblock_t * | B, | ||
pastix_int_t | offy, | ||
pastix_complex64_t * | v1v2 | ||
) |
Concatenate right parts of two low-rank matrices.
[in] | transA1 |
|
[in] | alpha | alpha * A is add to B |
[in] | M1 | The number of rows of the matrix A. |
[in] | N1 | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
[in] | N2 | The number of columns of the matrix B. |
[in] | B | The low-rank representation of the matrix B. |
[in] | offy | The vertical offset of A with respect to B. |
[in,out] | v1v2 | The workspace where matrices are concatenated |
Definition at line 647 of file core_zgelrops.c.
References core_zgeadd(), pastix_int_t, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_zrradd_qr(), and core_zrradd_svd().
double core_zlrnrm | ( | 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.
[in] | ntype | The matrix norm to compute. |
[in] | transV | TODO |
[in] | M | TODO |
[in] | N | TODO |
[in] | A | The low-rank matrix |
Definition at line 48 of file core_zlrnrm.c.
References PastixFrobeniusNorm, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_zrradd_svd().
size_t core_zlrgetsize | ( | pastix_int_t | M, |
pastix_int_t | N, | ||
pastix_lrblock_t * | A | ||
) |
Compute the size of a block to send in LR.
[in] | M | The number of rows of the matrix A. |
[in] | N | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
Definition at line 1621 of file core_zgelrops.c.
References pastix_lrblock_s::rk.
Referenced by cpublok_zcompute_size_lr().
char* core_zlrpack | ( | pastix_int_t | M, |
pastix_int_t | N, | ||
const pastix_lrblock_t * | A, | ||
char * | buffer | ||
) |
Pack low-rank data by side.
[in] | M | The number of rows of the matrix A. |
[in] | N | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
[in,out] | buffer | Pointer on packed data |
Definition at line 1658 of file core_zgelrops.c.
References pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by cpublok_zpack_lr().
char* core_zlrunpack | ( | 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.
[in] | M | The number of rows of the matrix A. |
[in] | N | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
[in,out] | buffer | Pointer on packed data |
Definition at line 1725 of file core_zgelrops.c.
References core_zlrsze(), and pastix_lrblock_s::u.
Referenced by cpublok_zunpack_lr().
const char* core_zlrunpack2 | ( | 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.
[in] | M | The number of rows of the matrix A. |
[in] | N | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
[in,out] | input | TODO |
[in,out] | outptr | TODO |
Definition at line 1783 of file core_zgelrops.c.
References pastix_lrblock_s::rk, and pastix_lrblock_s::rkmax.
void core_dlralloc | ( | pastix_int_t | M, |
pastix_int_t | N, | ||
pastix_int_t | rkmax, | ||
pastix_lrblock_t * | A | ||
) |
Allocate a low-rank matrix.
[in] | M | Number of rows of the matrix A. |
[in] | N | Number of columns of the matrix A. |
[in] | rkmax |
|
[out] | A | The allocated low-rank matrix |
Definition at line 56 of file core_dgelrops.c.
References pastix_int_t, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_dge2lr_qrcp(), core_dge2lr_qrrt(), core_dge2lr_svd(), core_dlrcpy(), cpucblk_dalloc_lr(), and cpucblk_duncompress().
void core_dlrfree | ( | pastix_lrblock_t * | A | ) |
Free a low-rank matrix.
[in,out] | A | The low-rank matrix that will be desallocated. |
Definition at line 116 of file core_dgelrops.c.
References pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_dlrcpy(), core_dlrlr2lr(), cpucblk_dfree(), and cpucblk_duncompress().
int core_dlrsze | ( | 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.
[in] | copy | Enable/disable the copy of the data from A->u and A->v into the new low-rank representation. |
[in] | M | The number of rows of the matrix A. |
[in] | N | The number of columns of the matrix A. |
[in,out] | A | The low-rank representation of the matrix. At exit, this structure is modified with the new low-rank representation of A, is the rank is small enough |
[in] | newrk | The new rank of the matrix A. |
[in] | newrkmax | The new maximum rank of the matrix A. Useful if the low-rank structure was allocated with more data than the rank. |
[in] | rklimit | The maximum rank to store the matrix in low-rank format. If -1, set to core_get_rklimit(M, N) |
Definition at line 173 of file core_dgelrops.c.
References core_get_rklimit, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_dge2lr_svd(), and core_dlrunpack().
int core_dlr2ge | ( | pastix_trans_t | trans, |
pastix_int_t | m, | ||
pastix_int_t | n, | ||
const pastix_lrblock_t * | Alr, | ||
double * | A, | ||
pastix_int_t | lda | ||
) |
Convert a low rank matrix into a dense matrix.
Convert a low-rank matrix of size m-by-n into a full rank matrix. A = op( u * v^t ) with op(A) = A or A^t
[in] | trans |
|
[in] | m | Number of rows of the low-rank matrix Alr. |
[in] | n | Number of columns of the low-rank matrix Alr. |
[in] | Alr | The low rank matrix to be converted into a full rank matrix |
[in,out] | A | The matrix of dimension lda-by-k in which to store the uncompressed version of Alr. k = n if trans == PastixNoTrans, m otherwise. |
[in] | lda | The leading dimension of the matrix A. lda >= max(1, m) if trans == PastixNoTrans, lda >= max(1,n) otherwise. |
0 | in case of success. |
-i | if the ith parameter is incorrect. |
Definition at line 302 of file core_dgelrops.c.
References core_dgetmo(), PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_dlrcpy(), cpucblk_dgetschur_lr(), and cpucblk_duncompress().
void core_dlrcpy | ( | const pastix_lr_t * | lowrank, |
pastix_trans_t | transAv, | ||
double | 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.
[in] | lowrank | The structure with low-rank parameters. |
[in] | transAv |
|
[in] | alpha | The multiplier parameter: B = B + alpha * A |
[in] | M1 | The number of rows of the matrix A. |
[in] | N1 | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
[in] | M2 | The number of rows of the matrix B. |
[in] | N2 | The number of columns of the matrix B. |
[in,out] | B | The low-rank representation of the matrix B. |
[in] | offx | The horizontal offset of A with respect to B. |
[in] | offy | The vertical offset of A with respect to B. |
Definition at line 423 of file core_dgelrops.c.
References core_dgeadd(), core_dlr2ge(), core_dlralloc(), core_dlrfree(), pastix_lr_s::core_ge2lr, pastix_int_t, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lr_s::tolerance, pastix_lrblock_s::u, pastix_lr_s::use_reltol, and pastix_lrblock_s::v.
Referenced by core_drradd_qr(), and core_drradd_svd().
void core_dlrconcatenate_u | ( | double | 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, | ||
double * | u1u2 | ||
) |
Concatenate left parts of two low-rank matrices.
[in] | alpha | alpha * A is add to B |
[in] | M1 | The number of rows of the matrix A. |
[in] | N1 | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
[in] | M2 | The number of rows of the matrix B. |
[in] | B | The low-rank representation of the matrix B. |
[in] | offx | The horizontal offset of A with respect to B. |
[in,out] | u1u2 | The workspace where matrices are concatenated |
Definition at line 535 of file core_dgelrops.c.
References pastix_int_t, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, and pastix_lrblock_s::u.
Referenced by core_drradd_qr(), and core_drradd_svd().
void core_dlrconcatenate_v | ( | pastix_trans_t | transA1, |
double | 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, | ||
double * | v1v2 | ||
) |
Concatenate right parts of two low-rank matrices.
[in] | transA1 |
|
[in] | alpha | alpha * A is add to B |
[in] | M1 | The number of rows of the matrix A. |
[in] | N1 | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
[in] | N2 | The number of columns of the matrix B. |
[in] | B | The low-rank representation of the matrix B. |
[in] | offy | The vertical offset of A with respect to B. |
[in,out] | v1v2 | The workspace where matrices are concatenated |
Definition at line 647 of file core_dgelrops.c.
References core_dgeadd(), pastix_int_t, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_drradd_qr(), and core_drradd_svd().
double core_dlrnrm | ( | 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.
[in] | ntype | The matrix norm to compute. |
[in] | transV | TODO |
[in] | M | TODO |
[in] | N | TODO |
[in] | A | The low-rank matrix |
Definition at line 48 of file core_dlrnrm.c.
References PastixFrobeniusNorm, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_drradd_svd().
size_t core_dlrgetsize | ( | pastix_int_t | M, |
pastix_int_t | N, | ||
pastix_lrblock_t * | A | ||
) |
Compute the size of a block to send in LR.
[in] | M | The number of rows of the matrix A. |
[in] | N | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
Definition at line 1621 of file core_dgelrops.c.
References pastix_lrblock_s::rk.
Referenced by cpublok_dcompute_size_lr().
char* core_dlrpack | ( | pastix_int_t | M, |
pastix_int_t | N, | ||
const pastix_lrblock_t * | A, | ||
char * | buffer | ||
) |
Pack low-rank data by side.
[in] | M | The number of rows of the matrix A. |
[in] | N | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
[in,out] | buffer | Pointer on packed data |
Definition at line 1658 of file core_dgelrops.c.
References pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by cpublok_dpack_lr().
char* core_dlrunpack | ( | 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.
[in] | M | The number of rows of the matrix A. |
[in] | N | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
[in,out] | buffer | Pointer on packed data |
Definition at line 1725 of file core_dgelrops.c.
References core_dlrsze(), pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by cpublok_dunpack_lr().
const char* core_dlrunpack2 | ( | 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.
[in] | M | The number of rows of the matrix A. |
[in] | N | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
[in,out] | input | TODO |
[in,out] | outptr | TODO |
Definition at line 1783 of file core_dgelrops.c.
References pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
void core_slralloc | ( | pastix_int_t | M, |
pastix_int_t | N, | ||
pastix_int_t | rkmax, | ||
pastix_lrblock_t * | A | ||
) |
Allocate a low-rank matrix.
[in] | M | Number of rows of the matrix A. |
[in] | N | Number of columns of the matrix A. |
[in] | rkmax |
|
[out] | A | The allocated low-rank matrix |
Definition at line 56 of file core_sgelrops.c.
References pastix_int_t, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_sge2lr_qrcp(), core_sge2lr_qrrt(), core_sge2lr_svd(), core_slrcpy(), cpucblk_salloc_lr(), and cpucblk_suncompress().
void core_slrfree | ( | pastix_lrblock_t * | A | ) |
Free a low-rank matrix.
[in,out] | A | The low-rank matrix that will be desallocated. |
Definition at line 116 of file core_sgelrops.c.
References pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_slrcpy(), core_slrlr2lr(), cpucblk_sfree(), and cpucblk_suncompress().
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.
[in] | copy | Enable/disable the copy of the data from A->u and A->v into the new low-rank representation. |
[in] | M | The number of rows of the matrix A. |
[in] | N | The number of columns of the matrix A. |
[in,out] | A | The low-rank representation of the matrix. At exit, this structure is modified with the new low-rank representation of A, is the rank is small enough |
[in] | newrk | The new rank of the matrix A. |
[in] | newrkmax | The new maximum rank of the matrix A. Useful if the low-rank structure was allocated with more data than the rank. |
[in] | rklimit | The maximum rank to store the matrix in low-rank format. If -1, set to core_get_rklimit(M, N) |
Definition at line 173 of file core_sgelrops.c.
References core_get_rklimit, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_sge2lr_svd(), and core_slrunpack().
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.
Convert a low-rank matrix of size m-by-n into a full rank matrix. A = op( u * v^t ) with op(A) = A or A^t
[in] | trans |
|
[in] | m | Number of rows of the low-rank matrix Alr. |
[in] | n | Number of columns of the low-rank matrix Alr. |
[in] | Alr | The low rank matrix to be converted into a full rank matrix |
[in,out] | A | The matrix of dimension lda-by-k in which to store the uncompressed version of Alr. k = n if trans == PastixNoTrans, m otherwise. |
[in] | lda | The leading dimension of the matrix A. lda >= max(1, m) if trans == PastixNoTrans, lda >= max(1,n) otherwise. |
0 | in case of success. |
-i | if the ith parameter is incorrect. |
Definition at line 302 of file core_sgelrops.c.
References core_sgetmo(), PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_slrcpy(), cpucblk_sgetschur_lr(), and cpucblk_suncompress().
void core_slrcpy | ( | const pastix_lr_t * | lowrank, |
pastix_trans_t | transAv, | ||
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.
[in] | lowrank | The structure with low-rank parameters. |
[in] | transAv |
|
[in] | alpha | The multiplier parameter: B = B + alpha * A |
[in] | M1 | The number of rows of the matrix A. |
[in] | N1 | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
[in] | M2 | The number of rows of the matrix B. |
[in] | N2 | The number of columns of the matrix B. |
[in,out] | B | The low-rank representation of the matrix B. |
[in] | offx | The horizontal offset of A with respect to B. |
[in] | offy | The vertical offset of A with respect to B. |
Definition at line 423 of file core_sgelrops.c.
References pastix_lr_s::core_ge2lr, core_sgeadd(), core_slr2ge(), core_slralloc(), core_slrfree(), pastix_int_t, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lr_s::tolerance, pastix_lrblock_s::u, pastix_lr_s::use_reltol, and pastix_lrblock_s::v.
Referenced by core_srradd_qr(), and core_srradd_svd().
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.
[in] | alpha | alpha * A is add to B |
[in] | M1 | The number of rows of the matrix A. |
[in] | N1 | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
[in] | M2 | The number of rows of the matrix B. |
[in] | B | The low-rank representation of the matrix B. |
[in] | offx | The horizontal offset of A with respect to B. |
[in,out] | u1u2 | The workspace where matrices are concatenated |
Definition at line 535 of file core_sgelrops.c.
References pastix_int_t, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, and pastix_lrblock_s::u.
Referenced by core_srradd_qr(), and core_srradd_svd().
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.
[in] | transA1 |
|
[in] | alpha | alpha * A is add to B |
[in] | M1 | The number of rows of the matrix A. |
[in] | N1 | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
[in] | N2 | The number of columns of the matrix B. |
[in] | B | The low-rank representation of the matrix B. |
[in] | offy | The vertical offset of A with respect to B. |
[in,out] | v1v2 | The workspace where matrices are concatenated |
Definition at line 647 of file core_sgelrops.c.
References core_sgeadd(), pastix_int_t, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_srradd_qr(), and core_srradd_svd().
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.
[in] | ntype | The matrix norm to compute. |
[in] | transV | TODO |
[in] | M | TODO |
[in] | N | TODO |
[in] | A | The low-rank matrix |
Definition at line 48 of file core_slrnrm.c.
References PastixFrobeniusNorm, PastixNoTrans, pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by core_srradd_svd().
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.
[in] | M | The number of rows of the matrix A. |
[in] | N | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
Definition at line 1621 of file core_sgelrops.c.
References pastix_lrblock_s::rk.
Referenced by cpublok_scompute_size_lr().
char* core_slrpack | ( | pastix_int_t | M, |
pastix_int_t | N, | ||
const pastix_lrblock_t * | A, | ||
char * | buffer | ||
) |
Pack low-rank data by side.
[in] | M | The number of rows of the matrix A. |
[in] | N | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
[in,out] | buffer | Pointer on packed data |
Definition at line 1658 of file core_sgelrops.c.
References pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by cpublok_spack_lr().
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.
[in] | M | The number of rows of the matrix A. |
[in] | N | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
[in,out] | buffer | Pointer on packed data |
Definition at line 1725 of file core_sgelrops.c.
References core_slrsze(), pastix_lrblock_s::u, and pastix_lrblock_s::v.
Referenced by cpublok_sunpack_lr().
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.
[in] | M | The number of rows of the matrix A. |
[in] | N | The number of columns of the matrix A. |
[in] | A | The low-rank representation of the matrix A. |
[in,out] | input | TODO |
[in,out] | outptr | TODO |
Definition at line 1783 of file core_sgelrops.c.
References pastix_lrblock_s::rk, pastix_lrblock_s::rkmax, pastix_lrblock_s::u, and pastix_lrblock_s::v.