1: /*
2: Context for bounded quasi-Newton-Krylov type optimization algorithms
3: */
8: #include <../src/tao/bound/impls/bnk/bnk.h>
9: #include <../src/ksp/ksp/utils/lmvm/lmvm.h>
10: #include <../src/ksp/ksp/utils/lmvm/symbrdn/symbrdn.h>
12: typedef struct {
13: PetscErrorCode (*solve)(Tao);
14: Mat B;
15: PC pc;
16: PetscBool is_spd;
17: } TAO_BQNK;
19: #define BQNK_INIT_CONSTANT 0
20: #define BQNK_INIT_DIRECTION 1
21: #define BQNK_INIT_TYPES 2
23: PETSC_INTERN PetscErrorCode TaoSolve_BQNK(Tao);
24: PETSC_INTERN PetscErrorCode TaoSetUp_BQNK(Tao);
25: PETSC_INTERN PetscErrorCode TaoCreate_BQNK(Tao);
27: #endif /* if !defined(__TAO_BQNK_H) */