42 template <
typename RealNumberType>
50 template <
typename RealNumberType>
53 : mySamples( 0 ), myExp( 0 ), myExp2( 0 ), myMax( 0 ),myMin( 0 ), myMedian(0), myStoreSamples (storeSample),
56 myValues= std::vector<RealNumberType> ();
63 template <
typename RealNumberType>
77 myValues= std::vector<RealNumberType> ();
78 for(
unsigned int i=0; i<other.
myValues.size(); i++){
79 myValues.push_back(other.
myValues.at(i));
90 template <
typename RealNumberType>
107 myValues= std::vector<RealNumberType> ();
108 for(
unsigned int i=0; i<other.
myValues.size(); i++){
109 myValues.push_back(other.
myValues.at(i));
125 template <
typename RealNumberType>
128 DGtal::Statistic<RealNumberType>::operator+=
133 if ( ( mySamples == 0 ) || ( other.
myMin < myMin ) )
135 if ( ( mySamples == 0 ) || ( other.
myMax > myMax ) )
139 myExp += other.
myExp;
141 myIsTerminated=
false;
144 for(
unsigned int i=0; i<other.
myValues.size(); i++){
145 myValues.push_back(other.
myValues.at(i));
148 myStoreSamples=
false;
163 template <
typename RealNumberType>
166 DGtal::Statistic<RealNumberType>::operator+
185 template <
typename RealNumberType>
196 template <
typename RealNumberType>
201 return myExp / (RealNumberType) mySamples;
207 template <
typename RealNumberType>
212 return ( myExp2 / (RealNumberType) mySamples ) - mean() * mean();
218 template <
typename RealNumberType>
223 ASSERT( mySamples != 0 );
224 return ( (RealNumberType) mySamples ) * variance()
225 / ( (RealNumberType) mySamples );
231 template <
typename RealNumberType>
242 template <
typename RealNumberType>
260 template <
typename RealNumberType>
265 ASSERT( myStoreSamples || myIsTerminated );
270 nth_element( myValues.begin(), myValues.begin()+(myValues.size()/2),
272 return *(myValues.begin()+(myValues.size()/2));
283 template <
typename RealNumberType>
288 if ( mySamples == 0 )
293 else if ( v < myMin ) myMin = v;
294 else if ( v > myMax ) myMax = v;
299 myValues.push_back(v);
317 template <
typename RealNumberType>
318 template <
class Iter>
323 for ( ; b != e; ++b )
330 template <
typename RealNumberType>
341 myIsTerminated=
false;
359 template<
typename RealNumberType>
367 myStoreSamples=
false;
380 template <
typename RealNumberType>
384 ( std::ostream& thatStream )
const
386 thatStream <<
"[Statistic "
387 <<
" nb=" << samples()
389 <<
" var=" << variance()
390 <<
" uvar=" << unbiasedVariance()
400 template <
typename RealNumberType>
418 template <
typename RealNumberType>