Actual source code: owlqn.h
petsc-3.13.6 2020-09-29
1: /*
2: Context for limited memory variable metric method for unconstrained
3: optimization.
4: */
6: #ifndef __TAO_OWLQN_H
8: #include <petsc/private/taoimpl.h>
10: typedef struct {
11: Mat M;
13: Vec X;
14: Vec G;
15: Vec D;
16: Vec W;
17: Vec GV; /* the pseudo gradient */
19: Vec Xold;
20: Vec Gold;
22: PetscInt bfgs;
23: PetscInt sgrad;
24: PetscInt grad;
26: PetscReal lambda;
27: } TAO_OWLQN;
29: static PetscErrorCode ProjDirect_OWLQN(Vec d, Vec g);
31: static PetscErrorCode ComputePseudoGrad_OWLQN(Vec x, Vec gv, PetscReal lambda);
33: #endif /* ifndef __TAO_OWLQN_H */