Actual source code: pgmresimpl.h
1: #ifndef PETSC_PGMRESIMPL_H
2: #define PETSC_PGMRESIMPL_H
4: #define KSPGMRES_NO_MACROS
5: #include <../src/ksp/ksp/impls/gmres/gmresimpl.h>
7: typedef struct {
8: KSPGMRESHEADER
9: } KSP_PGMRES;
11: #define HH(a, b) (pgmres->hh_origin + (b) * (pgmres->max_k + 2) + (a))
12: /* HH will be size (max_k+2)*(max_k+1) - think of HH as
13: being stored columnwise for access purposes. */
14: #define HES(a, b) (pgmres->hes_origin + (b) * (pgmres->max_k + 1) + (a))
15: /* HES will be size (max_k + 1) * (max_k + 1) -
16: again, think of HES as being stored columnwise */
17: #define CC(a) (pgmres->cc_origin + (a)) /* CC will be length (max_k+1) - cosines */
18: #define SS(a) (pgmres->ss_origin + (a)) /* SS will be length (max_k+1) - sines */
19: #define RS(a) (pgmres->rs_origin + (a)) /* RS will be length (max_k+2) - rt side */
21: /* vector names */
22: #define VEC_OFFSET 2
23: #define VEC_TEMP pgmres->vecs[0] /* work space */
24: #define VEC_TEMP_MATOP pgmres->vecs[1] /* work space */
25: #define VEC_VV(i) pgmres->vecs[VEC_OFFSET + i] /* use to access othog basis vectors */
27: #endif // PETSC_PGMRESIMPL_H