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

- File List
- File Members

# /home/coin/SVN-release/Cgl-0.55.0/Clp/src/ClpSimplexOther.hpp

Go to the documentation of this file.

    00001 /* $Id: ClpSimplexOther.hpp 1458 2009-11-05 12:34:07Z forrest $ */
    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