00001 00012 #ifdef _MSC_VER 00013 #include "msdevstudio/MSconfig.h" 00014 #endif 00015 00016 #include "ConstantF.h" 00017 00018 #include "FunctionHelper.h" 00019 00020 #include <cassert> 00021 00022 #ifdef ITERATOR_MEMBER_DEFECT 00023 using namespace std; 00024 #else 00025 using std::vector; 00026 #endif 00027 00028 namespace hippodraw { 00029 00030 ConstantF::ConstantF ( ) 00031 { 00032 initialize (); 00033 } 00034 00035 ConstantF::ConstantF ( double value ) 00036 { 00037 initialize (); 00038 00039 m_parms[0] = value; 00040 } 00041 00042 void ConstantF::initialize () 00043 { 00044 m_name = "Constant"; 00045 m_parm_names.push_back ( "value" ); 00046 00047 resize (); 00048 } 00049 00050 FunctionBase * ConstantF::clone () const 00051 { 00052 return new ConstantF ( *this ); 00053 } 00054 00055 double ConstantF::operator () ( double ) const 00056 { 00057 return m_parms[0]; 00058 } 00059 00060 void 00061 ConstantF:: 00062 initialParameters ( const FunctionHelper * helper ) 00063 { 00064 m_parms[0] = helper->meanValue (); 00065 } 00066 00067 double ConstantF::derivByParm ( int i, double ) const 00068 { 00069 assert ( i == 0 ); 00070 00071 return 1.0; 00072 } 00073 00074 } // namespace hippodraw