/build/buildd/clp-1.12.0/Clp/src/ClpLsqr.hpp
Go to the documentation of this file.
00001 /* $Id: ClpLsqr.hpp 1525 2010-02-26 17:27:59Z mjs $ */
00002 // Copyright (C) 2003, International Business Machines
00003 // Corporation and others.  All Rights Reserved.
00004 #ifndef ClpLsqr_H_
00005 #define ClpLsqr_H_
00006 
00007 #include "CoinDenseVector.hpp"
00008 
00009 #include "ClpInterior.hpp"
00010 
00011 
00074 class ClpLsqr {
00075 private:
00078 
00079 
00080 public:
00083 
00084      int          nrows_;
00086      int          ncols_;
00088      ClpInterior        *model_;
00090      double         *diag1_;
00092      double         diag2_;
00094 
00097      ClpLsqr();
00098 
00100      ClpLsqr(ClpInterior *model);
00102      ClpLsqr(const ClpLsqr &);
00104      ClpLsqr & operator=(const ClpLsqr & rhs);
00106      ~ClpLsqr();
00108 
00111 
00112      bool setParam(char *parmName, int parmValue);
00114      void do_lsqr( CoinDenseVector<double> &b,
00115                    double damp, double atol, double btol, double conlim, int itnlim,
00116                    bool show, Info info, CoinDenseVector<double> &x , int *istop,
00117                    int *itn, Outfo *outfo, bool precon, CoinDenseVector<double> &Pr );
00119      void matVecMult( int, CoinDenseVector<double> *, CoinDenseVector<double> *);
00120 
00121      void matVecMult( int, CoinDenseVector<double> &, CoinDenseVector<double> &);
00123      void borrowDiag1(double * array) {
00124           diag1_ = array;
00125      };
00127 };
00128 #endif
00129 
00130 
00131 
00132