00001
00006 #ifndef _QuadraticApproximationteration_h
00007 #define _QuadraticApproximationIteration_h
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include "../IterationData.h"
00018
00019
00020
00021
00022
00023 class QuadraticApproximationIteration
00024 : public IterationData
00025 {
00026 public:
00029 typedef enum {
00030 AM,
00031 XB,
00032 MB,
00033 AX,
00034 NONE_OK,
00035
00036
00037 NONE_ERROR
00038
00039 } NextSectionType;
00040
00041
00042
00043
00046 QuadraticApproximationIteration(double a,
00047 double b,
00048 double m,
00049 double x,
00050 bool xBetter);
00051
00054 ~QuadraticApproximationIteration(void);
00055
00056
00057
00058
00059
00060
00061
00062
00063 virtual ColumnVector EndValuePoint() const;
00064
00065 virtual vector<IterationDataIdType> ClassIds() const;
00066
00067 static IterationDataIdType ClassId();
00068
00071 double LeftBound() const;
00072
00075 double RightBound() const;
00076
00079 double TrialPoint() const;
00080
00084 double ApproximationStationaryPoint() const;
00085
00088 NextSectionType NextSection() const;
00089
00092 NextSectionType& rNextSection();
00093
00096 bool XIsBetter() const;
00097
00100 double BetterStep() const;
00101
00104 double WorseStep() const;
00105
00108 double Length() const;
00109
00110
00113 bool XOutOfBounds() const;
00114
00119 bool Succeeded() const;
00120
00121 protected:
00122 private:
00123
00124 double mA;
00125 double mB;
00126
00127 double mM;
00128 double mX;
00129
00130 bool mXBetter;
00131
00132 NextSectionType mNextSection;
00133 };
00134
00135
00136
00137
00138
00139
00140
00141 #endif // _QuadraticApproximationIteration_h