Class Median

All Implemented Interfaces:
Serializable, UnivariateStatistic, MathArrays.Function

public class Median extends AbstractUnivariateStatistic implements Serializable
Returns the median of the available values. This is the same as the 50th percentile. See Percentile for a description of the algorithm used.

Note that this implementation is not synchronized. If multiple threads access an instance of this class concurrently, and at least one of the threads invokes the increment() or clear() method, it must be synchronized externally.

See Also:
  • Constructor Details

    • Median

      public Median()
      Default constructor.
  • Method Details

    • evaluate

      public double evaluate(double[] values, int begin, int length) throws MathIllegalArgumentException
      Returns the result of evaluating the statistic over the specified entries in the input array.
      Specified by:
      evaluate in interface MathArrays.Function
      Specified by:
      evaluate in interface UnivariateStatistic
      Specified by:
      evaluate in class AbstractUnivariateStatistic
      Parameters:
      values - the input array
      begin - the index of the first element to include
      length - the number of elements to include
      Returns:
      the value of the statistic applied to the included array entries
      Throws:
      MathIllegalArgumentException - if values is null or the indices are invalid
    • copy

      public Median copy()
      Returns a copy of the statistic with the same internal state.
      Specified by:
      copy in interface UnivariateStatistic
      Specified by:
      copy in class AbstractUnivariateStatistic
      Returns:
      a copy of the statistic
    • getEstimationType

      public Percentile.EstimationType getEstimationType()
      Get the estimation type used for computation.
      Returns:
      the estimationType set
    • withEstimationType

      public Median withEstimationType(Percentile.EstimationType newEstimationType)
      Build a new instance similar to the current one except for the estimation type.
      Parameters:
      newEstimationType - estimation type for the new instance
      Returns:
      a new instance, with changed estimation type
      Throws:
      NullArgumentException - when newEstimationType is null
    • getNaNStrategy

      public NaNStrategy getNaNStrategy()
      Get the NaN Handling strategy used for computation.
      Returns:
      NaN Handling strategy set during construction
    • withNaNStrategy

      public Median withNaNStrategy(NaNStrategy newNaNStrategy)
      Build a new instance similar to the current one except for the NaN handling strategy.
      Parameters:
      newNaNStrategy - NaN strategy for the new instance
      Returns:
      a new instance, with changed NaN handling strategy
      Throws:
      NullArgumentException - when newNaNStrategy is null
    • getKthSelector

      public KthSelector getKthSelector()
      Get the kthSelector used for computation.
      Returns:
      the kthSelector set
    • withKthSelector

      public Median withKthSelector(KthSelector newKthSelector)
      Build a new instance similar to the current one except for the kthSelector instance specifically set.
      Parameters:
      newKthSelector - KthSelector for the new instance
      Returns:
      a new instance, with changed KthSelector
      Throws:
      NullArgumentException - when newKthSelector is null