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

- File List
- File Members

# /home/coin/SVN-release/Cgl-0.53.1/Clp/src/ClpPredictorCorrector.hpp

Go to the documentation of this file.

    00001 // Copyright (C) 2003, International Business Machines
    00002 // Corporation and others.  All Rights Reserved.
    00003
    00004 /*
    00005    Authors
    00006
    00007    John Forrest
    00008
    00009  */
    00010 #ifndef ClpPredictorCorrector_H
    00011 #define ClpPredictorCorrector_H
    00012
    00013 #include "ClpInterior.hpp"
    00014
    00036 class ClpPredictorCorrector : public ClpInterior {
    00037
    00038 public:
    00039
    00049   int solve();
    00051
    00054
    00055   //phase  - 0 predictor
    00056   //         1 corrector
    00057   //         2 primal dual
    00058   double findStepLength( int phase);
    00060   double findDirectionVector(const int phase);
    00062   int createSolution();
    00064   //phase 0=as is , 1 = after predictor , 2 after corrector
    00065   double complementarityGap(int & numberComplementarityPairs,int & numberComplementarityItems,
    00066                             const int phase);
    00068   //phase 0=affine , 1 = corrector , 2 = primal-dual
    00069   void setupForSolve(const int phase);
    00071   void solveSystem(double * region1, double * region2,
    00072                    const double * region1In, const double * region2In,
    00073                    const double * saveRegion1, const double * saveRegion2,
    00074                    bool gentleRefine);
    00076   bool checkGoodMove(const bool doCorrector,double & bestNextGap,
    00077                      bool allowIncreasingGap);
    00079   bool checkGoodMove2(double move,double & bestNextGap,
    00080                       bool allowIncreasingGap);
    00082   //returns number fixed
    00083   int updateSolution(double nextGap);
    00085   double affineProduct();
    00087   void debugMove(int phase,double primalStep, double dualStep);
    00089
    00090 };
    00091 #endif