From f7e7bea9a8cb245f93795cdca76bd81bfc280f62 Mon Sep 17 00:00:00 2001 From: Steve Checkoway Date: Thu, 28 Dec 2006 03:00:20 +0000 Subject: [PATCH] Simplify. --- stepmania/src/RageUtil.cpp | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/stepmania/src/RageUtil.cpp b/stepmania/src/RageUtil.cpp index d1eefea980..b8627624d4 100644 --- a/stepmania/src/RageUtil.cpp +++ b/stepmania/src/RageUtil.cpp @@ -1002,31 +1002,27 @@ float calc_stddev( const float *pStart, const float *pEnd, bool bSample ) bool CalcLeastSquares( const vector< pair > &vCoordinates, float &pfSlope, float &pfIntercept, float &pfError ) { - int iNumSamples = vCoordinates.size(); - float fNumSamples = static_cast(iNumSamples); - if( iNumSamples == 0 ) - { + if( vCoordinates.empty() ) return false; - } float fSumXX = 0.0f, fSumXY = 0.0f, fSumX = 0.0f, fSumY = 0.0f; - for( int i = 0; i < iNumSamples; ++i ) + for( unsigned i = 0; i < vCoordinates.size(); ++i ) { fSumXX += vCoordinates[i].first * vCoordinates[i].first; fSumXY += vCoordinates[i].first * vCoordinates[i].second; fSumX += vCoordinates[i].first; fSumY += vCoordinates[i].second; } - float fDenominator = fNumSamples * fSumXX - fSumX * fSumX; - pfSlope = (fNumSamples * fSumXY - fSumX * fSumY) / fDenominator; + const float fDenominator = vCoordinates.size() * fSumXX - fSumX * fSumX; + pfSlope = (vCoordinates.size() * fSumXY - fSumX * fSumY) / fDenominator; pfIntercept = (fSumXX * fSumY - fSumX * fSumXY) / fDenominator; pfError = 0.0f; - for( int i = 0; i < iNumSamples; ++i ) + for( unsigned i = 0; i < vCoordinates.size(); ++i ) { - float fOneError = (vCoordinates[i].second - (pfIntercept + pfSlope * vCoordinates[i].first)); + const float fOneError = pfIntercept + pfSlope * vCoordinates[i].first - vCoordinates[i].second; pfError += fOneError * fOneError; } - pfError /= fNumSamples; + pfError /= vCoordinates.size(); pfError = sqrtf( pfError ); return true; }