- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- File List
- File Members

# /home/coin/SVN-release/Alps-1.2.1/Clp/src/ClpSimplexOther.hpp

Go to the documentation of this file.

    00001 /* $Id: ClpSimplexOther.hpp 1525 2010-02-26 17:27:59Z mjs $ */
    00002 // Copyright (C) 2004, International Business Machines
    00003 // Corporation and others.  All Rights Reserved.
    00004
    00005 /*
    00006    Authors
    00007
    00008    John Forrest
    00009
    00010  */
    00011 #ifndef ClpSimplexOther_H
    00012 #define ClpSimplexOther_H
    00013
    00014 #include "ClpSimplex.hpp"
    00015
    00023 class ClpSimplexOther : public ClpSimplex {
    00024
    00025 public:
    00026
    00049      void dualRanging(int numberCheck, const int * which,
    00050                       double * costIncrease, int * sequenceIncrease,
    00051                       double * costDecrease, int * sequenceDecrease,
    00052                       double * valueIncrease = NULL, double * valueDecrease = NULL);
    00067      void primalRanging(int numberCheck, const int * which,
    00068                         double * valueIncrease, int * sequenceIncrease,
    00069                         double * valueDecrease, int * sequenceDecrease);
    00083      int parametrics(double startingTheta, double & endingTheta, double reportIncrement,
    00084                      const double * changeLowerBound, const double * changeUpperBound,
    00085                      const double * changeLowerRhs, const double * changeUpperRhs,
    00086                      const double * changeObjective);
    00087 private:
    00096      int parametricsLoop(double startingTheta, double & endingTheta, double reportIncrement,
    00097                          const double * changeLower, const double * changeUpper,
    00098                          const double * changeObjective, ClpDataSave & data,
    00099                          bool canTryQuick);
    00107      void statusOfProblemInParametrics(int type, ClpDataSave & saveData);
    00118      int whileIterating(double startingTheta, double & endingTheta, double reportIncrement,
    00119                         const double * changeLower, const double * changeUpper,
    00120                         const double * changeObjective);
    00125      int nextTheta(int type, double maxTheta, double * primalChange, double * dualChange,
    00126                    const double * changeLower, const double * changeUpper,
    00127                    const double * changeObjective);
    00133      void checkDualRatios(CoinIndexedVector * rowArray,
    00134                           CoinIndexedVector * columnArray,
    00135                           double & costIncrease, int & sequenceIncrease, double & alphaIncrease,
    00136                           double & costDecrease, int & sequenceDecrease, double & alphaDecrease);
    00141      void checkPrimalRatios(CoinIndexedVector * rowArray,
    00142                             int direction);
    00144      double primalRanging1(int whichIn, int whichOther);
    00145
    00146 public:
    00161      int writeBasis(const char *filename,
    00162                     bool writeValues = false,
    00163                     int formatType = 0) const;
    00165      int readBasis(const char *filename);
    00171      ClpSimplex * dualOfModel(double fractionRowRanges = 1.0, double fractionColumnRanges = 1.0) const;
    00175      int restoreFromDual(const ClpSimplex * dualProblem);
    00179      ClpSimplex * crunch(double * rhs, int * whichRows, int * whichColumns,
    00180                          int & nBound, bool moreBounds = false, bool tightenBounds = false);
    00184      void afterCrunch(const ClpSimplex & small,
    00185                       const int * whichRows, const int * whichColumns,
    00186                       int nBound);
    00188      void cleanupAfterPostsolve();
    00191      int tightenIntegerBounds(double * rhsSpace);
    00202      int expandKnapsack(int knapsackRow, int & numberOutput,
    00203                         double * buildObj, CoinBigIndex * buildStart,
    00204                         int * buildRow, double * buildElement, int reConstruct = -1) const;
    00206 };
    00207 #endif