00001
00006 #ifndef _GradientMethodIteration_h
00007 #define _GradientMethodIteration_h
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include "IterationData.h"
00018 #include "util.h"
00019
00020
00021
00022
00023
00024 class GradientMethodIteration
00025 : public IterationData
00026 {
00027 public:
00028
00029
00030
00033 GradientMethodIteration(void);
00034
00040 GradientMethodIteration(const ColumnVector& staringPoint,
00041 const ColumnVector& gradient);
00042
00049 GradientMethodIteration(const ColumnVector& staringPoint,
00050 const ColumnVector& gradient,
00051 const ColumnVector& direction);
00052
00060 GradientMethodIteration(const ColumnVector& staringPoint,
00061 const ColumnVector& gradient,
00062 const ColumnVector& direction,
00063 const ColumnVector& endPoint);
00064
00072 GradientMethodIteration(const ColumnVector& staringPoint,
00073 const ColumnVector& gradient,
00074 const ColumnVector& direction,
00075 double tau,
00076 const ColumnVector& endPoint);
00077
00080 ~GradientMethodIteration(void);
00081
00082
00083
00084
00085
00086
00087
00088 virtual ColumnVector EndValuePoint() const;
00089
00090 virtual vector<IterationDataIdType> ClassIds() const;
00091
00092 static IterationDataIdType ClassId();
00093
00094 const ColumnVector& StartingPoint() const;
00095 ColumnVector& rStartingPoint();
00096
00097 const ColumnVector& Gradient() const;
00098 ColumnVector& rGradient();
00099
00100 const ColumnVector& Direction() const;
00101 ColumnVector& rDirection();
00102
00103 double Tau() const;
00104 double& rTau();
00105
00106 const ColumnVector& EndPoint() const;
00107 ColumnVector& rEndPoint();
00108
00109
00110 bool StepMade() const;
00111
00112 protected:
00113 private:
00114 ColumnVector mStartingPoint;
00115
00116 ColumnVector mGradient;
00117
00118 ColumnVector mDirection;
00119
00120 double mTau;
00121
00122 ColumnVector mEndPoint;
00123 };
00124
00125
00126
00127
00128
00129
00130
00131 #endif // _GradientMethodIteration_h