35 #ifndef AIMS_OPTIMIZATION_LMGAUSS_H 36 #define AIMS_OPTIMIZATION_LMGAUSS_H 46 LMGaussian( T k=(T)1.0, T m=(T)0.0, T s=(T)1.0 );
53 template<
class T >
inline 56 this->
par.push_back( k );
57 this->
par.push_back( m );
58 this->
par.push_back( s );
60 this->
der = std::vector< T >( 3 );
65 template<
class T >
inline 68 T arg = ( x - this->
par[ 1 ] ) / this->
par[ 2 ];
69 T ex = (T)exp( -1.0 * (arg * arg ) );
70 T fac = (T)2 * this->
par[ 0 ] * ex * arg;
73 this->
der[ 1 ] = fac / this->
par[ 2 ];
74 this->
der[ 2 ] = fac * arg / this->
par[ 2 ];
76 return this->
par[ 0 ] * ex;
80 template<
class T >
inline 83 T arg = ( x - this->
par[ 1 ] ) / this->
par[ 2 ];
85 return this->
par[ 0 ] * (T)exp( -1.0 * ( arg * arg ) );
LMGaussian(T k=(T) 1.0, T m=(T) 0.0, T s=(T) 1.0)