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