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