00001
00006 #ifndef _DichotomousDivisionIteration_h
00007 #define _DichotomousDivisionIteration_h
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include "../IterationData.h"
00018
00019
00020
00021
00022
00023 class DichotomousDivisionIteration
00024 : public IterationData
00025 {
00026 public:
00027
00028 typedef enum
00029 {
00030 XL,
00031 XM,
00032 XR
00033 } NextMiddleType;
00034
00035 typedef enum
00036 {
00037 LEFT,
00038 RIGHT
00039 } BetterPointType;
00040
00041
00042
00045 DichotomousDivisionIteration(double a,
00046 double xL,
00047 double xM,
00048 double xR,
00049 double b);
00050
00053 ~DichotomousDivisionIteration(void);
00054
00055
00056
00057
00058
00059 virtual ColumnVector EndValuePoint() const;
00060
00061 virtual vector<IterationDataIdType> ClassIds() const;
00062
00063 static IterationDataIdType ClassId();
00064
00067 double LeftBound() const;
00068
00071 double RightBound() const;
00072
00075 double LeftStep() const;
00076
00079 double MiddleStep() const;
00080
00083 double RightStep() const;
00084
00087 NextMiddleType NextMiddle() const;
00088 NextMiddleType& rNextMiddle();
00089
00090 BetterPointType BetterPoint() const;
00091 BetterPointType& rBetterPoint();
00092
00095 double Length() const;
00096
00097
00098
00099
00100 protected:
00101 private:
00102
00103 double mA;
00104 double mXl;
00105 double mXm;
00106 double mXr;
00107 double mB;
00108
00111 NextMiddleType mNextMiddle;
00112 BetterPointType mBetterPoint;
00113
00114 };
00115
00116
00117
00118
00119
00120
00121
00122 #endif // _DichotomousDivisionIteration_h