# AbscontDistribution-class

##### Class "AbscontDistribution"

The `AbscontDistribution`

-class is the mother-class of the classes `Beta`

, `Cauchy`

,
`Chisq`

, `Exp`

, `F`

, `Gammad`

, `Lnorm`

, `Logis`

, `Norm`

, `T`

, `Unif`

and
`Weibull`

. Further absolutely continuous distributions can be defined either by declaration of
own random number generator, density, cumulative distribution and quantile functions, or as result of a
convolution of two absolutely continuous distributions or by application of a mathematical operator to an absolutely
continuous distribution.

- Keywords
- distribution

##### Objects from the Class

Objects can be created by calls of the form `new("AbscontDistribution", r, d, p, q)`

.
More comfortably, you may use the generating function `AbscontDistribution`

.
The result of these calls is an absolutely continuous distribution.

##### Slots

`img`

Object of class

`"Reals"`

: the space of the image of this distribution which has dimension 1 and the name "Real Space"`param`

Object of class

`"Parameter"`

: the parameter of this distribution, having only the slot name "Parameter of an absolutely continuous distribution"`r`

Object of class

`"function"`

: generates random numbers`d`

Object of class

`"function"`

: density function`p`

Object of class

`"function"`

: cumulative distribution function`q`

Object of class

`"function"`

: quantile function`gaps`

[from version 1.9 on] Object of class

`"OptionalMatrix"`

, i.e.; an object which may either be`NULL`

ora`matrix`

. This slot, if non-`NULL`

, contains left and right endpoints of intervals where the density of the object is 0. This slot may be inspected by the accessor`gaps()`

and modified by a corresponding replacement method. It may also be filled automatically by`setgaps()`

. For saved objects from earlier versions, we provide functions`isOldVersion`

and`conv2NewVersion`

.`.withArith`

logical: used internally to issue warnings as to interpretation of arithmetics

`.withSim`

logical: used internally to issue warnings as to accuracy

`.logExact`

logical: used internally to flag the case where there are explicit formulae for the log version of density, cdf, and quantile function

`.lowerExact`

logical: used internally to flag the case where there are explicit formulae for the lower tail version of cdf and quantile function

`Symmetry`

object of class

`"DistributionSymmetry"`

; used internally to avoid unnecessary calculations.

##### Extends

Class `"UnivariateDistribution"`

, directly.
Class `"Distribution"`

, by class `"UnivariateDistribution"`

.

##### Methods

- initialize
`signature(.Object = "AbscontDistribution")`

: initialize method- Math
`signature(x = "AbscontDistribution")`

: application of a mathematical function, e.g.`sin`

or`exp`

(does not work with`log`

,`sign`

!), to this absolutely continouos distribution`abs`

:`signature(x = "AbscontDistribution")`

: exact image distribution of`abs(x)`

.`exp`

:`signature(x = "AbscontDistribution")`

: exact image distribution of`exp(x)`

.`sign`

:`signature(x = "AbscontDistribution")`

: exact image distribution of`sign(x)`

.`sqrt`

:`signature(x = "AbscontDistribution")`

: exact image distribution of`sqrt(x)`

.`log`

:`signature(x = "AbscontDistribution")`

: (with optional further argument`base`

, defaulting to`exp(1)`

) exact image distribution of`log(x)`

.`log10`

:`signature(x = "AbscontDistribution")`

: exact image distribution of`log10(x)`

.`gamma`

:`signature(x = "AbscontDistribution")`

: exact image distribution of`gamma(x)`

.`lgamma`

:`signature(x = "AbscontDistribution")`

: exact image distribution of`lgamma(x)`

.`digamma`

:`signature(x = "AbscontDistribution")`

: exact image distribution of`digamma(x)`

.`sqrt`

:`signature(x = "AbscontDistribution")`

: exact image distribution of`sqrt(x)`

.

- -
`signature(e1 = "AbscontDistribution")`

