PaStiX Handbook  6.3.2
s_refine_functions.h
Go to the documentation of this file.
1 /**
2  *
3  * @file s_refine_functions.h
4  *
5  * PaStiX refinement functions implementations.
6  *
7  * @copyright 2015-2023 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
8  * Univ. Bordeaux. All rights reserved.
9  *
10  * @version 6.3.2
11  * @author Mathieu Faverge
12  * @author Pierre Ramet
13  * @author Xavier Lacoste
14  * @author Gregoire Pichon
15  * @author Theophile Terraz
16  * @author Vincent Bridonneau
17  * @date 2023-07-21
18  * @generated from /builds/solverstack/pastix/refinement/z_refine_functions.h, normal z -> s, Wed Dec 13 12:09:04 2023
19  *
20  * @addtogroup pastix_dev_refine
21  * @{
22  * @brief TODO.
23  *
24  **/
25 
26 #ifndef _s_refine_functions_h_
27 #define _s_refine_functions_h_
28 
29 #include "common.h"
30 #include "bcsc/bcsc.h"
31 
32 #ifndef DOXYGEN_SHOULD_SKIP_THIS
33 /**
34  * @brief TODO
35  */
36 struct s_solver
37 {
38  pastix_int_t (* getN ) (pastix_data_t *);
39  pastix_fixdbl_t (* getEps ) (pastix_data_t *);
40  pastix_int_t (* getImax) (pastix_data_t *);
41  pastix_int_t (* getRestart)(pastix_data_t *);
42 
43  void* (*malloc)(size_t);
44  void (*free)(void*);
45 
46  void (*output_oneiter)( pastix_fixdbl_t, pastix_fixdbl_t, float, pastix_int_t);
47  void (*output_final)( pastix_data_t *, float, pastix_int_t,
48  pastix_fixdbl_t, void*, float*);
49 
50  void (*scal)( pastix_data_t *, pastix_int_t, float, float * );
51  float (*dot) ( pastix_data_t *, pastix_int_t, const float *, const float * );
52  void (*copy)( pastix_data_t *, pastix_int_t, const float *, float * );
53  void (*axpy)( pastix_data_t *, pastix_int_t, float, const float *, float *);
54  void (*spmv)( const pastix_data_t *, pastix_trans_t, float, const float *, float, float * );
55  void (*spsv)( pastix_data_t *, float *, float * );
56  float (*norm)( pastix_data_t *, pastix_int_t, const float * );
57  void (*gemv)( pastix_data_t *, pastix_int_t, pastix_int_t,
58  float, const float *, pastix_int_t,
59  const float *, float, float *);
60 };
61 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
62 
63 void s_refine_init(struct s_solver *, pastix_data_t*);
64 
69 
70 /**
71  * @}
72  */
73 #endif /* _s_refine_functions_h_ */
BEGIN_C_DECLS typedef int pastix_int_t
Definition: datatypes.h:51
double pastix_fixdbl_t
Definition: datatypes.h:65
enum pastix_trans_e pastix_trans_t
Transpostion.
pastix_int_t s_grad_smp(pastix_data_t *pastix_data, pastix_rhs_t xp, pastix_rhs_t bp)
Definition: s_refine_grad.c:49
pastix_int_t s_gmres_smp(pastix_data_t *pastix_data, pastix_rhs_t xp, pastix_rhs_t bp)
pastix_int_t s_pivot_smp(pastix_data_t *pastix_data, pastix_rhs_t xp, pastix_rhs_t bp)
void s_refine_init(struct s_solver *, pastix_data_t *)
Initiate functions pointers to define basic operations.
pastix_int_t s_bicgstab_smp(pastix_data_t *pastix_data, pastix_rhs_t xp, pastix_rhs_t bp)
Main PaStiX data structure.
Definition: pastixdata.h:67
Main PaStiX RHS structure.
Definition: pastixdata.h:150