Actual source code: bqpip.h

  1: #ifndef __TAO_BQPIP_H

  4: #include "tao_solver.h"

  6: typedef struct{

  8:   /* Parameters */
  9:   int    predcorr;
 10:   double ksp_tol;

 12:   /* Problem variables, vectors and index sets */
 13:   int n;   /* Dimension of the Problem */
 14:   int m;  /* Number of constraints */

 16:   /* Problem statistics */
 17:   double dinfeas;
 18:   double pinfeas;
 19:   double pobj;
 20:   double dobj;
 21:   double gap;
 22:   double rgap;
 23:   double mu;
 24:   double sigma;
 25:   double pathnorm;
 26:   double pre_sigma;
 27:   double psteplength;
 28:   double dsteplength;
 29:   double rnorm;

 31:   /* Variable Vectors */
 32:   TaoVec* XY;
 33:   TaoVec* DXY;
 34:   TaoVec* G;
 35:   TaoVec* DG;
 36:   TaoVec* T;
 37:   TaoVec* DT;
 38:   TaoVec* Z;
 39:   TaoVec* DZ;
 40:   TaoVec* S;
 41:   TaoVec* DS;
 42:   TaoVec* GZwork;
 43:   TaoVec* TSwork;

 45:   /* Work Vectors */
 46:   TaoVec* R12;
 47:   TaoVec* R3;
 48:   TaoVec* R5;
 49:   TaoVec* HDiag;
 50:   TaoVec* Work;

 52:   TaoVec* DiagAxpy;
 53:   TaoVec* RHS;
 54:   TaoVec* RHS2;

 56:   TaoMat *ProjXL, *ProjXU;

 58:   /* Data */
 59:   TaoMat* H;
 60:   TaoVec* B;
 61:   TaoVec* C0;
 62:   double c;
 63:   TaoVec* XU;
 64:   TaoVec* XL;

 66: }TAO_BQPIP;

 68: static int QPIPSetInitialPoint(TAO_SOLVER,TAO_BQPIP *);
 69: static int QPComputeStepDirection(TAO_BQPIP *);
 70: static int QPIPComputeResidual(TAO_BQPIP *);
 71: static int QPStepLength(TAO_BQPIP *);

 74: int TaoGetDualVariables_BQPIP(TAO_SOLVER,TaoVec*,TaoVec*);
 76: int TAOComputeNormFromCentralPath_BQPIP(TAO_SOLVER,double *);

 78: #endif