Skip to content

Commit b2a2251

Browse files
committedJan 24, 2019
Slightly more efficiency in QgsStatisticalSummary
(cherry picked from commit 60a6fc1)
1 parent a3428e5 commit b2a2251

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed
 

‎src/core/qgsstatisticalsummary.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,12 @@ void QgsStatisticalSummary::reset()
4747
mThirdQuartile = 0;
4848
mValueCount.clear();
4949
mValues.clear();
50+
51+
mRequiresHisto = mStatistics & QgsStatisticalSummary::Majority || mStatistics & QgsStatisticalSummary::Minority || mStatistics & QgsStatisticalSummary::Variety;
52+
53+
mRequiresAllValueStorage = mStatistics & QgsStatisticalSummary::StDev || mStatistics & QgsStatisticalSummary::StDevSample ||
54+
mStatistics & QgsStatisticalSummary::Median || mStatistics & QgsStatisticalSummary::FirstQuartile ||
55+
mStatistics & QgsStatisticalSummary::ThirdQuartile || mStatistics & QgsStatisticalSummary::InterQuartileRange;
5056
}
5157

5258
/***************************************************************************
@@ -74,12 +80,10 @@ void QgsStatisticalSummary::addValue( double value )
7480
mMin = std::min( mMin, value );
7581
mMax = std::max( mMax, value );
7682

77-
if ( mStatistics & QgsStatisticalSummary::Majority || mStatistics & QgsStatisticalSummary::Minority || mStatistics & QgsStatisticalSummary::Variety )
83+
if ( mRequiresHisto )
7884
mValueCount.insert( value, mValueCount.value( value, 0 ) + 1 );
7985

80-
if ( mStatistics & QgsStatisticalSummary::StDev || mStatistics & QgsStatisticalSummary::StDevSample ||
81-
mStatistics & QgsStatisticalSummary::Median || mStatistics & QgsStatisticalSummary::FirstQuartile ||
82-
mStatistics & QgsStatisticalSummary::ThirdQuartile || mStatistics & QgsStatisticalSummary::InterQuartileRange )
86+
if ( mRequiresAllValueStorage )
8387
mValues << value;
8488
}
8589

‎src/core/qgsstatisticalsummary.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,8 @@ class CORE_EXPORT QgsStatisticalSummary
292292
double mThirdQuartile;
293293
QMap< double, int > mValueCount;
294294
QList< double > mValues;
295+
bool mRequiresAllValueStorage = false;
296+
bool mRequiresHisto = false;
295297
};
296298

297299
Q_DECLARE_OPERATORS_FOR_FLAGS( QgsStatisticalSummary::Statistics )

0 commit comments

Comments
 (0)