PaStiX Handbook  6.4.0
coeftab.h
Go to the documentation of this file.
1 /**
2  *
3  * @file coeftab.h
4  *
5  * PaStiX coefficient array routines header.
6  *
7  * @copyright 2015-2024 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
8  * Univ. Bordeaux. All rights reserved.
9  *
10  * @version 6.4.0
11  * @author Xavier Lacoste
12  * @author Pierre Ramet
13  * @author Mathieu Faverge
14  * @date 2024-07-05
15  *
16  * @addtogroup coeftab
17  * @{
18  * This group collects all the functions that operate on the full matrix and
19  * which are not factorization/solve routines.
20  *
21  **/
22 #ifndef _coeftab_h_
23 #define _coeftab_h_
24 
25 #include "sopalin/coeftab_z.h"
26 #include "sopalin/coeftab_c.h"
27 #include "sopalin/coeftab_d.h"
28 #include "sopalin/coeftab_s.h"
29 
30 void coeftabInit( pastix_data_t *pastix_data,
31  pastix_coefside_t side );
32 void coeftabExit( SolverMatrix *solvmtx );
33 
35 
36 void coeftabComputeCblkILULevels( const SolverMatrix *solvmtx,
37  SolverCblk *cblk );
38 
39 #if defined(PASTIX_WITH_MPI)
40 void coeftab_scatter( SolverMatrix *solvmtx,
41  PASTIX_Comm comm,
42  pastix_int_t root,
43  pastix_coeftype_t typesze );
44 void coeftab_gather ( SolverMatrix *solvmtx,
45  PASTIX_Comm comm,
46  pastix_int_t root,
47  pastix_coeftype_t typesze );
48 void coeftab_nullify( SolverMatrix *solvmtx );
49 #endif
50 
51 /**
52  * @brief Type of the memory gain functions
53  */
54 typedef void (*coeftab_fct_memory_t)( const SolverMatrix *, const pastix_int_t *, pastix_fixdbl_t * );
55 
56 /**
57  * @brief List of functions to compute the memory gain in low-rank per precision.
58  */
60 
61 /**
62  * @}
63  */
64 #endif /* _coeftab_h_ */
BEGIN_C_DECLS typedef int pastix_int_t
Definition: datatypes.h:51
double pastix_fixdbl_t
Definition: datatypes.h:65
void coeftabComputeCblkILULevels(const SolverMatrix *solvmtx, SolverCblk *cblk)
Compute the ILU levels of a cblk.
Definition: coeftab.c:454
void(* coeftab_fct_memory_t)(const SolverMatrix *, const pastix_int_t *, pastix_fixdbl_t *)
Type of the memory gain functions.
Definition: coeftab.h:54
pastix_int_t coeftabCompress(pastix_data_t *pastix_data)
Compress the factorized matrix structure if not already done.
Definition: coeftab.c:417
void coeftabInit(pastix_data_t *pastix_data, pastix_coefside_t side)
Initialize the solver matrix structure.
Definition: coeftab.c:205
void coeftabExit(SolverMatrix *solvmtx)
Free the solver matrix structure.
Definition: coeftab.c:268
coeftab_fct_memory_t coeftabMemory[4]
List of functions to compute the memory gain in low-rank per precision.
Definition: coeftab.c:45
spm_coeftype_t pastix_coeftype_t
Arithmetic types.
Definition: api.h:294
enum pastix_coefside_e pastix_coefside_t
Data blocks used in the kernel.
Main PaStiX data structure.
Definition: pastixdata.h:68
Solver column block structure.
Definition: solver.h:161
Solver column block structure.
Definition: solver.h:203