From d2429cb63b9fa69c9c7d994e8e2f5f3fcc636481 Mon Sep 17 00:00:00 2001 From: Steve Checkoway Date: Sat, 8 Jul 2006 07:49:42 +0000 Subject: [PATCH] Fix standard deviation calculation. This could probably be done using accumulate, multiplies, minus, bind2nd, distance, and compose2, but that's probably less clear. Something like float fMean = calc_mean( pStart, pEnd ); return sqrtf( accumulate(pStart, pEnd, 0.0f, compose2(multiplies(), bind2nd(minus(), fMean), bind2nd(minus(), fMean))) / distance(pStart, pEnd) ); These are easily templated too, if necessary. --- stepmania/src/RageUtil.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stepmania/src/RageUtil.cpp b/stepmania/src/RageUtil.cpp index 95c13af83f..457cd2ca09 100644 --- a/stepmania/src/RageUtil.cpp +++ b/stepmania/src/RageUtil.cpp @@ -946,7 +946,7 @@ float calc_stddev( const float *pStart, const float *pEnd ) float fDev = 0.0f; for( const float *i=pStart; i != pEnd; ++i ) fDev += (*i - fMean) * (*i - fMean); - fDev /= distance( pStart, pEnd ) - 1; + fDev /= distance( pStart, pEnd ); fDev = sqrtf( fDev ); return fDev;