#9023 Performance : Temporary fix for axis range aggregation

This commit is contained in:
Magne Sjaastad
2022-06-07 22:44:01 +02:00
parent d36bf11c62
commit 47fb8957c1
3 changed files with 70 additions and 1 deletions

View File

@@ -948,6 +948,49 @@ RiaSummaryAddressAnalyzer* RimSummaryCaseCollection::addressAnalyzer()
return m_analyzer.get();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryCaseCollection::computeMinMax( const RifEclipseSummaryAddress& address )
{
if ( m_minMaxValues.count( address ) > 0 ) return;
double minimumValue( std::numeric_limits<double>::infinity() );
double maximumValue( -std::numeric_limits<double>::infinity() );
std::vector<double> values;
for ( auto s : m_cases() )
{
if ( !s->summaryReader() ) continue;
s->summaryReader()->values( address, &values );
const auto [min, max] = std::minmax_element( begin( values ), end( values ) );
minimumValue = std::min( *min, minimumValue );
maximumValue = std::max( *max, maximumValue );
}
setMinMax( address, minimumValue, maximumValue );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryCaseCollection::setMinMax( const RifEclipseSummaryAddress& address, double min, double max )
{
m_minMaxValues[address] = std::pair( min, max );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::pair<double, double> RimSummaryCaseCollection::minMax( const RifEclipseSummaryAddress& address )
{
computeMinMax( address );
return m_minMaxValues[address];
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------