/* $Id: ClpPdco.hpp 1665 2011-01-04 17:55:54Z lou $ */ // Copyright (C) 2003, International Business Machines // Corporation and others. All Rights Reserved. // This code is licensed under the terms of the Eclipse Public License (EPL). /* Authors John Tomlin */ #ifndef ClpPdco_H #define ClpPdco_H #include "ClpInterior.hpp" /** This solves problems in Primal Dual Convex Optimization It inherits from ClpInterior. It has no data of its own and is never created - only cast from a ClpInterior object at algorithm time. */ class ClpPdco : public ClpInterior { public: /**@name Description of algorithm */ //@{ /** Pdco algorithm Method */ int pdco(); // ** Temporary version int pdco( ClpPdcoBase * stuff, Options &options, Info &info, Outfo &outfo); //@} /**@name Functions used in pdco */ //@{ /// LSQR void lsqr(); void matVecMult( int, double *, double *); void matVecMult( int, CoinDenseVector &, double *); void matVecMult( int, CoinDenseVector &, CoinDenseVector &); void matVecMult( int, CoinDenseVector *, CoinDenseVector *); void getBoundTypes( int *, int *, int *, int**); void getGrad(CoinDenseVector &x, CoinDenseVector &grad); void getHessian(CoinDenseVector &x, CoinDenseVector &H); double getObj(CoinDenseVector &x); void matPrecon( double, double *, double *); void matPrecon( double, CoinDenseVector &, double *); void matPrecon( double, CoinDenseVector &, CoinDenseVector &); void matPrecon( double, CoinDenseVector *, CoinDenseVector *); //@} }; #endif