PaStiX Handbook  6.3.2
pastix_lowrank.h File Reference

Go to the source code of this file.

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. More...
 
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. More...
 
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. More...
 
static pastix_int_t core_get_rklimit_test (pastix_int_t M, pastix_int_t N)
 TODO. More...
 

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

Detailed Description

PaStiX kernel header.

Version
6.3.2
Author
Mathieu Faverge
Pierre Ramet
Xavier Lacoste
Esragul Korkmaz
Gregoire Pichon
Date
2023-07-21

Definition in file pastix_lowrank.h.