|
PaStiX Handbook 6.4.0
|
Data Structures | |
| struct | pastix_lrblock_s |
| The block low-rank structure to hold a matrix in low-rank form. More... | |
| struct | pastix_lr_s |
| Structure to define the type of function to use for the low-rank kernels and their parameters. More... | |
Macros | |
| #define | PASTIX_LRM3_ORTHOU (1 << 0) |
| Macro to specify if the U part of a low-rank matrix is orthogonal or not (Used in LRMM functions). | |
| #define | PASTIX_LRM3_ALLOCU (1 << 1) |
| Macro to specify if the U part of a low-rank matrix has been allocated and need to be freed or not (Used in LRMM functions). | |
| #define | PASTIX_LRM3_ALLOCV (1 << 2) |
| Macro to specify if the V part of a low-rank matrix has been allocated and need to be freed or not (Used in LRMM functions). | |
| #define | PASTIX_LRM3_TRANSB (1 << 3) |
| Macro to specify if the the operator on B, still needs to be applied to the V part of the low-rank matrix or not (Used in LRMM functions). | |
Typedefs | |
| typedef struct pastix_lr_s | pastix_lr_t |
| Structure to define the type of function to use for the low-rank kernels and their parameters. | |
| typedef struct pastix_lrblock_s | pastix_lrblock_t |
| The block low-rank structure to hold a matrix in low-rank form. | |
| typedef pastix_fixdbl_t(* | fct_ge2lr_t) (int, pastix_fixdbl_t, pastix_int_t, pastix_int_t, pastix_int_t, const void *, pastix_int_t, pastix_lrblock_t *) |
| Type of the functions to compress a dense block into a low-rank form. | |
| typedef pastix_fixdbl_t(* | fct_rradd_t) (const pastix_lr_t *, pastix_trans_t, const void *, pastix_int_t, pastix_int_t, const pastix_lrblock_t *, pastix_int_t, pastix_int_t, pastix_lrblock_t *, pastix_int_t, pastix_int_t) |
| Type of the functions to add two low-rank blocks together. | |
| typedef enum memory_stats_e | memory_stats_t |
| Enum to define the type of block. | |
Enumerations | |
| enum | memory_stats_e { FR_InDiag = 0 , FR_OffDiag = 1 , LR_InDiag = 2 , LR_InSele = 3 , LR_OffDiag = 4 , LR_DInD = 5 , MEMORY_STATS_SIZE } |
| Enum to define the type of block. More... | |
Functions | |
| static pastix_int_t | core_get_rklimit_max (pastix_int_t M, pastix_int_t N) |
| Compute the maximal rank accepted for a given matrix size for testings. | |
| static pastix_int_t | core_get_rklimit_end (pastix_int_t M, pastix_int_t N) |
| Compute the maximal rank accepted for a given matrix size for Just-In-Time strategy. | |
| static pastix_int_t | core_get_rklimit_begin (pastix_int_t M, pastix_int_t N) |
| Compute the maximal rank accepted for a given matrix size for Minimal-Memory strategy. | |
| static pastix_int_t | core_get_rklimit_test (pastix_int_t M, pastix_int_t N) |
| TODO. | |
Variables | |
| const char * | compmeth_shnames [PastixCompressMethodNbr] |
| List of short names for the compression kernels. | |
| const char * | compmeth_lgnames [PastixCompressMethodNbr] |
| List of long names for the compression kernels. | |
| double | pastix_lr_minratio |
| Define the minimal ratio for which we accept to compress a matrix into a low-rank form or not. | |
| pastix_int_t | pastix_lr_ortho |
| Define the orthogonalization method. | |
| pastix_int_t(* | core_get_rklimit )(pastix_int_t, pastix_int_t) |
| Compute the maximal rank accepted for a given matrix size. The pointer is set according to the low-rank strategy used. | |
| const fct_ge2lr_t | ge2lrMethods [PastixCompressMethodNbr][4] |
| Array of pointers to the multiple arithmetic and algorithmic variants of ge2lr. | |
| const fct_rradd_t | rraddMethods [PastixCompressMethodNbr][4] |
| Array of pointers to the multiple arithmetic and algorithmic variants of rradd. | |
This module contains all the internal functions for low-rank kernels
| struct pastix_lrblock_s |
The block low-rank structure to hold a matrix in low-rank form.
Definition at line 166 of file pastix_lowrank.h.
| struct pastix_lr_s |
Structure to define the type of function to use for the low-rank kernels and their parameters.
Definition at line 201 of file pastix_lowrank.h.
| Data Fields | ||
|---|---|---|
| pastix_compress_when_t | compress_when |
When to compress in the full solver |
| pastix_compress_method_t | compress_method |
Compression method |
| pastix_int_t | compress_min_width |
Minimum width to compress a supernode |
| pastix_int_t | compress_min_height |
Minimum height to compress an off-diagonal block |
| int | compress_preselect |
Enable/disable the compression of preselected blocks |
| int | use_reltol |
Enable/disable relative tolerance vs absolute one |
| int | ilu_lvl |
The ILU levels above which the blocks are originally compressed |
| double | tolerance |
Absolute compression tolerance |
| fct_rradd_t | core_rradd |
Recompression function |
| fct_ge2lr_t | core_ge2lr |
Compression function |
| #define PASTIX_LRM3_ORTHOU (1 << 0) |
Macro to specify if the U part of a low-rank matrix is orthogonal or not (Used in LRMM functions).
Definition at line 41 of file pastix_lowrank.h.
| #define PASTIX_LRM3_ALLOCU (1 << 1) |
Macro to specify if the U part of a low-rank matrix has been allocated and need to be freed or not (Used in LRMM functions).
Definition at line 45 of file pastix_lowrank.h.
| #define PASTIX_LRM3_ALLOCV (1 << 2) |
Macro to specify if the V part of a low-rank matrix has been allocated and need to be freed or not (Used in LRMM functions).
Definition at line 49 of file pastix_lowrank.h.
| #define PASTIX_LRM3_TRANSB (1 << 3) |
Macro to specify if the the operator on B, still needs to be applied to the V part of the low-rank matrix or not (Used in LRMM functions).
Definition at line 53 of file pastix_lowrank.h.
| typedef struct pastix_lr_s pastix_lr_t |
Structure to define the type of function to use for the low-rank kernels and their parameters.
Definition at line 161 of file pastix_lowrank.h.
| typedef pastix_fixdbl_t(* fct_ge2lr_t) (int, pastix_fixdbl_t, pastix_int_t, pastix_int_t, pastix_int_t, const void *, pastix_int_t, pastix_lrblock_t *) |
Type of the functions to compress a dense block into a low-rank form.
Definition at line 176 of file pastix_lowrank.h.
| typedef pastix_fixdbl_t(* fct_rradd_t) (const pastix_lr_t *, pastix_trans_t, const void *, pastix_int_t, pastix_int_t, const pastix_lrblock_t *, pastix_int_t, pastix_int_t, pastix_lrblock_t *, pastix_int_t, pastix_int_t) |
Type of the functions to add two low-rank blocks together.
Definition at line 187 of file pastix_lowrank.h.
| enum memory_stats_e |
Enum to define the type of block.
Definition at line 217 of file pastix_lowrank.h.
|
inlinestatic |
Compute the maximal rank accepted for a given matrix size for testings.
| [in] | M | The number of rows of the matrix |
| [in] | N | The number of columns of the matrix |
Definition at line 85 of file pastix_lowrank.h.
|
inlinestatic |
Compute the maximal rank accepted for a given matrix size for Just-In-Time strategy.
| [in] | M | The number of rows of the matrix |
| [in] | N | The number of columns of the matrix |
Definition at line 108 of file pastix_lowrank.h.
References pastix_lr_minratio.
Referenced by pastix_subtask_bcsc2ctab().
|
inlinestatic |
Compute the maximal rank accepted for a given matrix size for Minimal-Memory strategy.
| [in] | M | The number of rows of the matrix |
| [in] | N | The number of columns of the matrix |
Definition at line 131 of file pastix_lowrank.h.
References pastix_lr_minratio.
Referenced by pastix_subtask_bcsc2ctab().
|
inlinestatic |
TODO.
| [in] | M | The number of rows of the matrix |
| [in] | N | The number of columns of the matrix |
Definition at line 154 of file pastix_lowrank.h.
|
extern |
List of short names for the compression kernels.
Definition at line 27 of file lowrank.c.
Referenced by pastixWelcome().
|
extern |
|
extern |
Define the minimal ratio for which we accept to compress a matrix into a low-rank form or not.
Definition at line 24 of file lowrank.c.
Referenced by core_get_rklimit_begin(), core_get_rklimit_end(), and pastix_subtask_bcsc2ctab().
|
extern |
Define the orthogonalization method.
Definition at line 25 of file lowrank.c.
Referenced by core_crradd_qr(), core_drradd_qr(), core_srradd_qr(), core_zrradd_qr(), and pastix_subtask_bcsc2ctab().
|
extern |
Compute the maximal rank accepted for a given matrix size. The pointer is set according to the low-rank strategy used.
| [in] | M | The number of rows of the matrix |
| [in] | N | The number of columns of the matrix |
Definition at line 46 of file kernels_trace.c.
Referenced by coeftab_cmemory_lr(), coeftab_dmemory_lr(), coeftab_smemory_lr(), coeftab_zmemory_lr(), core_cge2lr_qrcp(), core_cge2lr_qrrt(), core_cge2lr_svd(), core_clr2lr(), core_clr2null(), core_clrmm_Cnull(), core_clrsze(), core_crradd_qr(), core_crradd_svd(), core_dge2lr_qrcp(), core_dge2lr_qrrt(), core_dge2lr_svd(), core_dlr2lr(), core_dlr2null(), core_dlrmm_Cnull(), core_dlrsze(), core_drradd_qr(), core_drradd_svd(), core_sge2lr_qrcp(), core_sge2lr_qrrt(), core_sge2lr_svd(), core_slr2lr(), core_slr2null(), core_slrmm_Cnull(), core_slrsze(), core_srradd_qr(), core_srradd_svd(), core_zge2lr_qrcp(), core_zge2lr_qrrt(), core_zge2lr_svd(), core_zlr2lr(), core_zlr2null(), core_zlrmm_Cnull(), core_zlrsze(), core_zrradd_qr(), core_zrradd_svd(), and pastix_subtask_bcsc2ctab().
|
extern |
Array of pointers to the multiple arithmetic and algorithmic variants of ge2lr.
Definition at line 43 of file lowrank.c.
Referenced by pastix_subtask_bcsc2ctab().
|
extern |
Array of pointers to the multiple arithmetic and algorithmic variants of rradd.
Definition at line 52 of file lowrank.c.
Referenced by pastix_subtask_bcsc2ctab().