/build/buildd/clp-1.12.0/Clp/src/ClpSimplexPrimal.hpp
Go to the documentation of this file.
00001 /* $Id: ClpSimplexPrimal.hpp 1525 2010-02-26 17:27:59Z mjs $ */
00002 // Copyright (C) 2002, International Business Machines
00003 // Corporation and others.  All Rights Reserved.
00004 
00005 /*
00006    Authors
00007 
00008    John Forrest
00009 
00010  */
00011 #ifndef ClpSimplexPrimal_H
00012 #define ClpSimplexPrimal_H
00013 
00014 #include "ClpSimplex.hpp"
00015 
00023 class ClpSimplexPrimal : public ClpSimplex {
00024 
00025 public:
00026 
00115      int primal(int ifValuesPass = 0, int startFinishOptions = 0);
00117 
00120 
00121      void alwaysOptimal(bool onOff);
00122      bool alwaysOptimal() const;
00127      void exactOutgoing(bool onOff);
00128      bool exactOutgoing() const;
00130 
00145      int whileIterating(int valuesOption);
00146 
00165      int pivotResult(int ifValuesPass = 0);
00166 
00167 
00172      int updatePrimalsInPrimal(CoinIndexedVector * rowArray,
00173                                double theta,
00174                                double & objectiveChange,
00175                                int valuesPass);
00184      void primalRow(CoinIndexedVector * rowArray,
00185                     CoinIndexedVector * rhsArray,
00186                     CoinIndexedVector * spareArray,
00187                     int valuesPass);
00195      void primalColumn(CoinIndexedVector * updateArray,
00196                        CoinIndexedVector * spareRow1,
00197                        CoinIndexedVector * spareRow2,
00198                        CoinIndexedVector * spareColumn1,
00199                        CoinIndexedVector * spareColumn2);
00200 
00203      int checkUnbounded(CoinIndexedVector * ray, CoinIndexedVector * spare,
00204                         double changeCost);
00215      void statusOfProblemInPrimal(int & lastCleaned, int type,
00216                                   ClpSimplexProgress * progress,
00217                                   bool doFactorization,
00218                                   int ifValuesPass,
00219                                   ClpSimplex * saveModel = NULL);
00221      void perturb(int type);
00223      bool unPerturb();
00225      int unflag();
00231      int nextSuperBasic(int superBasicType, CoinIndexedVector * columnArray);
00232 
00234      void primalRay(CoinIndexedVector * rowArray);
00236      void clearAll();
00237 
00239      int lexSolve();
00240 
00242 };
00243 #endif
00244