Discrete Convolution #
Discrete convolution over monoids: (f ⋆[L] g) x = ∑' (a, b) : mulFiber x, L (f a) (g b)
where mulFiber x = {(a, b) | a * b = x}. Additive monoids are also supported.
Design #
Uses a bilinear map L : E →ₗ[S] E' →ₗ[S] F to combine values, following
MeasureTheory.convolution.
The index monoid M can be non-commutative (group algebras R[G] with non-abelian G).
@[to_additive] generates multiplicative and additive versions from a single definition.
The mul/add distinction refers to the index monoid M: multiplicative sums over
mulFiber x = {(a,b) | a * b = x}, additive sums over addFiber x = {(a,b) | a + b = x}.
Main Definitions #
mulFiber x: the fiber of multiplication atx, all pairs(a, b)witha * b = x.convolution L f g: the discrete convolution(f ⋆[L] g) x = ∑' ab : mulFiber x, L (f ab.1) (g ab.2).ConvolutionExistsAt L f g x: the convolution sum is summable atx.ConvolutionExists L f g: the convolution sum is summable at every point.
Main Results #
convolution_indicator_one_left,convolution_indicator_one_right: identity element (Set.indicator {1} (fun _ => e)whereL eis the identity map)ConvolutionExists.distrib_add,ConvolutionExists.add_distrib: distributivity over additionConvolutionExistsAt.smul_convolution,ConvolutionExistsAt.convolution_smul: scalar multiplicationconvolution_comm: commutativity for symmetric bilinear maps over commutative monoids
Notation #
| Notation | Operation |
|---|---|
f ⋆[L] g | ∑' ab : mulFiber x, L (f ab.1.1) (g ab.1.2) |
f ⋆₊[L] g | ∑' ab : addFiber x, L (f ab.1.1) (g ab.1.2) |
Precedence design: f:68 and g:67 gives right associativity (f ⋆ g ⋆ h parses as
f ⋆ (g ⋆ h)), matching function composition ∘ and MeasureTheory.convolution.
Multiplication Fiber #
The fiber of multiplication at x: all pairs (a, b) with a * b = x.
Instances For
The fiber of addition at x: all pairs (a, b) with a + b = x.
Instances For
Convolution Definition and Existence #
The discrete convolution of f and g using bilinear map L:
(f ⋆[L] g) x = ∑' (a, b) : mulFiber x, L (f a) (g b).
Instances For
Additive convolution: (f ⋆₊[L] g) x = ∑' ab : addFiber x, L (f ab.1) (g ab.2).
Instances For
Notation for discrete convolution with explicit bilinear map:
(f ⋆[L] g) x = ∑' ab : mulFiber x, L (f ab.1) (g ab.2).
Instances For
Notation for additive convolution with explicit bilinear map:
(f ⋆₊[L] g) x = ∑' ab : addFiber x, L (f ab.1) (g ab.2).
Instances For
The convolution of f and g with bilinear map L exists at x when the sum over
the fiber is summable.
Instances For
Additive convolution exists at x when the fiber sum is summable.
Instances For
The convolution of f and g with bilinear map L exists when it exists at every point.
Instances For
Additive convolution exists when it exists at every point.