Actual source code: gpcg.h

  1: /*$Id: gpcg.h 1.23 05/02/11 14:10:17-06:00 benson@rockies.mcs.anl.gov $*/

  3: #ifndef __TAO_GPCG_H
  5: #include "tao_solver.h"
 6:  #include src/bound/impls/gpcg/gpcglinesearch.h

  8: typedef struct{

 10:   /* Parameters */
 11:   double pg_ftol;
 12:   double actred;
 13:   double f_new;
 14:   double minstep;
 15:   double stepsize;
 16:   double gnorm;

 18:   double sigma1,sigma2,sigma3;

 20:   int maxgpits;

 22:   /* Problem variables, vectors and index sets */

 24:   /* Problem statistics */

 26:   int n;   /* Dimension of the Problem */

 28:   int total_cgits;
 29:   int cg_iterates;
 30:   int total_gp_its;
 31:   int gp_iterates;
 32:   int cgits;

 34:   TaoVec * G_New;
 35:   TaoVec * DXFree;
 36:   TaoVec * R;
 37:   TaoVec * DX;
 38:   TaoVec * X;
 39:   TaoVec * X_New;
 40:   TaoVec * G, *PG;
 41:   TaoVec * XU;
 42:   TaoVec * XL;
 43:   TaoVec * Work;

 45:   TaoMat *H;
 46:   TaoVec * B;
 47:   double c;
 48: 
 49:   double f;
 50:   double step;
 51:   TaoMat *Hsub;

 53:   TaoIndexSet * Free_Local;  /* Indices of local variables equal to lower bound */
 54:   TaoIndexSet * TT;  /* Indices of local variables equal to upper bound */

 56:   int n_free;       /* Number of free variables */
 57:   int n_upper;
 58:   int n_lower;
 59:   int n_bind;       /* Number of binding varibles */

 61: }TAO_GPCG;

 63: /* GPCG Routines */
 64: int TaoGPCGComputeFunctionGradient(TAO_SOLVER, TaoVec *, double *, TaoVec *);

 66: #endif