# Convolution: Distribution Convolution Wrapper In distr6: The Complete R6 Probability Distributions Interface

## Description

Calculates the convolution of two distribution via numerical calculations.

## Usage

 ```1 2 3 4 5``` ```## S3 method for class 'Distribution' x + y ## S3 method for class 'Distribution' x - y ```

## Arguments

 `x, y` Distribution

## Details

The convolution of two probability distributions X, Y is the sum

Z = X + Y

which has a pmf,

P(Z = z) = ∑_x P(X = x)P(Y = z - x)

with an integration analogue for continuous distributions.

Currently distr6 supports the addition of discrete and continuous probability distributions, but only subtraction of continuous distributions.

## Value

Returns an R6 object of class Convolution.

## Super classes

`distr6::Distribution` -> `distr6::DistributionWrapper` -> `Convolution`

## Methods

#### Public methods

Inherited methods

#### Method `new()`

Creates a new instance of this R6 class.

##### Usage
`Convolution\$new(dist1, dist2, add = TRUE)`
##### Arguments
`dist1`

`([Distribution])`
First Distribution in convolution, i.e. `dist1 ± dist2`.

`dist2`

`([Distribution])`
Second Distribution in convolution, i.e. `dist1 ± dist2`.

`add`

`(logical(1))`
If `TRUE` (default) then adds the distributions together, otherwise substracts.

#### Method `clone()`

The objects of this class are cloneable with this method.

##### Usage
`Convolution\$clone(deep = FALSE)`
##### Arguments
`deep`

Whether to make a deep clone.

Other wrappers: `DistributionWrapper`, `HuberizedDistribution`, `MixtureDistribution`, `ProductDistribution`, `TruncatedDistribution`, `VectorDistribution`

## Examples

 ```1 2 3 4 5 6``` ```binom <- Bernoulli\$new() + Bernoulli\$new() binom\$pdf(2) Binomial\$new(size = 2)\$pdf(2) norm <- Normal\$new(mean = 3) - Normal\$new(mean = 2) norm\$pdf(1) Normal\$new(mean = 1, var = 2)\$pdf(1) ```

### Example output

```Attaching package: ‘distr6’

The following object is masked from ‘package:stats’:

qqplot

The following object is masked from ‘package:grDevices’:

pdf

The following objects are masked from ‘package:base’:

mode, truncate

 0.25
 0.25
 0.2820948
 0.2820948
```

distr6 documentation built on Sept. 6, 2021, 9:10 a.m.