# convpow-methods

##### Distribution of the sum of univariate i.i.d r.v's

Method `convpow`

determines the distribution of the sum of N univariate
i.i.d r.v's by means of DFT

- Keywords
- distribution

##### Usage

```
convpow(D1,...)
# S4 method for AbscontDistribution
convpow(D1,N)
# S4 method for LatticeDistribution
convpow(D1,N,
ep = getdistrOption("TruncQuantile"))
# S4 method for DiscreteDistribution
convpow(D1,N)
# S4 method for AcDcLcDistribution
convpow(D1,N,
ep = getdistrOption("TruncQuantile"))
```

##### Arguments

- D1
an object of (a sub)class (of)

`"AbscontDistribution"`

or`"LatticeDistribution"`

or of`"UnivarLebDecDistribution"`

- …
not yet used; meanwhile takes up N

- N
an integer or 0 (for 0 returns Dirac(0), for 1 D1)

- ep
numeric of length 1 in (0,1) --- for

`"LatticeDistribution"`

: support points will be cancelled if their probability is less than`ep`

; for`"UnivarLebDecDistribution"`

: if`(acWeight(object)<ep)`

we work with the discrete parts only, and, similarly, if`(discreteWeight(object)<ep)`

we with the absolutely continuous parts only.

##### Details

in the methods implemented a second argument `N`

is obligatory;
the general methods use a general purpose convolution algorithm for
distributions by means of D/FFT. In case of an argument of class
`"UnivarLebDecDistribution"`

, the result will in generally be
again of class `"UnivarLebDecDistribution"`

. However, if `acWeight(D1)`

is positive, `discreteWeight(convpow(D1,N))`

will decay exponentially
in `N`

, hence from some (small) \(N_0\) on, the result will be of
class `"AbscontDistribution"`

. This is used algorithmically, too, as
then only the a.c. part needs to be convolved.
In case of an argument `D1`

of class `"DiscreteDistribution"`

,
for `N`

equal to 0,1 we return the obvious solutions, and for `N==2`

the return value is `D1+D1`

. For `N>2`

, we split up `N`

into
`N=N1+N2`

, `N1=floor(N/2)`

and recursively return
`convpow(D1,N1)+convpow(D1,N2)`

.

##### Value

Object of class `"AbscontDistribution"`

, `"DiscreteDistribution"`

,
`"LatticeDistribution"`

resp. `"AcDcLcDistribution"`

##### further S4-Methods

There are particular methods for the following classes, using explicit convolution formulae:

`signature(D1="Norm")`

returns class

`"Norm"`

`signature(D1="Nbinom")`

returns class

`"Nbinom"`

`signature(D1="Binom")`

returns class

`"Binom"`

`signature(D1="Cauchy")`

returns class

`"Cauchy"`

`signature(D1="ExpOrGammaOrChisq")`

returns class

`"Gammad"`

---if`D1`

may be coerced to`Gammad`

`signature(D1="Pois")`

returns class

`"Pois"`

`signature(D1="Dirac")`

returns class

`"Dirac"`

##### References

Kohl, M., Ruckdeschel, P., (2014):
General purpose convolution algorithm for distributions
in S4-Classes by means of FFT. *J. Statist. Softw.*
**59**(4): 1-25.

##### See Also

`operators`

, `distrARITH()`

##### Examples

```
# NOT RUN {
convpow(Exp()+Pois(),4)
# }
```

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