/************************************************************************
 * This file has been generated automatically from                      *
 *                                                                      *
 * src/core/qgsstatisticalsummary.h                                     *
 *                                                                      *
 * Do not edit manually ! Edit header and run scripts/sipify.pl again   *
 ************************************************************************/





class QgsStatisticalSummary
{
%Docstring
 Calculator for summary statistics for a list of doubles.

 Statistics are calculated by calling calculate() and passing a list of doubles. The
 individual statistics can then be retrieved using the associated methods. Note that not all statistics
 are calculated by default. Statistics which require slower computations are only calculated by
 specifying the statistic in the constructor or via setStatistics().

.. versionadded:: 2.9
%End

%TypeHeaderCode
#include "qgsstatisticalsummary.h"
%End
  public:

    enum Statistic
    {
      Count,
      CountMissing,
      Sum,
      Mean,
      Median,
      StDev,
      StDevSample,
      Min,
      Max,
      Range,
      Minority,
      Majority,
      Variety,
      FirstQuartile,
      ThirdQuartile,
      InterQuartileRange,
      All
    };
    typedef QFlags<QgsStatisticalSummary::Statistic> Statistics;


    QgsStatisticalSummary( QgsStatisticalSummary::Statistics stats = QgsStatisticalSummary::All );
%Docstring
 Constructor for QgsStatisticalSummary
 \param stats flags for statistics to calculate
%End

    virtual ~QgsStatisticalSummary();

    Statistics statistics() const;
%Docstring
 Returns flags which specify which statistics will be calculated. Some statistics
 are always calculated (e.g., sum, min and max).
.. seealso:: setStatistics
 :rtype: Statistics
%End

    void setStatistics( QgsStatisticalSummary::Statistics stats );
%Docstring
 Sets flags which specify which statistics will be calculated. Some statistics
 are always calculated (e.g., sum, min and max).
 \param stats flags for statistics to calculate
.. seealso:: statistics
%End

    void reset();
%Docstring
 Resets the calculated values
%End

    void calculate( const QList<double> &values );
%Docstring
 Calculates summary statistics for a list of values
 \param values list of doubles
%End

    void addValue( double value );
%Docstring
 Adds a single value to the statistics calculation. Calling this method
 allows values to be added to the calculation one at a time. For large
 quantities of values this may be more efficient then first adding all the
 values to a list and calling calculate().
 \param value value to add
.. note::

   call reset() before adding the first value using this method
 to clear the results from any previous calculations
.. note::

   finalize() must be called after adding the final value and before
 retrieving calculated statistics.
.. seealso:: calculate()
.. seealso:: addVariant()
.. seealso:: finalize()
.. versionadded:: 2.16
%End

    void addVariant( const QVariant &value );
%Docstring
 Adds a single value to the statistics calculation. Calling this method
 allows values to be added to the calculation one at a time. For large
 quantities of values this may be more efficient then first adding all the
 values to a list and calling calculate().
 \param value variant containing to add. Non-numeric values are treated as null.
.. note::

   call reset() before adding the first value using this method
 to clear the results from any previous calculations
.. note::

   finalize() must be called after adding the final value and before
 retrieving calculated statistics.
.. seealso:: addValue()
.. seealso:: calculate()
.. seealso:: finalize()
.. versionadded:: 2.16
%End

    void finalize();
%Docstring
 Must be called after adding all values with addValues() and before retrieving
 any calculated statistics.
.. seealso:: addValue()
.. seealso:: addVariant()
.. versionadded:: 2.16
%End

    double statistic( QgsStatisticalSummary::Statistic stat ) const;
%Docstring
 Returns the value of a specified statistic
 \param stat statistic to return
 :return: calculated value of statistic. A NaN value may be returned for invalid
 statistics.
 :rtype: float
%End

    int count() const;
%Docstring
 Returns calculated count of values
 :rtype: int
%End

    int countMissing() const;
%Docstring
 Returns the number of missing (null) values
.. versionadded:: 2.16
 :rtype: int
%End

