/* $Id$ */ // 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 > &, double *); void matVecMult(int, CoinDenseVector< double > &, CoinDenseVector< double > &); void matVecMult(int, CoinDenseVector< double > *, CoinDenseVector< double > *); void getBoundTypes(int *, int *, int *, int **); void getGrad(CoinDenseVector< double > &x, CoinDenseVector< double > &grad); void getHessian(CoinDenseVector< double > &x, CoinDenseVector< double > &H); double getObj(CoinDenseVector< double > &x); void matPrecon(double, double *, double *); void matPrecon(double, CoinDenseVector< double > &, double *); void matPrecon(double, CoinDenseVector< double > &, CoinDenseVector< double > &); void matPrecon(double, CoinDenseVector< double > *, CoinDenseVector< double > *); //@} }; #endif /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2 */