Scippy

SoPlex

Sequential object-oriented simPlex

soplexlegacy.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2 /* */
3 /* This file is part of the class library */
4 /* SoPlex --- the Sequential object-oriented simPlex. */
5 /* */
6 /* Copyright (C) 1996-2017 Konrad-Zuse-Zentrum */
7 /* fuer Informationstechnik Berlin */
8 /* */
9 /* SoPlex is distributed under the terms of the ZIB Academic Licence. */
10 /* */
11 /* You should have received a copy of the ZIB Academic License */
12 /* along with SoPlex; see the file COPYING. If not email to soplex@zib.de. */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file soplexlegacy.h
17  * @brief preconfigured \ref soplex::SoPlexLegacy "SoPlexLegacy" LP-solver.
18  */
19 #ifndef _SOPLEXLEGACY_H_
20 #define _SOPLEXLEGACY_H_
21 
22 #include <assert.h>
23 #include <string.h>
24 
25 #include "spxsolver.h"
26 #include "spxscaler.h"
27 #include "spxsimplifier.h"
28 #include "spxsteeppr.h"
29 #include "spxboundflippingrt.h"
30 #include "spxfileio.h"
31 #include "spxweightst.h"
32 #include "slufactor.h"
33 
34 namespace soplex
35 {
36 
37 /**@class SoPlexLegacy
38  @brief Preconfigured SoPlexLegacy LP-solver.
39  @ingroup Algo
40 */
41 class SoPlexLegacy : public SPxLP
42 {
43 protected:
44 
45  //-------------------------
46  //**@name Protected data */
47  //@{
48  // SPxWeightST st; ///< weight starter
49  SLUFactor m_slu; ///< LU Factorisation
50  SPxSolver m_solver; ///< solver
51  SPxScaler* m_postScaler; ///< post-scaler
52  SPxSimplifier* m_simplifier; ///< simplifier
53  bool m_vanished; ///< did the presolver solve the problem ?
54  bool m_freePreScaler; ///< true iff m_preScaler should be freed inside of this object
55  bool m_freePostScaler; ///< true iff m_postScaler should be freed inside of this object
56  bool m_freeSimplifier; ///< true iff m_simplifier should be freed inside of this object
59  //@}
60 
61 public:
62 
63  //---------------------------------------
64  //**@name Construction / destruction */
65  //@{
66  /// default construtor.
67  explicit SoPlexLegacy(
68  SPxOut& outstream,
71  virtual ~SoPlexLegacy();
72  /// assignment operator.
74  /// copy constructor.
75  SoPlexLegacy(const SoPlexLegacy&);
76  //@}
77 
78  /// message handler
79 // mutable SPxOut spxout;
80 
81  //---------------------------------------
82  //**@name Access / modification */
83  //@{
84 
85  /// set verbosity
86 // virtual void setVerbosity(const SPxOut::Verbosity v)
87 // {
88 // spxout.setVerbosity(v);
89 // setOutstream(spxout);
90 // }
91 
92  /// set update type for factorization.
94  {
95  m_slu.setUtype(tp);
96  }
97  /// return current Pricing.
98  inline SPxSolver::Pricing pricing() const
99  {
100  return m_solver.pricing();
101  }
102  /// set FULL or PARTIAL pricing.
104  {
105  m_solver.setPricing(pr);
106  }
107  /// return current Type.
108  inline SPxSolver::Type type() const
109  {
110  return m_solver.type();
111  }
112  /// return current basis representation.
114  {
115  return m_solver.rep();
116  }
117  /// set LEAVE or ENTER algorithm.
118  virtual void setType(SPxSolver::Type tp)
119  {
120  m_solver.setType(tp);
121  }
122  /// set ROW or COLUMN representation.
123  virtual void setRep (SPxSolver::Representation p_rep)
124  {
125  m_solver.setRep(p_rep);
126  }
127  /// setup postscaler to use. If \p destroy is true, \p scaler will be freed in destructor.
128  virtual void setPostScaler(SPxScaler* scaler, const bool destroy = false);
129  /// setup simplifier to use. If \p destroy is true, \p simpli will be freed in destructor.
130  virtual void setSimplifier(SPxSimplifier* simpli, const bool destroy = false);
131  /// has a simplifier been set?
132  inline bool has_simplifier() const
133  {
134  return m_simplifier != 0;
135  }
136  /// has a postscaler been set?
137  inline bool has_postscaler() const
138  {
139  return m_postScaler != 0;
140  }
141  /// setup pricer to use.
142  virtual void setPricer(SPxPricer* pricer, const bool destroy = false)
143  {
144  m_solver.setPricer(pricer, destroy);
145  }
146  /// setup ratio-tester to use.
147  virtual void setTester(SPxRatioTester* tester, const bool destroy = false)
148  {
149  m_solver.setTester(tester, destroy);
150  }
151  /// setup starting basis generator to use.
152  virtual void setStarter(SPxStarter* starter, const bool destroy = false)
153  {
154  m_solver.setStarter(starter, destroy);
155  }
156  /// @throw SPxStatusException if simplifier loaded, this is not yet implemented
157  /// set starting basis
159  {
160  if (has_simplifier())
161  {
162  MSG_ERROR( std::cerr << "ESOLVR04 setting starting basis with presolving not yet implemented" << std::endl; )
163  throw SPxStatusException("XSOLVR04 setting starting basis with presolving not yet implemented");
164  }
165 
166  m_colsbasisstatus.reSize(nCols());
167  for (int i = 0; i < nCols(); i++)
168  m_colsbasisstatus[i] = cols[i];
169 
170  m_rowsbasisstatus.reSize(nRows());
171  for (int i = 0; i < nRows(); i++)
172  m_rowsbasisstatus[i] = rows[i];
173  }
174  /// clear starting basis
175  virtual void clearBasis()
176  {
177  m_colsbasisstatus.clear();
178  m_rowsbasisstatus.clear();
179  m_solver.reLoad();
180  }
181  /// set time limit.
182  virtual void setTerminationTime(Real time = infinity)
183  {
184  m_solver.setTerminationTime(time);
185  }
186  /// return time limit.
187  inline Real terminationTime() const
188  {
189  return m_solver.terminationTime();
190  }
191  /// set iteration limit.
192  virtual void setTerminationIter(int iter = -1)
193  {
194  m_solver.setTerminationIter(iter);
195  }
196  /// return iteration limit.
197  inline int terminationIter() const
198  {
199  return m_solver.terminationIter();
200  }
201  /// set objective limit.
202  virtual void setTerminationValue(Real val = infinity)
203  {
204  m_solver.setTerminationValue(val);
205  }
206  /// return objective limit.
207  inline Real terminationValue() const
208  {
209  return m_solver.terminationValue();
210  }
211  /// allowed primal feasibility tolerance.
212  virtual Real feastol() const
213  {
214  return m_solver.feastol();
215  }
216  /// allowed optimality, i.e., dual feasibility tolerance.
217  virtual Real opttol() const
218  {
219  return m_solver.opttol();
220  }
221  /// guaranteed primal and dual bound violation for optimal solution, returning the maximum of feastol() and opttol(), i.e., the less tight tolerance.
222  virtual Real delta() const
223  {
224  return m_solver.delta();
225  }
226  /// set parameter \p feastol.
227  virtual void setFeastol(Real d)
228  {
229  m_solver.setFeastol(d);
230  }
231  /// set parameter \p opttol.
232  virtual void setOpttol(Real d)
233  {
234  m_solver.setOpttol(d);
235  }
236  /// set parameter \p delta, i.e., set \p feastol and \p opttol to same value.
237  virtual void setDelta(Real d)
238  {
239  m_solver.setDelta(d);
240  }
241  //@}
242 
243  //---------------------------------------
244  //**@name Solving and solution query */
245  //@{
246  /// @throw SPxStatusException if no problem loaded
247  virtual SPxSolver::Status solve();
248  ///
249  virtual Real objValue() const;
250  ///
251  virtual SPxSolver::Status getPrimal(Vector& vector) const;
252  ///
253  virtual SPxSolver::Status getSlacks(Vector& vector) const;
254  ///
255  virtual SPxSolver::Status getDual(Vector& vector) const;
256  ///
257  virtual SPxSolver::Status getRedCost(Vector& vector) const;
258 
259  /// gets basis status for a single row.
261 
262  /// gets basis status for a single column.
264 
265  /// get current basis, and return solver status.
267 
268  const char* getColName(
269  int idx,
270  const NameSet* cnames,
271  char* buf)
272  {
273  assert(buf != 0);
274  assert(idx >= 0);
275  assert(idx < nCols());
276 
277  if (cnames != 0)
278  {
279  DataKey key = cId(idx);
280 
281  if (cnames->has(key))
282  return (*cnames)[key];
283  }
284  std::sprintf(buf, "x%d", idx);
285 
286  return buf;
287  }
288 
289  const char* getRowName(
290  int idx,
291  const NameSet* rnames,
292  char* buf)
293  {
294  assert(buf != 0);
295  assert(idx >= 0);
296  assert(idx < nRows());
297 
298  if (rnames != 0)
299  {
300  DataKey key = rId(idx);
301 
302  if (rnames->has(key))
303  return (*rnames)[key];
304  }
305  std::sprintf(buf, "C%d", idx);
306 
307  return buf;
308  }
309 
310  /// @throw SPxStatusException if simplifier loaded, this is not yet
311  /// implemented
312  virtual SPxSolver::Status getPrimalray(Vector& vector) const;
313 
314  /// @throw SPxStatusException if simplifier loaded, this is not yet
315  /// implemented
316  virtual SPxSolver::Status getDualfarkas(Vector& vector) const;
317 
318  /// get violation of constraints.
319  virtual void qualConstraintViolation(Real& maxviol, Real& sumviol) const;
320  /// get violations of bounds.
321  virtual void qualBoundViolation(Real& maxviol, Real& sumviol) const;
322 #if 0
323  /// get the residuum |Ax-b|.
324  virtual void qualSlackViolation(Real& maxviol, Real& sumviol) const;
325  /// get violation of optimality criterion.
326  virtual void qualRedCostViolation(Real& maxviol, Real& sumviol) const;
327 #endif
328  /// time spent in factorizations
329  virtual Real getFactorTime() const
330  {
331  return m_vanished ? REAL(0.0) : m_slu.getFactorTime();
332  }
333  /// number of factorizations performed
334  virtual int getFactorCount() const
335  {
336  return m_vanished ? 0 : m_slu.getFactorCount();
337  }
338  /// time spent in solves
339  virtual Real getSolveTime() const
340  {
341  return m_vanished ? REAL(0.0) : m_slu.getSolveTime();
342  }
343  /// number of solves performed
344  virtual int getSolveCount() const
345  {
346  return m_vanished ? 0 : m_slu.getSolveCount();
347  }
348  ///
349  virtual int iteration() const
350  {
351  return m_vanished ? 0 : m_solver.basis().iteration();
352  }
353  ///
354  virtual bool terminate()
355  {
356  return m_solver.terminate();
357  }
358  /// returns the current status
359  virtual SPxSolver::Status status() const
360  {
361  if (m_vanished)
362  return SPxSolver::OPTIMAL;
363 
364  return m_solver.status();
365  }
366  //@}
367 
368  //---------------------------------------
369  //**@name I/O */
370  //@{
371 
372  /** Load basis from \p filename in MPS format. If \p rowNames and \p
373  * colNames are \c NULL, default names are used for the constraints and
374  * variables.
375  */
376  virtual bool readBasisFile(const char* filename,
377  const NameSet* rowNames, const NameSet* colNames);
378 
379  /** Write basis to \p filename in MPS format. If \p rowNames and \p
380  * colNames are \c NULL, default names are used for the constraints and
381  * variables.
382  */
383  virtual bool writeBasisFile(const char* filename,
384  const NameSet* rowNames, const NameSet* colNames);
385 
386  /** Write LP, basis and parameter settings of the current SPxSolver object
387  * (i.e. after simplifying and scaling).
388  * LP is written in MPS format to "\p filename".mps, basis is written in
389  * "\p filename".bas, and parameters are written to "\p filename".set.
390  * If \p rowNames and \p colNames are \c NULL, default names are used for
391  * the constraints and variables.
392  */
393  virtual bool writeState(const char* filename,
394  const NameSet* rowNames = NULL, const NameSet* colNames = NULL) const;
395 
396  /// returns statistical information in form of a string.
397  std::string statistics() const
398  {
399  return m_solver.statistics();
400  }
401  //@}
402 
403 private:
404 
405  //------------------------------------
406  //**@name Private helpers */
407  //@{
408  /// undoes preprocessing such that the unsimplified solution values and basis is available
409  void unsimplify() const;
410  //@}
411 };
412 } // namespace soplex
413 #endif // _SOPLEX_H_
const VectorBase< R > & rhs() const
Returns right hand side vector.
Definition: spxlpbase.h:219
std::string statistics() const
returns statistical information in form of a string.
Definition: soplexlegacy.h:397
int iteration() const
returns number of basis changes since last load().
Definition: spxbasis.h:545
int getSolveCount() const
number of solves performed
Definition: slufactor.h:253
SPxSolver::Status getBasis(SPxSolver::VarStatus rows[], SPxSolver::VarStatus cols[]) const
get current basis, and return solver status.
UpdateType
Specifies how to perform change method.
Definition: slufactor.h:49
SPxRowId rId(int n) const
Returns the row identifier for row n.
Definition: spxlpbase.h:542
void setRep(Representation p_rep)
switch to ROW or COLUMN representation if not already used.
Definition: spxsolver.cpp:256
#define REAL(x)
Definition: spxdefines.h:218
virtual void clearBasis()
clear starting basis
Definition: soplexlegacy.h:175
THREADLOCAL const Real infinity
Definition: spxdefines.cpp:26
virtual int iteration() const
Definition: soplexlegacy.h:349
Type
Algorithmic type.
Definition: spxsolver.h:124
Pricing pricing() const
return current Pricing.
Definition: spxsolver.h:481
std::string statistics() const
returns statistical information in form of a string.
Definition: spxsolver.h:2176
virtual void setDelta(Real d)
set parameter delta, i.e., set feastol and opttol to same value.
Definition: soplexlegacy.h:237
virtual void setStarter(SPxStarter *starter, const bool destroy=false)
setup starting basis generator to use. If destroy is true, starter will be freed in destructor...
Definition: spxsolver.cpp:154
Real feastol() const
allowed primal feasibility tolerance.
Definition: spxsolver.h:777
DataKey key(int i) const
Returns DataKey of i &#39;th LPColBase in LPColSetBase.
Definition: lpcolsetbase.h:226
virtual void setTerminationIter(int iter=-1)
set iteration limit.
Definition: soplexlegacy.h:192
void setUtype(UpdateType tp)
sets update type.
Definition: slufactor.h:122
Representation
LP basis representation.
Definition: spxsolver.h:105
Real getFactorTime() const
time spent in factorizations
Definition: slufactor.h:228
void setType(Type tp)
set LEAVE or ENTER algorithm.
Definition: spxsolver.cpp:169
SPxSolver::VarStatus getBasisRowStatus(int row) const
gets basis status for a single row.
SPxSimplifier * m_simplifier
simplifier
Definition: soplexlegacy.h:52
virtual int terminationIter() const
return iteration limit.
Definition: spxsolver.cpp:1565
SPxSolver::Type type() const
return current Type.
Definition: soplexlegacy.h:108
Implementation of Sparse Linear Solver.
Abstract ratio test base class.Class SPxRatioTester is the virtual base class for computing the ratio...
virtual SPxSolver::Status getPrimal(Vector &vector) const
SoPlex start basis generation base class.SPxStarter is the virtual base class for classes generating ...
Definition: spxstarter.h:41
bool m_vanished
did the presolver solve the problem ?
Definition: soplexlegacy.h:53
void clear()
remove all elements.
Definition: dataarray.h:205
virtual void setOpttol(Real d)
set parameter opttol.
Definition: soplexlegacy.h:232
int getFactorCount() const
number of factorizations performed
Definition: slufactor.h:238
void setOpttol(Real d)
set parameter opttol.
Definition: spxsolver.cpp:940
virtual void setTester(SPxRatioTester *tester, const bool destroy=false)
setup ratio-tester to use.
Definition: soplexlegacy.h:147
Real terminationValue() const
return objective limit.
Definition: soplexlegacy.h:207
virtual void setTerminationTime(Real time=infinity)
set time limit.
Definition: spxsolver.cpp:1546
SPxSolver::Representation rep() const
return current basis representation.
Definition: soplexlegacy.h:113
virtual void setBasis(SPxSolver::VarStatus rows[], SPxSolver::VarStatus cols[])
Definition: soplexlegacy.h:158
SPxColId cId(int n) const
Returns the column identifier for column n.
Definition: spxlpbase.h:548
LP simplification base class.
Entry identifier class for items of a DataSet.Every item in a DataSet is assigned a DataKey by which ...
Definition: datakey.h:46
int nRows() const
Returns number of rows in LP.
Definition: spxlpbase.h:151
virtual int getFactorCount() const
number of factorizations performed
Definition: soplexlegacy.h:334
virtual void setFeastol(Real d)
set parameter feastol.
Definition: soplexlegacy.h:227
Steepest edge pricer.
virtual Real delta() const
guaranteed primal and dual bound violation for optimal solution, returning the maximum of feastol() a...
Definition: soplexlegacy.h:222
Leaving Simplex.
Definition: spxsolver.h:143
bool has_simplifier() const
has a simplifier been set?
Definition: soplexlegacy.h:132
declaration of types for file output
double Real
Definition: spxdefines.h:215
virtual void setPostScaler(SPxScaler *scaler, const bool destroy=false)
setup postscaler to use. If destroy is true, scaler will be freed in destructor.
SoPlexLegacy(SPxOut &outstream, SPxSolver::Type type=SPxSolver::LEAVE, SPxSolver::Representation rep=SPxSolver::COLUMN)
default construtor.
SoPlexLegacy & operator=(const SoPlexLegacy &rhs)
assignment operator.
Pricing
Pricing type.
Definition: spxsolver.h:152
Status status() const
Status of solution process.
Definition: spxsolve.cpp:1879
const char * getColName(int idx, const NameSet *cnames, char *buf)
Definition: soplexlegacy.h:268
virtual void setType(SPxSolver::Type tp)
set LEAVE or ENTER algorithm.
Definition: soplexlegacy.h:118
LP simplification abstract base class.Instances of classes derived from SPxSimplifier may be loaded t...
Definition: spxsimplifier.h:41
LP has been solved to optimality.
Definition: spxsolver.h:220
virtual bool writeState(const char *filename, const NameSet *rowNames=NULL, const NameSet *colNames=NULL) const
virtual bool terminate()
Definition: soplexlegacy.h:354
virtual void setPricer(SPxPricer *pricer, const bool destroy=false)
setup pricer to use. If destroy is true, pricer will be freed in destructor.
Definition: spxsolver.cpp:103
#define MSG_ERROR(x)
Prints out message x if the verbosity level is at least SPxOut::ERROR.
Definition: spxdefines.h:111
virtual Real terminationTime() const
return time limit.
Definition: spxsolver.cpp:1553
Wrapper for several output streams. A verbosity level is used to decide which stream to use and wheth...
Definition: spxout.h:63
virtual SPxSolver::Status getPrimalray(Vector &vector) const
main LP solver class
Real delta() const
guaranteed primal and dual bound violation for optimal solution, returning the maximum of feastol() a...
Definition: spxsolver.h:793
virtual bool writeBasisFile(const char *filename, const NameSet *rowNames, const NameSet *colNames)
Abstract pricer base class.Class SPxPricer is a pure virtual class defining the interface for pricer ...
Definition: spxpricer.h:46
virtual void setPricer(SPxPricer *pricer, const bool destroy=false)
setup pricer to use.
Definition: soplexlegacy.h:142
virtual bool readBasisFile(const char *filename, const NameSet *rowNames, const NameSet *colNames)
virtual SPxSolver::Status getSlacks(Vector &vector) const
virtual void setTerminationTime(Real time=infinity)
set time limit.
Definition: soplexlegacy.h:182
const char * getRowName(int idx, const NameSet *rnames, char *buf)
Definition: soplexlegacy.h:289
bool m_freePostScaler
true iff m_postScaler should be freed inside of this object
Definition: soplexlegacy.h:55
virtual SPxSolver::Status status() const
returns the current status
Definition: soplexlegacy.h:359
SPxSolver::VarStatus getBasisColStatus(int col) const
gets basis status for a single column.
virtual void setRep(SPxSolver::Representation p_rep)
set ROW or COLUMN representation.
Definition: soplexlegacy.h:123
bool has_postscaler() const
has a postscaler been set?
Definition: soplexlegacy.h:137
Bound flipping ratio test (long step dual) for SoPlex.
Preconfigured SoPlexLegacy LP-solver.
Definition: soplexlegacy.h:41
Set of strings.Class NameSet implements a symbol or name table. It allows to store or remove names (i...
Definition: nameset.h:61
virtual void setPricing(SPxSolver::Pricing pr)
set FULL or PARTIAL pricing.
Definition: soplexlegacy.h:103
Sequential object-oriented SimPlex.SPxSolver is an LP solver class using the revised Simplex algorith...
Definition: spxsolver.h:84
virtual void setTerminationIter(int iteration=-1)
set iteration limit.
Definition: spxsolver.cpp:1558
Implementation of Sparse Linear Solver.This class implements a SLinSolver interface by using the spar...
Definition: slufactor.h:41
Everything should be within this namespace.
virtual Real opttol() const
allowed optimality, i.e., dual feasibility tolerance.
Definition: soplexlegacy.h:217
virtual bool terminate()
Termination criterion.
Definition: spxsolve.cpp:1370
virtual void setTester(SPxRatioTester *tester, const bool destroy=false)
setup ratio-tester to use. If destroy is true, tester will be freed in destructor.
Definition: spxsolver.cpp:130
virtual Real objValue() const
Weighted start basis.
DataArray< SPxSolver::VarStatus > m_rowsbasisstatus
Definition: soplexlegacy.h:58
SPxSolver m_solver
solver
Definition: soplexlegacy.h:50
LP scaling base class.
virtual Real getFactorTime() const
time spent in factorizations
Definition: soplexlegacy.h:329
SPxScaler * m_postScaler
post-scaler
Definition: soplexlegacy.h:51
virtual Real getSolveTime() const
time spent in solves
Definition: soplexlegacy.h:339
Real terminationTime() const
return time limit.
Definition: soplexlegacy.h:187
LP scaler abstract base class.Instances of classes derived from SPxScaler may be loaded to SoPlex in ...
Definition: spxscaler.h:75
virtual Real terminationValue() const
return objective limit.
Definition: spxsolver.cpp:1615
void unsimplify() const
undoes preprocessing such that the unsimplified solution values and basis is available ...
virtual SPxSolver::Status getDual(Vector &vector) const
virtual SPxSolver::Status getDualfarkas(Vector &vector) const
Type type() const
return current Type.
Definition: spxsolver.h:475
SLUFactor m_slu
LU Factorisation.
Definition: soplexlegacy.h:49
virtual SPxSolver::Status getRedCost(Vector &vector) const
Real getSolveTime() const
time spent in solves
Definition: slufactor.h:243
bool m_freeSimplifier
true iff m_simplifier should be freed inside of this object
Definition: soplexlegacy.h:56
DataArray< SPxSolver::VarStatus > m_colsbasisstatus
Definition: soplexlegacy.h:57
virtual void setUtype(SLUFactor::UpdateType tp)
message handler
Definition: soplexlegacy.h:93
virtual void setStarter(SPxStarter *starter, const bool destroy=false)
setup starting basis generator to use.
Definition: soplexlegacy.h:152
int nCols() const
Returns number of columns in LP.
Definition: spxlpbase.h:157
Exception class for status exceptions during the computationsThis class is derived from the SoPlex ex...
Definition: exceptions.h:89
void setFeastol(Real d)
set parameter feastol.
Definition: spxsolver.cpp:928
bool m_freePreScaler
true iff m_preScaler should be freed inside of this object
Definition: soplexlegacy.h:54
Real opttol() const
allowed optimality, i.e., dual feasibility tolerance.
Definition: spxsolver.h:785
virtual int getSolveCount() const
number of solves performed
Definition: soplexlegacy.h:344
virtual void setTerminationValue(Real value=infinity)
set objective limit.
Definition: spxsolver.cpp:1610
virtual void qualBoundViolation(Real &maxviol, Real &sumviol) const
get violations of bounds.
const SPxBasis & basis() const
Return current basis.
Definition: spxsolver.h:1727
virtual SPxSolver::Status solve()
virtual void reLoad()
reload LP.
Definition: spxsolver.cpp:55
void reSize(int newsize)
reset size to newsize.
Definition: dataarray.h:223
Representation rep() const
return the current basis representation.
Definition: spxsolver.h:469
columnwise representation.
Definition: spxsolver.h:108
SPxSolver::Pricing pricing() const
return current Pricing.
Definition: soplexlegacy.h:98
virtual void qualConstraintViolation(Real &maxviol, Real &sumviol) const
get violation of constraints.
bool has(int pnum) const
does NameSet has a name with number pnum?
Definition: nameset.h:231
virtual void setSimplifier(SPxSimplifier *simpli, const bool destroy=false)
setup simplifier to use. If destroy is true, simpli will be freed in destructor.
virtual void setTerminationValue(Real val=infinity)
set objective limit.
Definition: soplexlegacy.h:202
int terminationIter() const
return iteration limit.
Definition: soplexlegacy.h:197
void setPricing(Pricing pr)
set FULL or PARTIAL pricing.
Definition: spxsolver.cpp:437
void setDelta(Real d)
set parameter delta, i.e., set feastol and opttol to same value.
Definition: spxsolver.cpp:952
virtual Real feastol() const
allowed primal feasibility tolerance.
Definition: soplexlegacy.h:212