SSJ  3.3.1
Stochastic Simulation in Java
Public Member Functions | Static Public Member Functions | List of all members
BetaSymmetricalPolarGen Class Reference

This class implements symmetrical beta random variate generators using Ulrich’s polar method [232] . More...

Inheritance diagram for BetaSymmetricalPolarGen:
[legend]
Collaboration diagram for BetaSymmetricalPolarGen:
[legend]

Public Member Functions

 BetaSymmetricalPolarGen (RandomStream s1, RandomStream s2, double alpha)
 Creates a symmetrical beta random variate generator with parameter \(\alpha=\) alpha, using stream s1 to generate \(x\) and stream s2 to generate \(y\), as in ( eq.beta.ulrich ) above. More...
 
 BetaSymmetricalPolarGen (RandomStream s1, double alpha)
 Creates a symmetrical beta random variate generator with parameter \(\alpha=\) alpha, using stream s1 to generate \(x\) and \(y\), as in ( eq.beta.ulrich ) above. More...
 
 BetaSymmetricalPolarGen (RandomStream s1, RandomStream s2, BetaSymmetricalDist dist)
 Creates a new generator for the distribution dist, using stream s1 to generate \(x\) and stream s2 to generate \(y\), as in ( eq.beta.ulrich ) above. More...
 
 BetaSymmetricalPolarGen (RandomStream s1, BetaSymmetricalDist dist)
 Creates a new generator for the distribution dist, using only one stream s1. More...
 
double nextDouble ()
 
RandomStream getStream2 ()
 Returns stream s2 associated with this object.
 
- Public Member Functions inherited from BetaSymmetricalGen
 BetaSymmetricalGen (RandomStream s, double alpha)
 Creates a new symmetrical beta generator with parameters \(\alpha=\) alpha, over the interval \((0,1)\), using stream s.
 
 BetaSymmetricalGen (RandomStream s, BetaSymmetricalDist dist)
 Creates a new generator for the distribution dist, using stream s.
 
- Public Member Functions inherited from BetaGen
 BetaGen (RandomStream s, double alpha, double beta, double a, double b)
 Creates a new beta generator with parameters \(\alpha=\) alpha and \(\beta=\) beta, over the interval \((\)a \(,\) b \()\), using stream s.
 
 BetaGen (RandomStream s, double alpha, double beta)
 Creates a new beta generator with parameters \(\alpha=\) alpha and \(\beta=\) beta, over the interval \((0,1)\), using stream s.
 
 BetaGen (RandomStream s, BetaDist dist)
 Creates a new generator for the distribution dist, using stream s.
 
double getAlpha ()
 Returns the parameter \(\alpha\) of this object.
 
double getBeta ()
 Returns the parameter \(\beta\) of this object.
 
double getA ()
 Returns the parameter \(a\) of this object.
 
double getB ()
 Returns the parameter \(b\) of this object.
 
- Public Member Functions inherited from RandomVariateGen
 RandomVariateGen (RandomStream s, Distribution dist)
 Creates a new random variate generator from the distribution dist, using stream s. More...
 
double nextDouble ()
 Generates a random number from the continuous distribution contained in this object. More...
 
void nextArrayOfDouble (double[] v, int start, int n)
 Generates n random numbers from the continuous distribution contained in this object. More...
 
double [] nextArrayOfDouble (int n)
 Generates n random numbers from the continuous distribution contained in this object, and returns them in a new array of size n. More...
 
RandomStream getStream ()
 Returns the umontreal.ssj.rng.RandomStream used by this generator. More...
 
void setStream (RandomStream stream)
 Sets the umontreal.ssj.rng.RandomStream used by this generator to stream.
 
Distribution getDistribution ()
 Returns the umontreal.ssj.probdist.Distribution used by this generator. More...
 
String toString ()
 Returns a String containing information about the current generator.
 

Static Public Member Functions

static double nextDouble (RandomStream s1, RandomStream s2, double alpha)
 Generates a random number using Ulrich’s polar method. More...
 
static double nextDouble (RandomStream s, double alpha)
 Generates a random number by Ulrich’s polar method using stream s. More...
 
- Static Public Member Functions inherited from BetaSymmetricalGen
static double nextDouble (RandomStream s, double alpha)
 
- Static Public Member Functions inherited from BetaGen
static double nextDouble (RandomStream s, double alpha, double beta, double a, double b)
 Generates a variate from the beta distribution with parameters \(\alpha= \) alpha, \(\beta= \) beta, over the interval \((a, b)\), using stream s.
 

Additional Inherited Members

- Protected Member Functions inherited from BetaGen
void setParams (double alpha, double beta, double aa, double bb)
 
- Protected Attributes inherited from BetaGen
double p
 
double q
 
double a
 
double b
 
int gen
 
- Protected Attributes inherited from RandomVariateGen
RandomStream stream
 
Distribution dist
 

Detailed Description

This class implements symmetrical beta random variate generators using Ulrich’s polar method [232] .

The method generates two uniform random variables \(x \in[0, 1]\) and \(y \in[-1, 1]\) until \(x^2 + y^2 \le1\). Then it returns

\[ \frac{1}{2} + \frac{xy}{S}\sqrt{1 - S^{2/(2\alpha- 1)}} \tag{eq.beta.ulrich} \]

where \(S = x^2 + y^2\), and \(\alpha\) is the shape parameter of the beta distribution. The method is valid only when \(\alpha> 1/2\).

Constructor & Destructor Documentation

◆ BetaSymmetricalPolarGen() [1/4]

BetaSymmetricalPolarGen ( RandomStream  s1,
RandomStream  s2,
double  alpha 
)

Creates a symmetrical beta random variate generator with parameter \(\alpha=\) alpha, using stream s1 to generate \(x\) and stream s2 to generate \(y\), as in ( eq.beta.ulrich ) above.

Restriction: \(\alpha> 1/2\).

◆ BetaSymmetricalPolarGen() [2/4]

BetaSymmetricalPolarGen ( RandomStream  s1,
double  alpha 
)

Creates a symmetrical beta random variate generator with parameter \(\alpha=\) alpha, using stream s1 to generate \(x\) and \(y\), as in ( eq.beta.ulrich ) above.

Restriction: \(\alpha> 1/2\).

◆ BetaSymmetricalPolarGen() [3/4]

Creates a new generator for the distribution dist, using stream s1 to generate \(x\) and stream s2 to generate \(y\), as in ( eq.beta.ulrich ) above.

Restriction: dist must have \(\alpha> 1/2\).

◆ BetaSymmetricalPolarGen() [4/4]

Creates a new generator for the distribution dist, using only one stream s1.

Restriction: dist must have \(\alpha> 1/2\).

Member Function Documentation

◆ nextDouble() [1/2]

static double nextDouble ( RandomStream  s1,
RandomStream  s2,
double  alpha 
)
static

Generates a random number using Ulrich’s polar method.

Stream s1 generates \(x\) and stream s2 generates \(y\) [see eq. ( eq.beta.ulrich )]. Restriction: \(\alpha> 1/2\).

◆ nextDouble() [2/2]

static double nextDouble ( RandomStream  s,
double  alpha 
)
static

Generates a random number by Ulrich’s polar method using stream s.

Restriction: \(\alpha> 1/2\).


The documentation for this class was generated from the following file: