Clp  1.17.6
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ClpLsqr.hpp
Go to the documentation of this file.
1 /* $Id: ClpLsqr.hpp 2385 2019-01-06 19:43:06Z unxusr $ */
2 // Copyright (C) 2003, International Business Machines
3 // Corporation and others. All Rights Reserved.
4 // This code is licensed under the terms of the Eclipse Public License (EPL).
5 
6 #ifndef ClpLsqr_H_
7 #define ClpLsqr_H_
8 
9 #include "CoinDenseVector.hpp"
10 
11 #include "ClpInterior.hpp"
12 
75 class ClpLsqr {
76 private:
79 
80 
81 public:
84  int nrows_;
87  int ncols_;
91  double *diag1_;
93  double diag2_;
95 
98  ClpLsqr();
99 
101  ClpLsqr(ClpInterior *model);
103  ClpLsqr(const ClpLsqr &);
105  ClpLsqr &operator=(const ClpLsqr &rhs);
107  ~ClpLsqr();
109 
112  bool setParam(char *parmName, int parmValue);
116  double damp, double atol, double btol, double conlim, int itnlim,
117  bool show, Info info, CoinDenseVector< double > &x, int *istop,
118  int *itn, Outfo *outfo, bool precon, CoinDenseVector< double > &Pr);
121 
124  void borrowDiag1(double *array)
125  {
126  diag1_ = array;
127  };
129 };
130 #endif
131 
132 /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
133 */
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.
ClpLsqr & operator=(const ClpLsqr &rhs)
Assignment operator. This copies the data.
This solves LPs using interior point methods.
Definition: ClpInterior.hpp:72
This class implements LSQR.
Definition: ClpLsqr.hpp:75
******** DATA to be moved into protected section of ClpInterior
Definition: ClpInterior.hpp:35
double * diag1_
Diagonal array 1.
Definition: ClpLsqr.hpp:91
ClpLsqr()
Default constructor.
******** DATA to be moved into protected section of ClpInterior
Definition: ClpInterior.hpp:27
bool setParam(char *parmName, int parmValue)
Set an int parameter.
void matVecMult(int, CoinDenseVector< double > *, CoinDenseVector< double > *)
Matrix-vector multiply - implemented by user.
void borrowDiag1(double *array)
diag1 - we just borrow as it is part of a CoinDenseVector&lt;double&gt;
Definition: ClpLsqr.hpp:124
Dense Vector.
int ncols_
Column dimension of matrix.
Definition: ClpLsqr.hpp:87
int nrows_
Row dimension of matrix.
Definition: ClpLsqr.hpp:85
double diag2_
Constant diagonal 2.
Definition: ClpLsqr.hpp:93
~ClpLsqr()
Destructor.
ClpInterior * model_
Pointer to Model object for this instance.
Definition: ClpLsqr.hpp:89