1 /* 2 Private data structure used for blmvm method. 3 */ 4 5 #if !defined(__TAO_BLMVM_H) 6 #define __TAO_BLMVM_H 7 8 #include <petsc/private/taoimpl.h> 9 10 /* 11 Context for limited memory variable metric method for bound constrained 12 optimization. 13 */ 14 typedef struct { 15 Mat M; 16 17 Vec unprojected_gradient; 18 Vec Xold, Gold; 19 Vec W, work; 20 21 PetscInt as_type; 22 PetscReal as_step, as_tol; 23 IS active_lower, active_upper, active_fixed; 24 IS inactive_idx, active_idx; 25 26 PetscInt n_free; 27 PetscInt n_bind; 28 29 PetscInt bfgs; 30 PetscInt grad; 31 Mat H0; 32 33 PetscBool recycle; 34 } TAO_BLMVM; 35 36 #endif /* if !defined(__TAO_BLMVM_H) */ 37