ClpSimplexPrimal.hpp
Go to the documentation of this file.
1 /* $Id: ClpSimplexPrimal.hpp 1525 2010-02-26 17:27:59Z mjs $ */
2 // Copyright (C) 2002, International Business Machines
3 // Corporation and others. All Rights Reserved.
4 
5 /*
6  Authors
7 
8  John Forrest
9 
10  */
11 #ifndef ClpSimplexPrimal_H
12 #define ClpSimplexPrimal_H
13 
14 #include "ClpSimplex.hpp"
15 
23 class ClpSimplexPrimal : public ClpSimplex {
24 
25 public:
26 
115  int primal(int ifValuesPass = 0, int startFinishOptions = 0);
117 
120 
121  void alwaysOptimal(bool onOff);
122  bool alwaysOptimal() const;
127  void exactOutgoing(bool onOff);
128  bool exactOutgoing() const;
130 
145  int whileIterating(int valuesOption);
146 
165  int pivotResult(int ifValuesPass = 0);
166 
167 
172  int updatePrimalsInPrimal(CoinIndexedVector * rowArray,
173  double theta,
174  double & objectiveChange,
175  int valuesPass);
184  void primalRow(CoinIndexedVector * rowArray,
185  CoinIndexedVector * rhsArray,
186  CoinIndexedVector * spareArray,
187  int valuesPass);
195  void primalColumn(CoinIndexedVector * updateArray,
196  CoinIndexedVector * spareRow1,
197  CoinIndexedVector * spareRow2,
198  CoinIndexedVector * spareColumn1,
199  CoinIndexedVector * spareColumn2);
200 
203  int checkUnbounded(CoinIndexedVector * ray, CoinIndexedVector * spare,
204  double changeCost);
215  void statusOfProblemInPrimal(int & lastCleaned, int type,
216  ClpSimplexProgress * progress,
217  bool doFactorization,
218  int ifValuesPass,
219  ClpSimplex * saveModel = NULL);
221  void perturb(int type);
223  bool unPerturb();
225  int unflag();
231  int nextSuperBasic(int superBasicType, CoinIndexedVector * columnArray);
232 
234  void primalRay(CoinIndexedVector * rowArray);
236  void clearAll();
237 
239  int lexSolve();
240 
242 };
243 #endif
244