Copyright | Predictable Network Solutions Ltd. 2020-2024 |
---|---|
License | BSD-3-Clause |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Numeric.Measure.Finite.Mixed
Description
Synopsis
- data Measure a
- zero :: Num a => Measure a
- dirac :: (Ord a, Num a) => a -> Measure a
- uniform :: (Ord a, Num a, Fractional a) => a -> a -> Measure a
- distribution :: (Ord a, Num a) => Measure a -> Piecewise (Poly a)
- fromDistribution :: (Ord a, Num a) => Piecewise (Poly a) -> Maybe (Measure a)
- total :: (Ord a, Num a) => Measure a -> a
- support :: (Ord a, Num a) => Measure a -> Maybe (a, a)
- isPositive :: (Ord a, Num a, Fractional a) => Measure a -> Bool
- integrate :: (Ord a, Num a, Fractional a) => Poly a -> Measure a -> a
- add :: (Ord a, Num a) => Measure a -> Measure a -> Measure a
- scale :: (Ord a, Num a) => a -> Measure a -> Measure a
- translate :: (Ord a, Num a, Fractional a) => a -> Measure a -> Measure a
- convolve :: (Ord a, Num a, Fractional a) => Measure a -> Measure a -> Measure a
Type
A finite signed measure on the number line.
Instances
Show a => Show (Measure a) Source # | |
NFData a => NFData (Measure a) Source # | |
Defined in Numeric.Measure.Finite.Mixed | |
(Ord a, Num a) => Eq (Measure a) Source # | Two measures are equal if they yield the same measures on every set. mx == my implies forall t. eval (distribution mx) t = eval (distribution my) t |
dirac :: (Ord a, Num a) => a -> Measure a Source #
A
Dirac measure
at the given point x
.
total (dirac x) = 1
uniform :: (Ord a, Num a, Fractional a) => a -> a -> Measure a Source #
The probability measure of a uniform probability distribution in the interval \( [x,y) \).
total (uniform x y) = 1
distribution :: (Ord a, Num a) => Measure a -> Piecewise (Poly a) Source #
eval (distribution m) x
is the measure of the interval \( (-∞, x] \).
This is known as the distribution function.
fromDistribution :: (Ord a, Num a) => Piecewise (Poly a) -> Maybe (Measure a) Source #
Construct a signed measure from its distribution function.
Return Nothing
if the measure is not finite,
that is if the last piece of the piecewise function is not constant.
Observations
total :: (Ord a, Num a) => Measure a -> a Source #
The total of the measure applied to the set of real numbers.
isPositive :: (Ord a, Num a, Fractional a) => Measure a -> Bool Source #
Check whether a signed measure is positive.
A signed measure is positive if the measure of any set is nonnegative. In other words a positive signed measure is just a measure in the ordinary sense.
This test is nontrivial, as we have to check that the distribution function is monotonically increasing.
integrate :: (Ord a, Num a, Fractional a) => Poly a -> Measure a -> a Source #
Integrate a polynomial f
with respect to the given measure m
,
\( \int f(x) dm(x) \).
Operations, numerical
add :: (Ord a, Num a) => Measure a -> Measure a -> Measure a Source #
Add two measures.
total (add mx my) = total mx + total my
scale :: (Ord a, Num a) => a -> Measure a -> Measure a Source #
Scale a measure by a constant.
total (scale a mx) = a * total mx
translate :: (Ord a, Num a, Fractional a) => a -> Measure a -> Measure a Source #
Translate a measure along the number line.
eval (distribution (translate y m)) x = eval (distribution m) (x - y)
convolve :: (Ord a, Num a, Fractional a) => Measure a -> Measure a -> Measure a Source #
Additive convolution of two measures.
Properties:
convolve (dirac x) (dirac y) = dirac (x + y) convolve mx my = convolve my mx convolve (add mx my) mz = add (convolve mx mz) (convolve my mz) translate z (convolve mx my) = convolve (translate z mx) my total (convolve mx my) = total mx * total my