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 */