mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-26 23:20:29 -05:00
Refactor mean calculation into static helper method
This commit is contained in:
1 parent
1ec53cc3f2
commit
8f365ea340
3 files changed
+71
-16
No files matched your search
@@ -164,22 +164,7 @@ void RigStatisticsMath::calculateStatisticsCurves( const std::vector<double>& va
|
||||
*p90 = HUGE_VAL;
|
||||
}
|
||||
|
||||
// Calculate mean separately
|
||||
std::vector<double> validValues = values;
|
||||
validValues.erase( std::remove_if( validValues.begin(),
|
||||
validValues.end(),
|
||||
[]( double x ) { return !RiaStatisticsTools::isValidNumber( x ); } ),
|
||||
validValues.end() );
|
||||
|
||||
if ( !validValues.empty() )
|
||||
{
|
||||
double valueSum = std::accumulate( validValues.begin(), validValues.end(), 0.0 );
|
||||
*mean = valueSum / validValues.size();
|
||||
}
|
||||
else
|
||||
{
|
||||
*mean = HUGE_VAL;
|
||||
}
|
||||
*mean = calculateMean( values );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -430,6 +415,26 @@ std::expected<std::vector<double>, std::string>
|
||||
return resultValues;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
double RigStatisticsMath::calculateMean( const std::vector<double>& values )
|
||||
{
|
||||
std::vector<double> validValues = values;
|
||||
validValues.erase( std::remove_if( validValues.begin(),
|
||||
validValues.end(),
|
||||
[]( double x ) { return !RiaStatisticsTools::isValidNumber( x ); } ),
|
||||
validValues.end() );
|
||||
|
||||
if ( !validValues.empty() )
|
||||
{
|
||||
double valueSum = std::accumulate( validValues.begin(), validValues.end(), 0.0 );
|
||||
return valueSum / validValues.size();
|
||||
}
|
||||
|
||||
return HUGE_VAL;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
Reference in new issue
Block a user