1 /* $Id: ClpPdco.hpp 1665 2011-01-04 17:55:54Z lou $ */ 2 // Copyright (C) 2003, International Business Machines 3 // Corporation and others. All Rights Reserved. 4 // This code is licensed under the terms of the Eclipse Public License (EPL). 5 /* 6 Authors 7 8 John Tomlin 9 10 */ 11 #ifndef ClpPdco_H 12 #define ClpPdco_H 13 14 #include "ClpInterior.hpp" 15 16 /** This solves problems in Primal Dual Convex Optimization 17 18 It inherits from ClpInterior. It has no data of its own and 19 is never created - only cast from a ClpInterior object at algorithm time. 20 21 */ 22 class ClpPdco : public ClpInterior { 23 24 public: 25 26 /**@name Description of algorithm */ 27 //@{ 28 /** Pdco algorithm 29 30 Method 31 32 33 */ 34 35 int pdco(); 36 // ** Temporary version 37 int pdco( ClpPdcoBase * stuff, Options &options, Info &info, Outfo &outfo); 38 39 //@} 40 41 /**@name Functions used in pdco */ 42 //@{ 43 /// LSQR 44 void lsqr(); 45 46 void matVecMult( int, double *, double *); 47 48 void matVecMult( int, CoinDenseVector<double> &, double *); 49 50 void matVecMult( int, CoinDenseVector<double> &, CoinDenseVector<double> &); 51 52 void matVecMult( int, CoinDenseVector<double> *, CoinDenseVector<double> *); 53 54 void getBoundTypes( int *, int *, int *, int**); 55 56 void getGrad(CoinDenseVector<double> &x, CoinDenseVector<double> &grad); 57 58 void getHessian(CoinDenseVector<double> &x, CoinDenseVector<double> &H); 59 60 double getObj(CoinDenseVector<double> &x); 61 62 void matPrecon( double, double *, double *); 63 64 void matPrecon( double, CoinDenseVector<double> &, double *); 65 66 void matPrecon( double, CoinDenseVector<double> &, CoinDenseVector<double> &); 67 68 void matPrecon( double, CoinDenseVector<double> *, CoinDenseVector<double> *); 69 //@} 70 71 }; 72 #endif 73