    double sum() const;
%Docstring
 Returns calculated sum of values
 :rtype: float
%End

    double mean() const;
%Docstring
 Returns calculated mean of values. A NaN value may be returned if the mean cannot
 be calculated.
 :rtype: float
%End

    double median() const;
%Docstring
 Returns calculated median of values. This is only calculated if Statistic.Median has
 been specified in the constructor or via setStatistics. A NaN value may be returned if the median cannot
 be calculated.
 :rtype: float
%End

    double min() const;
%Docstring
 Returns calculated minimum from values. A NaN value may be returned if the minimum cannot
 be calculated.
 :rtype: float
%End

    double max() const;
%Docstring
 Returns calculated maximum from values. A NaN value may be returned if the maximum cannot
 be calculated.
 :rtype: float
%End

    double range() const;
%Docstring
 Returns calculated range (difference between maximum and minimum values). A NaN value may be returned if the range cannot
 be calculated.
 :rtype: float
%End

    double stDev() const;
%Docstring
 Returns population standard deviation. This is only calculated if Statistic.StDev has
 been specified in the constructor or via setStatistics. A NaN value may be returned if the standard deviation cannot
 be calculated.
.. seealso:: sampleStDev
 :rtype: float
%End

    double sampleStDev() const;
%Docstring
 Returns sample standard deviation. This is only calculated if Statistic.StDev has
 been specified in the constructor or via setStatistics. A NaN value may be returned if the standard deviation cannot
 be calculated.
.. seealso:: stDev
 :rtype: float
%End

    int variety() const;
%Docstring
 Returns variety of values. The variety is the count of unique values from the list.
 This is only calculated if Statistic.Variety has been specified in the constructor
 or via setStatistics.
 :rtype: int
%End

    double minority() const;
%Docstring
 Returns minority of values. The minority is the value with least occurrences in the list
 This is only calculated if Statistic.Minority has been specified in the constructor
 or via setStatistics. A NaN value may be returned if the minority cannot
 be calculated.
.. seealso:: majority
 :rtype: float
%End

    double majority() const;
%Docstring
 Returns majority of values. The majority is the value with most occurrences in the list
 This is only calculated if Statistic.Majority has been specified in the constructor
 or via setStatistics. A NaN value may be returned if the majority cannot
 be calculated.
.. seealso:: minority
 :rtype: float
%End

    double firstQuartile() const;
%Docstring
 Returns the first quartile of the values. The quartile is calculated using the
 "Tukey's hinges" method. A NaN value may be returned if the first quartile cannot
 be calculated.
.. seealso:: thirdQuartile
.. seealso:: interQuartileRange
 :rtype: float
%End

    double thirdQuartile() const;
%Docstring
 Returns the third quartile of the values. The quartile is calculated using the
 "Tukey's hinges" method. A NaN value may be returned if the third quartile cannot
 be calculated.
.. seealso:: firstQuartile
.. seealso:: interQuartileRange
 :rtype: float
%End

    double interQuartileRange() const;
%Docstring
 Returns the inter quartile range of the values. The quartiles are calculated using the
 "Tukey's hinges" method. A NaN value may be returned if the IQR cannot
 be calculated.
.. seealso:: firstQuartile
.. seealso:: thirdQuartile
 :rtype: float
%End

    static QString displayName( QgsStatisticalSummary::Statistic statistic );
%Docstring
 Returns the friendly display name for a statistic
 \param statistic statistic to return name for
 :rtype: str
%End

};

QFlags<QgsStatisticalSummary::Statistic> operator|(QgsStatisticalSummary::Statistic f1, QFlags<QgsStatisticalSummary::Statistic> f2);


/************************************************************************
 * This file has been generated automatically from                      *
 *                                                                      *
 * src/core/qgsstatisticalsummary.h                                     *
 *                                                                      *
 * Do not edit manually ! Edit header and run scripts/sipify.pl again   *
 ************************************************************************/