1 /* $Id: ClpPdco.hpp 2385 2019-01-06 19:43:06Z unxusr $ */ 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 /**@name Description of algorithm */ 26 //@{ 27 /** Pdco algorithm 28 29 Method 30 31 32 */ 33 34 int pdco(); 35 // ** Temporary version 36 int pdco(ClpPdcoBase *stuff, Options &options, Info &info, Outfo &outfo); 37 38 //@} 39 40 /**@name Functions used in pdco */ 41 //@{ 42 /// LSQR 43 void lsqr(); 44 45 void matVecMult(int, double *, double *); 46 47 void matVecMult(int, CoinDenseVector< double > &, double *); 48 49 void matVecMult(int, CoinDenseVector< double > &, CoinDenseVector< double > &); 50 51 void matVecMult(int, CoinDenseVector< double > *, CoinDenseVector< double > *); 52 53 void getBoundTypes(int *, int *, int *, int **); 54 55 void getGrad(CoinDenseVector< double > &x, CoinDenseVector< double > &grad); 56 57 void getHessian(CoinDenseVector< double > &x, CoinDenseVector< double > &H); 58 59 double getObj(CoinDenseVector< double > &x); 60 61 void matPrecon(double, double *, double *); 62 63 void matPrecon(double, CoinDenseVector< double > &, double *); 64 65 void matPrecon(double, CoinDenseVector< double > &, CoinDenseVector< double > &); 66 67 void matPrecon(double, CoinDenseVector< double > *, CoinDenseVector< double > *); 68 //@} 69 }; 70 #endif 71 72 /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2 73 */ 74