Safe Haskell | None |
---|

- data Uniform t = Uniform !t !t
- uniform :: Distribution Uniform a => a -> a -> RVar a
- uniformT :: Distribution Uniform a => a -> a -> RVarT m a
- data StdUniform t = StdUniform
- stdUniform :: Distribution StdUniform a => RVar a
- stdUniformT :: Distribution StdUniform a => RVarT m a
- stdUniformPos :: (Distribution StdUniform a, Num a, Eq a) => RVar a
- stdUniformPosT :: (Distribution StdUniform a, Num a, Eq a) => RVarT m a
- integralUniform :: Integral a => a -> a -> RVarT m a
- realFloatUniform :: RealFloat a => a -> a -> RVarT m a
- floatUniform :: Float -> Float -> RVarT m Float
- doubleUniform :: Double -> Double -> RVarT m Double
- fixedUniform :: HasResolution r => Fixed r -> Fixed r -> RVarT m (Fixed r)
- boundedStdUniform :: (Distribution Uniform a, Bounded a) => RVar a
- boundedEnumStdUniform :: (Enum a, Bounded a) => RVarT m a
- realFloatStdUniform :: RealFloat a => RVarT m a
- fixedStdUniform :: HasResolution r => RVarT m (Fixed r)
- floatStdUniform :: RVarT m Float
- doubleStdUniform :: RVarT m Double
- realStdUniformCDF :: Real a => a -> Double
- realUniformCDF :: RealFrac a => a -> a -> a -> Double

# Documentation

A definition of a uniform distribution over the type `t`

. See also `uniform`

.

Uniform !t !t | A uniform distribution defined by a lower and upper range bound.
For |

uniform :: Distribution Uniform a => a -> a -> RVar aSource

uniformT :: Distribution Uniform a => a -> a -> RVarT m aSource

data StdUniform t Source

A name for the "standard" uniform distribution over the type `t`

,
if one exists. See also `stdUniform`

.

For `Integral`

and `Enum`

types that are also `Bounded`

, this is
the uniform distribution over the full range of the type.
For un-`Bounded`

`Integral`

types this is not defined.
For `Fractional`

types this is a random variable in the range [0,1)
(that is, 0 to 1 including 0 but not including 1).

stdUniform :: Distribution StdUniform a => RVar aSource

Get a "standard" uniformly distributed variable.
For integral types, this means uniformly distributed over the full range
of the type (there is no support for `Integer`

). For fractional
types, this means uniformly distributed on the interval [0,1).

stdUniformT :: Distribution StdUniform a => RVarT m aSource

Get a "standard" uniformly distributed process.
For integral types, this means uniformly distributed over the full range
of the type (there is no support for `Integer`

). For fractional
types, this means uniformly distributed on the interval [0,1).

stdUniformPos :: (Distribution StdUniform a, Num a, Eq a) => RVar aSource

Like `stdUniform`

but only returns positive values.

stdUniformPosT :: (Distribution StdUniform a, Num a, Eq a) => RVarT m aSource

Like `stdUniform`

but only returns positive values.

integralUniform :: Integral a => a -> a -> RVarT m aSource

Compute a random `Integral`

value between the 2 values provided (inclusive).

realFloatUniform :: RealFloat a => a -> a -> RVarT m aSource

`realFloatUniform a b`

computes a uniform random value in the range [a,b) for
any `RealFloat`

type

floatUniform :: Float -> Float -> RVarT m FloatSource

`floatUniform a b`

computes a uniform random `Float`

value in the range [a,b)

doubleUniform :: Double -> Double -> RVarT m DoubleSource

`doubleUniform a b`

computes a uniform random `Double`

value in the range [a,b)

fixedUniform :: HasResolution r => Fixed r -> Fixed r -> RVarT m (Fixed r)Source

`fixedUniform a b`

computes a uniform random `Fixed`

value in the range
[a,b), with any desired precision.

boundedStdUniform :: (Distribution Uniform a, Bounded a) => RVar aSource

boundedEnumStdUniform :: (Enum a, Bounded a) => RVarT m aSource

realFloatStdUniform :: RealFloat a => RVarT m aSource

Compute a uniform random value in the range [0,1) for any `RealFloat`

type

fixedStdUniform :: HasResolution r => RVarT m (Fixed r)Source

Compute a uniform random `Fixed`

value in the range [0,1), with any
desired precision.

floatStdUniform :: RVarT m FloatSource

Compute a uniform random `Float`

value in the range [0,1)

doubleStdUniform :: RVarT m DoubleSource

Compute a uniform random `Double`

value in the range [0,1)

realStdUniformCDF :: Real a => a -> DoubleSource

The CDF of the random variable `realFloatStdUniform`

.

realUniformCDF :: RealFrac a => a -> a -> a -> DoubleSource

`realUniformCDF a b`

is the CDF of the random variable `realFloatUniform a b`

.