mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Several performance fixes (#9026)
* #9023 Performance: Use count instead of for loop * #9023 Analyzer: Cache vector names for categories * #9023 Performance : Use cached ensemble analyzer * #9023 Performance : Add min/max values to ensemble statistics * #9023 Performance : Improve statistics calculator * #9023 Performance : Use high performance toInt() * #9023 Performance : Build summary addresses in parallell
This commit is contained in:
@@ -39,6 +39,8 @@
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimEnsembleStatisticsCase::RimEnsembleStatisticsCase( RimEnsembleCurveSet* curveSet )
|
||||
: m_minimumValue( DOUBLE_INF )
|
||||
, m_maximumValue( -DOUBLE_INF )
|
||||
{
|
||||
m_curveSet = curveSet;
|
||||
}
|
||||
@@ -83,6 +85,14 @@ const std::vector<double>& RimEnsembleStatisticsCase::mean() const
|
||||
return m_meanData;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
const std::pair<double, double> RimEnsembleStatisticsCase::minimumAndMaximumValues() const
|
||||
{
|
||||
return { m_minimumValue, m_maximumValue };
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -195,6 +205,11 @@ void RimEnsembleStatisticsCase::calculate( const std::vector<RimSummaryCase*> su
|
||||
m_p50Data.push_back( p50 );
|
||||
m_p90Data.push_back( p90 );
|
||||
m_meanData.push_back( mean );
|
||||
|
||||
const auto [min, max] = std::minmax_element( begin( valuesAtTimeStep ), end( valuesAtTimeStep ) );
|
||||
|
||||
m_maximumValue = std::max( m_maximumValue, *max );
|
||||
m_minimumValue = std::min( m_minimumValue, *min );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user