1: /* 2: Context for limited memory variable metric method for unconstrained 3: optimization. 4: */ 6: #pragma once 7: #include <petsc/private/taoimpl.h> 9: typedef struct { 10: Mat M; 12: Vec X; 13: Vec G; 14: Vec D; 15: Vec W; 16: Vec GV; /* the pseudo gradient */ 18: Vec Xold; 19: Vec Gold; 21: PetscInt bfgs; 22: PetscInt sgrad; 23: PetscInt grad; 25: PetscReal lambda; 26: } TAO_OWLQN; 28: static PetscErrorCode ProjDirect_OWLQN(Vec d, Vec g); 30: static PetscErrorCode ComputePseudoGrad_OWLQN(Vec x, Vec gv, PetscReal lambda);