ClpLsqr.hpp
Go to the documentation of this file.
1 /* $Id: ClpLsqr.hpp 1525 2010-02-26 17:27:59Z mjs $ */
2 // Copyright (C) 2003, International Business Machines
3 // Corporation and others. All Rights Reserved.
4 #ifndef ClpLsqr_H_
5 #define ClpLsqr_H_
6 
7 #include "CoinDenseVector.hpp"
8 
9 #include "ClpInterior.hpp"
10 
11 
74 class ClpLsqr {
75 private:
78 
79 
80 public:
83  int nrows_;
86  int ncols_;
90  double *diag1_;
92  double diag2_;
94 
97  ClpLsqr();
98 
100  ClpLsqr(ClpInterior *model);
102  ClpLsqr(const ClpLsqr &);
104  ClpLsqr & operator=(const ClpLsqr & rhs);
106  ~ClpLsqr();
108 
111  bool setParam(char *parmName, int parmValue);
114  void do_lsqr( CoinDenseVector<double> &b,
115  double damp, double atol, double btol, double conlim, int itnlim,
116  bool show, Info info, CoinDenseVector<double> &x , int *istop,
117  int *itn, Outfo *outfo, bool precon, CoinDenseVector<double> &Pr );
119  void matVecMult( int, CoinDenseVector<double> *, CoinDenseVector<double> *);
120 
121  void matVecMult( int, CoinDenseVector<double> &, CoinDenseVector<double> &);
123  void borrowDiag1(double * array) {
124  diag1_ = array;
125  };
127 };
128 #endif
129 
130 
131 
132 
ClpLsqr & operator=(const ClpLsqr &rhs)
Assignment operator. This copies the data.
ClpInterior * model_
Pointer to Model object for this instance.
Definition: ClpLsqr.hpp:88
******** DATA to be moved into protected section of ClpInterior
Definition: ClpInterior.hpp:27
******** DATA to be moved into protected section of ClpInterior
Definition: ClpInterior.hpp:35
This solves LPs using interior point methods.
Definition: ClpInterior.hpp:72
bool setParam(char *parmName, int parmValue)
Set an int parameter.
void borrowDiag1(double *array)
diag1 - we just borrow as it is part of a CoinDenseVector
Definition: ClpLsqr.hpp:123
ClpLsqr()
Default constructor.
int nrows_
Row dimension of matrix.
Definition: ClpLsqr.hpp:84
This class implements LSQR.
Definition: ClpLsqr.hpp:74
int ncols_
Column dimension of matrix.
Definition: ClpLsqr.hpp:86
double * diag1_
Diagonal array 1.
Definition: ClpLsqr.hpp:90
void do_lsqr(CoinDenseVector< double > &b, double damp, double atol, double btol, double conlim, int itnlim, bool show, Info info, CoinDenseVector< double > &x, int *istop, int *itn, Outfo *outfo, bool precon, CoinDenseVector< double > &Pr)
Call the Lsqr algorithm.
double diag2_
Constant diagonal 2.
Definition: ClpLsqr.hpp:92
~ClpLsqr()
Destructor.
void matVecMult(int, CoinDenseVector< double > *, CoinDenseVector< double > *)
Matrix-vector multiply - implemented by user.