: application of `-' to this absolutely continuous distribution.- *
`signature(e1 = "AbscontDistribution", e2 = "numeric")`

: multiplication of this absolutely continuous distribution by an object of class`"numeric"`

- /
`signature(e1 = "AbscontDistribution", e2 = "numeric")`

: division of this absolutely continuous distribution by an object of class`"numeric"`

- +
`signature(e1 = "AbscontDistribution", e2 = "numeric")`

: addition of this absolutely continuous distribution to an object of class`"numeric"`

.- -
`signature(e1 = "AbscontDistribution", e2 = "numeric")`

: subtraction of an object of class`"numeric"`

from this absolutely continuous distribution.- *
`signature(e1 = "numeric", e2 = "AbscontDistribution")`

: multiplication of this absolutely continuous distribution by an object of class`"numeric"`

.- +
`signature(e1 = "numeric", e2 = "AbscontDistribution")`

: addition of this absolutely continuous distribution to an object of class`"numeric"`

.- -
`signature(e1 = "numeric", e2 = "AbscontDistribution")`

: subtraction of this absolutely continuous distribution from an object of class`"numeric"`

.- +
`signature(e1 = "AbscontDistribution", e2 = "AbscontDistribution")`

: Convolution of two absolutely continuous distributions. The slots p, d and q are approximated by grids.- -
`signature(e1 = "AbscontDistribution", e2 = "AbscontDistribution")`

: Convolution of two absolutely continuous distributions. The slots p, d and q are approximated by grids.- plot
`signature(object = "AbscontDistribution")`

: plots density, cumulative distribution and quantile function.

##### Internal subclass "AffLinAbscontDistribution"

To enhance accuracy of several functionals on distributions,
mainly from package distrEx, from version 1.9 of this package on,
there is an internally used (but exported) subclass
`"AffLinAbscontDistribution"`

which has extra slots
`a`

, `b`

(both of class `"numeric"`

), and `X0`

(of class `"AbscontDistribution"`

), to capture the fact
that the object has the same distribution as `a * X0 + b`

. This is
the class of the return value of methods

- -
`signature(e1 = "AbscontDistribution")`

- *
`signature(e1 = "AbscontDistribution", e2 = "numeric")`

- /
`signature(e1 = "AbscontDistribution", e2 = "numeric")`

- +
`signature(e1 = "AbscontDistribution", e2 = "numeric")`

- -
`signature(e1 = "AbscontDistribution", e2 = "numeric")`

- *
`signature(e1 = "numeric", e2 = "AbscontDistribution")`

- +
`signature(e1 = "numeric", e2 = "AbscontDistribution")`

- -
`signature(e1 = "numeric", e2 = "AbscontDistribution")`

- -
`signature(e1 = "AffLinAbscontDistribution")`

- *
`signature(e1 = "AffLinAbscontDistribution", e2 = "numeric")`

- /
`signature(e1 = "AffLinAbscontDistribution", e2 = "numeric")`

- +
`signature(e1 = "AffLinAbscontDistribution", e2 = "numeric")`

- -
`signature(e1 = "AffLinAbscontDistribution", e2 = "numeric")`

- *
`signature(e1 = "numeric", e2 = "AffLinAbscontDistribution")`

- +
`signature(e1 = "numeric", e2 = "AffLinAbscontDistribution")`

- -
`signature(e1 = "numeric", e2 = "AffLinAbscontDistribution")`

There also is a class union of `"AffLinAbscontDistribution"`

,
`"AffLinDiscreteDistribution"`

, `"AffLinUnivarLebDecDistribution"`

and called `"AffLinDistribution"`

which is used for functionals.

##### Internal virtual superclass "AcDcLcDistribution"

As many operations should be valid no matter whether the operands
are of class `"AbscontDistribution"`

,
`"DiscreteDistribution"`

, or `"UnivarLebDecDistribution"`

,
there is a class union of these classes called `"AcDcLcDistribution"`

;
in partiucalar methods for `"*"`

, `"/"`

,
`"^"`

(see operators-methods) and methods
`Minimum`

, `Maximum`

, `Truncate`

, and
`Huberize`

, and `convpow`

are defined for this
class union.

##### See Also

`AbscontDistribution`

`Parameter-class`

`UnivariateDistribution-class`

`Beta-class`

`Cauchy-class`

`Chisq-class`

`Exp-class`

`Fd-class`

`Gammad-class`

`Lnorm-class`

`Logis-class`

`Norm-class`

`Td-class`

`Unif-class`

`Weibull-class`

`DiscreteDistribution-class`

`Reals-class`

`RtoDPQ`

##### Examples

```
# NOT RUN {
N <- Norm() # N is a normal distribution with mean=0 and sd=1.
E <- Exp() # E is an exponential distribution with rate=1.
A1 <- E+1 # a new absolutely continuous distributions with exact slots d, p, q
A2 <- A1*3 # a new absolutely continuous distributions with exact slots d, p, q
A3 <- N*0.9 + E*0.1 # a new absolutely continuous distribution with approximated slots d, p, q
r(A3)(1) # one random number generated from this distribution, e.g. -0.7150937
d(A3)(0) # The (approximated) density for x=0 is 0.43799.
p(A3)(0) # The (approximated) probability that x <= 0 is 0.45620.
q(A3)(.1) # The (approximated) 10 percent quantile is -1.06015.
## in RStudio or Jupytier IRKernel, use q.l(.)(.) instead of q(.)(.)
# }
```

*Documentation reproduced from package distr, version 2.8.0, License: LGPL-3*