aboutsummaryrefslogtreecommitdiff
path: root/sp/src/public/tier1/utlmovingaverage.h
diff options
context:
space:
mode:
authorJørgen P. Tjernø <[email protected]>2013-12-02 19:31:46 -0800
committerJørgen P. Tjernø <[email protected]>2013-12-02 19:46:31 -0800
commitf56bb35301836e56582a575a75864392a0177875 (patch)
treede61ddd39de3e7df52759711950b4c288592f0dc /sp/src/public/tier1/utlmovingaverage.h
parentMark some more files as text. (diff)
downloadsource-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz
source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip
Fix line endings. WHAMMY.
Diffstat (limited to 'sp/src/public/tier1/utlmovingaverage.h')
-rw-r--r--sp/src/public/tier1/utlmovingaverage.h206
1 files changed, 103 insertions, 103 deletions
diff --git a/sp/src/public/tier1/utlmovingaverage.h b/sp/src/public/tier1/utlmovingaverage.h
index 997b07c9..b91ccb60 100644
--- a/sp/src/public/tier1/utlmovingaverage.h
+++ b/sp/src/public/tier1/utlmovingaverage.h
@@ -1,103 +1,103 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose: Simple moving average class
-//
-// $NoKeywords: $
-//
-//
-//=============================================================================//
-#ifndef MOVING_AVERAGE_H
-#define MOVING_AVERAGE_H
-
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include "tier0/platform.h"
-#include "tier0/basetypes.h"
-
-template<uint32 TBufferSize> class CUtlMovingAverage
-{
-public:
- CUtlMovingAverage() :
- m_nValuesPushed( 0 ),
- m_flTotal( 0.0f )
- {
- }
-
- void Reset()
- {
- m_nValuesPushed = 0;
- m_flTotal = 0.0f;
- }
-
- uint32 GetTotalValuesPushed() const
- {
- return m_nValuesPushed;
- }
-
- float GetAverage( )
- {
- uint n = MIN( TBufferSize, m_nValuesPushed );
- return n ? ( m_flTotal / static_cast<double>( n ) ) : 0.0f;
- }
-
- void GetAverageAndAbsRange( float *pflOutAverage, float *pflOutAbsRange, float *pflMinTime, float *pflMaxTime )
- {
- if ( m_nValuesPushed == 0 )
- {
- *pflOutAverage = 0;
- *pflOutAbsRange = 0;
- *pflMinTime = 0;
- *pflMaxTime = 0;
- return;
- }
-
- *pflOutAverage = GetAverage();
-
- const int nNumValues = MIN( m_nValuesPushed, TBufferSize );
-
- float flAbsRange = 0;
- float flMinTime = 9e+9;
- float flMaxTime = 0;
-
- for ( int i = 0; i < nNumValues; ++i )
- {
- float flDif = ( m_Buffer[i] - *pflOutAverage );
- flAbsRange = MAX( flAbsRange, abs( flDif ) );
- flMinTime = MIN( flMinTime, m_Buffer[i] );
- flMaxTime = MAX( flMaxTime, m_Buffer[i] );
- }
-
- *pflOutAbsRange = flAbsRange;
- *pflMinTime = flMinTime;
- *pflMaxTime = flMaxTime;
- }
-
- void PushValue( float v )
- {
- uint nIndex = m_nValuesPushed % TBufferSize;
-
- if ( m_nValuesPushed >= TBufferSize )
- {
- m_flTotal = MAX( m_flTotal - m_Buffer[nIndex], 0.0f );
- }
- m_flTotal += v;
-
- m_Buffer[nIndex] = v;
- m_nValuesPushed++;
-
- if ( UINT_MAX == m_nValuesPushed )
- {
- Reset();
- }
- }
-
-private:
- float m_Buffer[TBufferSize];
- uint32 m_nValuesPushed;
-
- double m_flTotal;
-};
-
-#endif // MOVING_AVERAGE_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose: Simple moving average class
+//
+// $NoKeywords: $
+//
+//
+//=============================================================================//
+#ifndef MOVING_AVERAGE_H
+#define MOVING_AVERAGE_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "tier0/platform.h"
+#include "tier0/basetypes.h"
+
+template<uint32 TBufferSize> class CUtlMovingAverage
+{
+public:
+ CUtlMovingAverage() :
+ m_nValuesPushed( 0 ),
+ m_flTotal( 0.0f )
+ {
+ }
+
+ void Reset()
+ {
+ m_nValuesPushed = 0;
+ m_flTotal = 0.0f;
+ }
+
+ uint32 GetTotalValuesPushed() const
+ {
+ return m_nValuesPushed;
+ }
+
+ float GetAverage( )
+ {
+ uint n = MIN( TBufferSize, m_nValuesPushed );
+ return n ? ( m_flTotal / static_cast<double>( n ) ) : 0.0f;
+ }
+
+ void GetAverageAndAbsRange( float *pflOutAverage, float *pflOutAbsRange, float *pflMinTime, float *pflMaxTime )
+ {
+ if ( m_nValuesPushed == 0 )
+ {
+ *pflOutAverage = 0;
+ *pflOutAbsRange = 0;
+ *pflMinTime = 0;
+ *pflMaxTime = 0;
+ return;
+ }
+
+ *pflOutAverage = GetAverage();
+
+ const int nNumValues = MIN( m_nValuesPushed, TBufferSize );
+
+ float flAbsRange = 0;
+ float flMinTime = 9e+9;
+ float flMaxTime = 0;
+
+ for ( int i = 0; i < nNumValues; ++i )
+ {
+ float flDif = ( m_Buffer[i] - *pflOutAverage );
+ flAbsRange = MAX( flAbsRange, abs( flDif ) );
+ flMinTime = MIN( flMinTime, m_Buffer[i] );
+ flMaxTime = MAX( flMaxTime, m_Buffer[i] );
+ }
+
+ *pflOutAbsRange = flAbsRange;
+ *pflMinTime = flMinTime;
+ *pflMaxTime = flMaxTime;
+ }
+
+ void PushValue( float v )
+ {
+ uint nIndex = m_nValuesPushed % TBufferSize;
+
+ if ( m_nValuesPushed >= TBufferSize )
+ {
+ m_flTotal = MAX( m_flTotal - m_Buffer[nIndex], 0.0f );
+ }
+ m_flTotal += v;
+
+ m_Buffer[nIndex] = v;
+ m_nValuesPushed++;
+
+ if ( UINT_MAX == m_nValuesPushed )
+ {
+ Reset();
+ }
+ }
+
+private:
+ float m_Buffer[TBufferSize];
+ uint32 m_nValuesPushed;
+
+ double m_flTotal;
+};
+
+#endif // MOVING_AVERAGE_H