41 template<
typename TReal>
42 struct Gauss : std::unary_function <TReal, TReal> {
70 template<
typename TReal>
84 TReal T2 = exp( -0.5 * pow( ( (
x-
mu_ ) /
sigma_ ) , TReal(2.) ) );
93 template<
typename TReal>
95 std::vector<TReal> &gauss,
96 std::vector<TReal> &
x )
100 gauss.resize(
x.size());
101 std::transform(
x.begin(),
x.end(),gauss.begin(),g);
104 TReal sum = std::accumulate(gauss.begin() , gauss.end() , 0.);
105 std::transform(gauss.begin(),gauss.end(),gauss.begin(),std::bind2nd(std::divides<TReal>(),sum )) ;
106 TReal sumfilter = std::accumulate(gauss.begin(),gauss.end(),0.);
111 template<
typename TReal>
113 std::vector<TReal> &mh
117 TReal sum = std::accumulate(mh.begin() , mh.end() , 0.);
119 std::transform(mh.begin(),mh.end(),mh.begin(),std::bind2nd(std::minus<TReal>(), sum )) ;
122 for(
typename std::vector<TReal>::iterator it = mh.begin() ;it != mh.end(); ++it)
126 std::transform(mh.begin(),mh.end(),mh.begin(),std::bind2nd(std::divides<TReal>(), sumAbs )) ;
129 template<
typename TReal>
133 gauss1d.resize(
x.size());
134 std::transform(
x.begin(),
x.end(),gauss1d.begin(),g);
136 TReal sum = std::accumulate(gauss1d.begin(),gauss1d.end(),0.);