1: /* 2: Context for bound-constrained nonlinear conjugate gradient method 3: */ 6: #ifndef __TAO_BNCG_H 9: #include <petsc/private/taoimpl.h> 11: typedef struct { 12: Vec G_old; 13: Vec X_old; 14: Vec unprojected_gradient; 15: Vec unprojected_gradient_old; 16: IS inactive_set; 17: Vec inactive_grad, inactive_step; 19: PetscReal rho, pow; 20: PetscReal eta; /* Restart tolerance */ 21: PetscReal delta_max; /* Minimum value for scaling */ 22: PetscReal delta_min; /* Maximum value for scaling */ 24: PetscInt cg_type; /* Formula to use */ 26: PetscInt ls_fails, resets, broken_ortho, descent_error; 27: } TAO_BNCG; 29: #endif /* ifndef __TAO_BNCG_H */ 31: PETSC_INTERN PetscErrorCode TaoBNCGResetStepForNewInactives(Tao, Vec);