Class NormalDistributionImpl

    • Field Detail

      • DEFAULT_INVERSE_ABSOLUTE_ACCURACY

        public static final double DEFAULT_INVERSE_ABSOLUTE_ACCURACY
        Default inverse cumulative probability accuracy
        Since:
        2.1
        See Also:
        Constant Field Values
    • Constructor Detail

      • NormalDistributionImpl

        public NormalDistributionImpl​(double mean,
                                      double sd)
        Create a normal distribution using the given mean and standard deviation.
        Parameters:
        mean - mean for this distribution
        sd - standard deviation for this distribution
      • NormalDistributionImpl

        public NormalDistributionImpl​(double mean,
                                      double sd,
                                      double inverseCumAccuracy)
        Create a normal distribution using the given mean, standard deviation and inverse cumulative distribution accuracy.
        Parameters:
        mean - mean for this distribution
        sd - standard deviation for this distribution
        inverseCumAccuracy - inverse cumulative probability accuracy
        Since:
        2.1
      • NormalDistributionImpl

        public NormalDistributionImpl()
        Creates normal distribution with the mean equal to zero and standard deviation equal to one.
    • Method Detail

      • getMean

        public double getMean()
        Access the mean.
        Specified by:
        getMean in interface NormalDistribution
        Returns:
        mean for this distribution
      • setMean

        @Deprecated
        public void setMean​(double mean)
        Deprecated.
        as of 2.1 (class will become immutable in 3.0)
        Modify the mean.
        Specified by:
        setMean in interface NormalDistribution
        Parameters:
        mean - for this distribution
      • getStandardDeviation

        public double getStandardDeviation()
        Access the standard deviation.
        Specified by:
        getStandardDeviation in interface NormalDistribution
        Returns:
        standard deviation for this distribution
      • setStandardDeviation

        @Deprecated
        public void setStandardDeviation​(double sd)
        Deprecated.
        as of 2.1 (class will become immutable in 3.0)
        Modify the standard deviation.
        Specified by:
        setStandardDeviation in interface NormalDistribution
        Parameters:
        sd - standard deviation for this distribution
        Throws:
        java.lang.IllegalArgumentException - if sd is not positive.
      • density

        @Deprecated
        public double density​(java.lang.Double x)
        Deprecated.
        Return the probability density for a particular point.
        Specified by:
        density in interface HasDensity<java.lang.Double>
        Specified by:
        density in interface NormalDistribution
        Parameters:
        x - The point at which the density should be computed.
        Returns:
        The pdf at point x.
      • density

        public double density​(double x)
        Returns the probability density for a particular point.
        Overrides:
        density in class AbstractContinuousDistribution
        Parameters:
        x - The point at which the density should be computed.
        Returns:
        The pdf at point x.
        Since:
        2.1
      • cumulativeProbability

        public double cumulativeProbability​(double x)
                                     throws MathException
        For this distribution, X, this method returns P(X < x). If xis more than 40 standard deviations from the mean, 0 or 1 is returned, as in these cases the actual value is within Double.MIN_VALUE of 0 or 1.
        Specified by:
        cumulativeProbability in interface Distribution
        Parameters:
        x - the value at which the CDF is evaluated.
        Returns:
        CDF evaluated at x.
        Throws:
        MathException - if the algorithm fails to converge
      • getSolverAbsoluteAccuracy

        protected double getSolverAbsoluteAccuracy()
        Return the absolute accuracy setting of the solver used to estimate inverse cumulative probabilities.
        Overrides:
        getSolverAbsoluteAccuracy in class AbstractContinuousDistribution
        Returns:
        the solver absolute accuracy
        Since:
        2.1
      • inverseCumulativeProbability

        public double inverseCumulativeProbability​(double p)
                                            throws MathException
        For this distribution, X, this method returns the critical point x, such that P(X < x) = p.

        Returns Double.NEGATIVE_INFINITY for p=0 and Double.POSITIVE_INFINITY for p=1.

        Specified by:
        inverseCumulativeProbability in interface ContinuousDistribution
        Overrides:
        inverseCumulativeProbability in class AbstractContinuousDistribution
        Parameters:
        p - the desired probability
        Returns:
        x, such that P(X < x) = p
        Throws:
        MathException - if the inverse cumulative probability can not be computed due to convergence or other numerical errors.
        java.lang.IllegalArgumentException - if p is not a valid probability.
      • getDomainLowerBound

        protected double getDomainLowerBound​(double p)
        Access the domain value lower bound, based on p, used to bracket a CDF root. This method is used by inverseCumulativeProbability(double) to find critical values.
        Specified by:
        getDomainLowerBound in class AbstractContinuousDistribution
        Parameters:
        p - the desired probability for the critical value
        Returns:
        domain value lower bound, i.e. P(X < lower bound) < p
      • getDomainUpperBound

        protected double getDomainUpperBound​(double p)
        Access the domain value upper bound, based on p, used to bracket a CDF root. This method is used by inverseCumulativeProbability(double) to find critical values.
        Specified by:
        getDomainUpperBound in class AbstractContinuousDistribution
        Parameters:
        p - the desired probability for the critical value
        Returns:
        domain value upper bound, i.e. P(X < upper bound) > p
      • getSupportLowerBound

        public double getSupportLowerBound()
        Returns the lower bound of the support for the distribution. The lower bound of the support is always negative infinity no matter the parameters.
        Returns:
        lower bound of the support (always Double.NEGATIVE_INFINITY)
        Since:
        2.2
      • getSupportUpperBound

        public double getSupportUpperBound()
        Returns the upper bound of the support for the distribution. The upper bound of the support is always positive infinity no matter the parameters.
        Returns:
        upper bound of the support (always Double.POSITIVE_INFINITY)
        Since:
        2.2
      • getNumericalVariance

        public double getNumericalVariance()
        Returns the variance. For standard deviation parameter s, the variance is s^2
        Returns:
        the variance
        Since:
        2.2