00001
00006 #ifndef _FibonacciDivisionIteration_h
00007 #define _FibonacciDivisionIteration_h
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include "../IterationData.h"
00018
00019
00020
00021
00022
00023 class FibonacciDivisionIteration
00024 : public IterationData
00025 {
00026 public:
00027
00028 typedef enum
00029 {
00030 LAMBDA,
00031 MU,
00032 B
00033 } NextRightBoundType;
00034
00035
00036
00039 FibonacciDivisionIteration(double a,
00040 double lambda,
00041 double mu,
00042 double b);
00043
00046 ~FibonacciDivisionIteration(void);
00047
00048
00049
00050
00051
00052 virtual ColumnVector EndValuePoint() const;
00053
00054 virtual vector<IterationDataIdType> ClassIds() const;
00055
00056 static IterationDataIdType ClassId();
00057
00060 double LeftBound() const;
00061
00064 double RightBound() const;
00065
00068 double Lambda() const;
00069
00072 double Mu() const;
00073
00074 double BetterPoint() const;
00075 double WorsePoint() const;
00076
00077 double MuCoefficient() const;
00078 double LambdaCoefficient() const;
00079
00080
00081
00082
00083
00084
00085 NextRightBoundType NextRightBound() const;
00086 NextRightBoundType& rNextRightBound();
00087
00088 bool Last() const;
00089 bool& rLast();
00090
00093 double Length() const;
00094
00095
00096
00097 protected:
00098 private:
00099
00100 double mA;
00101 double mLambda;
00102 double mMu;
00103 double mB;
00104 bool mLast;
00105
00106 NextRightBoundType mNextRightBound;
00107
00108 };
00109
00110
00111
00112
00113
00114
00115
00116 #endif // _FibonacciDivisionIteration_h