Class Beta

  • All Implemented Interfaces:
    DoubleFunction, IntFunction, java.io.Serializable, java.lang.Cloneable

    public class Beta
    extends AbstractContinousDistribution
    Beta distribution; math definition and animated definition.

    p(x) = k * x^(alpha-1) * (1-x)^(beta-1) with k = g(alpha+beta)/(g(alpha)*g(beta)) and g(a) being the gamma function.

    Valid parameter ranges: alpha > 0 and beta > 0.

    Instance methods operate on a user supplied uniform random number generator; they are unsynchronized.

    Static methods operate on a default uniform random number generator; they are synchronized.

    Implementation:

    Method: Stratified Rejection/Patchwork Rejection. High performance implementation.
    This is a port of bsprc.c from the C-RAND / WIN-RAND library. C-RAND's implementation, in turn, is based upon

    H. Sakasegawa (1983): Stratified rejection and squeeze method for generating beta random numbers, Ann. Inst. Statist. Math. 35 B, 291-302.

    and

    Stadlober E., H. Zechner (1993), Generating beta variates via patchwork rejection,, Computing 50, 1-18.

    Version:
    1.0, 09/24/99
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      (package private) double a  
      (package private) double a_  
      (package private) double a_last  
      protected double alpha  
      (package private) double b  
      (package private) double b_  
      (package private) double b_last  
      protected double beta  
      (package private) double c  
      (package private) double D  
      (package private) double Dl  
      (package private) double f1  
      (package private) double f2  
      (package private) double f4  
      (package private) double f5  
      (package private) double fa  
      (package private) double fb  
      (package private) double ll  
      (package private) double lr  
      (package private) double m  
      (package private) double ml  
      (package private) double mu  
      (package private) double p_last  
      (package private) double p1  
      (package private) double p2  
      (package private) double p3  
      (package private) double p4  
      (package private) double PDF_CONST  
      (package private) double q_last  
      (package private) double s  
      protected static Beta shared  
      (package private) double t  
      (package private) double x1  
      (package private) double x2  
      (package private) double x4  
      (package private) double x5  
      (package private) double z2  
      (package private) double z4  
    • Constructor Summary

      Constructors 
      Constructor Description
      Beta​(double alpha, double beta, RandomEngine randomGenerator)
      Constructs a Beta distribution.
    • Field Detail

      • alpha

        protected double alpha
      • beta

        protected double beta
      • PDF_CONST

        double PDF_CONST
      • a_last

        double a_last
      • b_last

        double b_last
      • a_

        double a_
      • b_

        double b_
      • t

        double t
      • fa

        double fa
      • fb

        double fb
      • p1

        double p1
      • p2

        double p2
      • c

        double c
      • ml

        double ml
      • mu

        double mu
      • p_last

        double p_last
      • q_last

        double q_last
      • a

        double a
      • b

        double b
      • s

        double s
      • m

        double m
      • D

        double D
      • Dl

        double Dl
      • x1

        double x1
      • x2

        double x2
      • x4

        double x4
      • x5

        double x5
      • f1

        double f1
      • f2

        double f2
      • f4

        double f4
      • f5

        double f5
      • ll

        double ll
      • lr

        double lr
      • z2

        double z2
      • z4

        double z4
      • p3

        double p3
      • p4

        double p4
      • shared

        protected static Beta shared
    • Constructor Detail

      • Beta

        public Beta​(double alpha,
                    double beta,
                    RandomEngine randomGenerator)
        Constructs a Beta distribution.
    • Method Detail

      • b00

        protected double b00​(double a,
                             double b,
                             RandomEngine randomGenerator)
      • b01

        protected double b01​(double a,
                             double b,
                             RandomEngine randomGenerator)
      • b1prs

        protected double b1prs​(double p,
                               double q,
                               RandomEngine randomGenerator)
      • cdf

        public double cdf​(double x)
        Returns the cumulative distribution function.
      • f

        private static double f​(double x,
                                double a,
                                double b,
                                double m)
      • nextDouble

        public double nextDouble​(double alpha,
                                 double beta)
        Returns a beta distributed random number; bypasses the internal state.
      • pdf

        public double pdf​(double x)
        Returns the cumulative distribution function.
      • setState

        public void setState​(double alpha,
                             double beta)
        Sets the parameters.
      • staticNextDouble

        public static double staticNextDouble​(double alpha,
                                              double beta)
        Returns a random number from the distribution.
      • toString

        public java.lang.String toString()
        Returns a String representation of the receiver.
        Overrides:
        toString in class java.lang.Object
      • xstaticSetRandomGenerator

        private static void xstaticSetRandomGenerator​(RandomEngine randomGenerator)
        Sets the uniform random number generated shared by all static methods.
        Parameters:
        randomGenerator - the new uniform random number generator to be shared.