35 #ifndef AIMS_OPTIMIZATION_LM2GAUSS_H 36 #define AIMS_OPTIMIZATION_LM2GAUSS_H 47 T k2=(T)1.0, T m2=(T)0.0, T s2=(T)1.0 );
54 template<
class T >
inline 58 this->
par.push_back( k1 );
59 this->
par.push_back( m1 );
60 this->
par.push_back( s1 );
61 this->
par.push_back( k2 );
62 this->
par.push_back( m2 );
63 this->
par.push_back( s2 );
65 this->
der = std::vector< T >( 6 );
70 template<
class T >
inline 75 for (
int i=0; i<6; i+=3 )
77 T arg = ( x - this->
par[ i + 1 ] ) / this->
par[ i + 2 ];
78 T ex = (T)exp( -1.0 * ( arg * arg ) );
79 T fac = (T)2 * this->
par[ i ] * ex * arg;
81 y += this->
par[ i ] * ex;
84 this->
der[ i + 1 ] = fac / this->
par[ i + 2 ];
85 this->
der[ i + 2 ] = fac * arg / this->
par[ i + 2 ];
92 template<
class T >
inline 97 for (
int i=0; i<6; i+=3 )
99 T arg = ( x - this->
par[ i + 1 ] ) / this->
par[ i + 2 ];
101 y += this->
par[ i ] * (T)exp( -1.0 * ( arg * arg ) );
LM2Gaussian(T k1=(T) 1.0, T m1=(T) 0.0, T s1=(T) 1.0, T k2=(T) 1.0, T m2=(T) 0.0, T s2=(T) 1.0)