DISTRIBUTION is a kind of abstract class (or interface) that the specific constructors should implement.
a DISTRIBUTION object
John J. Aponte
It contains 4 fields
A character with the name of the distribution implemented
A numerical that is used for details
to produce
reproducible details of the distribution
Observed value. Is the value expected. It is used as a number for the mathematical operations of the distributions as if they were a simple scalar
A function that generate random numbers from the distribution.
Its only parameter n
is the number of draws of the distribution.
It returns a matrix with as many rows as n, and as many columns as the
dimensions of the distributions
The DISTRIBUTION objects could support multidimensional distributions
for example DIRICHLET
. The names of the dimensions
should coincides with the names of the oval
vector.
If only one dimension, the default name is rvar
.
It is expected that the rfunc
is included in the creation of new
distributions by convolution so the environment should be carefully controlled
to avoid reference leaking that is possible within the R language. For that
reason, rfunc
should be created within a restrict_environment
function
Once the object is instanced, the fields are immutable and should not be
changed. If the seed needs to be modified, a new object can be created using
the set_seed
function
Objects are defined for the following distributions
UNIFORM
NORMAL
BETA
TRIANGULAR
POISSON
EXPONENTIAL
DISCRETE
DIRAC
DIRICHLET
TRUNCATED
NA_DISTRIBUTION