# 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,...) "convpow"(D1,N) "convpow"(D1,N, ep = getdistrOption("TruncQuantile")) "convpow"(D1,N) "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)`

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

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

`"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

```
convpow(Exp()+Pois(),4)
```

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