Clp trunk
|
00001 /* $Id$ */ 00002 // Copyright (C) 2003, International Business Machines 00003 // Corporation and others. All Rights Reserved. 00004 // This code is licensed under the terms of the Eclipse Public License (EPL). 00005 00006 #ifndef ClpLsqr_H_ 00007 #define ClpLsqr_H_ 00008 00009 #include "CoinDenseVector.hpp" 00010 00011 #include "ClpInterior.hpp" 00012 00013 00076 class ClpLsqr { 00077 private: 00080 00081 00082 public: 00085 00086 int nrows_; 00088 int ncols_; 00090 ClpInterior *model_; 00092 double *diag1_; 00094 double diag2_; 00096 00099 ClpLsqr(); 00100 00102 ClpLsqr(ClpInterior *model); 00104 ClpLsqr(const ClpLsqr &); 00106 ClpLsqr & operator=(const ClpLsqr & rhs); 00108 ~ClpLsqr(); 00110 00113 00114 bool setParam(char *parmName, int parmValue); 00116 void do_lsqr( CoinDenseVector<double> &b, 00117 double damp, double atol, double btol, double conlim, int itnlim, 00118 bool show, Info info, CoinDenseVector<double> &x , int *istop, 00119 int *itn, Outfo *outfo, bool precon, CoinDenseVector<double> &Pr ); 00121 void matVecMult( int, CoinDenseVector<double> *, CoinDenseVector<double> *); 00122 00123 void matVecMult( int, CoinDenseVector<double> &, CoinDenseVector<double> &); 00125 void borrowDiag1(double * array) { 00126 diag1_ = array; 00127 }; 00129 }; 00130 #endif 00131 00132 00133 00134