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