00001 00006 #ifndef _LogarithmicInnerPenalty_h 00007 #define _LogarithmicInnerPenalty_h 00008 00009 00010 // SYSTEM INCLUDES 00011 // 00012 00013 // PROJECT INCLUDES 00014 // 00015 00016 // LOCAL INCLUDES 00017 // 00018 #include "Error.h" 00019 #include "InnerPenalty.h" 00020 00021 // FORWARD REFERENCES 00022 // 00023 00024 00025 class LogarithmicInnerPenalty 00026 : public InnerPenalty 00027 { 00028 public: 00029 // LIFECYCLE 00030 00033 LogarithmicInnerPenalty(); 00034 00040 LogarithmicInnerPenalty(CountedPtr<const FunctionBase> cpFunction); 00041 00044 ~LogarithmicInnerPenalty(void); 00045 00046 00047 // OPERATORS 00048 virtual std::auto_ptr<FunctionBase> Clone() const; 00049 00057 virtual double PenaltyValue(double arg) const; 00058 00059 // OPERATIONS 00060 00061 // ACCESS 00062 00063 virtual wxString ToString(bool full = true) const; 00064 /* 00065 static FunctionIdType ClassId(); 00066 00067 virtual FunctionIdType Id() const; 00068 */ 00069 00070 // INQUIRY 00071 00072 virtual int FunctionId() const; 00073 00074 protected: 00075 LogarithmicInnerPenalty(const LogarithmicInnerPenalty& from); 00076 00077 private: 00078 00079 }; 00080 00081 // INLINE METHODS 00082 // 00083 00084 // EXTERNAL REFERENCES 00085 // 00086 00087 #endif // _LogarithmicInnerPenalty_h