OR : Type -> Type -> Type- Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 0 PosInf : Double- Totality: total
Visibility: public export NegInf : Double- Totality: total
Visibility: public export MinDouble : Double- Totality: total
Visibility: public export MaxDouble : Double- Totality: total
Visibility: public export min4 : Double -> Double -> Double -> Double -> Double- Totality: total
Visibility: public export min6 : Double -> Double -> Double -> Double -> Double -> Double -> Double- Totality: total
Visibility: public export max4 : Double -> Double -> Double -> Double -> Double- Totality: total
Visibility: public export max6 : Double -> Double -> Double -> Double -> Double -> Double -> Double- Totality: total
Visibility: public export zormin : Double -> Double -> Double- Totality: total
Visibility: public export Finite : Double -> Type- Totality: total
Visibility: public export NonZero : Double -> Type- Totality: total
Visibility: public export lteRefl : {auto 0 _ : So (x == x)} -> So (x <= x)- Totality: total
Visibility: export lteNotNaNL : {auto 0 _ : So (x <= y)} -> So (x == x)- Totality: total
Visibility: export lteNotNaNR : {auto 0 _ : So (y <= x)} -> So (x == x)- Totality: total
Visibility: export lteTrans : {auto 0 _ : So (a <= b)} -> {auto 0 _ : So (b <= c)} -> So (a <= c)- Totality: total
Visibility: export lteNegInf : {auto 0 _ : So (x == x)} -> So (NegInf <= x)- Totality: total
Visibility: export ltePosInf : {auto 0 _ : So (x == x)} -> So (x <= PosInf)- Totality: total
Visibility: export lteMin : {auto 0 _ : So (x == x)} -> {auto 0 _ : Finite x} -> So (MinDouble <= x)- Totality: total
Visibility: export lteMax : {auto 0 _ : So (x == x)} -> {auto 0 _ : Finite x} -> So (x <= MaxDouble)- Totality: total
Visibility: export lteFromLt : {auto 0 _ : So (x < y)} -> So (x <= y)- Totality: total
Visibility: export lteRev : {auto 0 _ : So (x == x)} -> {auto 0 _ : So (y == y)} -> {auto 0 _ : So (not (x <= y))} -> So (y < x)- Totality: total
Visibility: export data DoubleBetween : Double -> Double -> Type The type of double in the given bounds.
Both bounds and the value can be infinite.
If either bounds is `NaN`, the type is uninhabited.
The internal double value cannot be `NaN` since to inhabit the constructor,
one needs to satisfy the bounds which is impossible with `NaN` value.
Totality: total
Visibility: public export
Constructor: BoundedDouble : (x : Double) -> {auto 0 _ : So (lower <= x)} -> {auto 0 _ : So (x <= upper)} -> DoubleBetween lower upper
Hints:
Cast (DoubleBetween l u) Double Cast Nat (DoubleBetween 0.0 PosInf) Eq (DoubleBetween l u) Ord (DoubleBetween l u) Show (DoubleBetween l u)
SolidDouble : Type Represents a bounded double which can hold any `Double` except the `NaN`.
Actually, an alias for `DoubleBetween` with infinite bounds.
Totality: total
Visibility: public exportFiniteDouble : Type- Totality: total
Visibility: public export maybeBoundedDouble : Double -> Maybe (DoubleBetween lower upper)- Totality: total
Visibility: public export roughlyFit : {auto 0 _ : So (l <= u)} -> Double -> DoubleBetween l u- Totality: total
Visibility: public export .asDouble : DoubleBetween l u -> Double- Totality: total
Visibility: public export weakenBounds : DoubleBetween l u -> {auto 0 _ : So (l' <= l)} -> {auto 0 _ : So (u <= u')} -> DoubleBetween l' u'- Totality: total
Visibility: public export relaxToSolid : DoubleBetween l u -> SolidDouble- Totality: total
Visibility: public export relaxToFinite : {auto 0 _ : Finite l} -> {auto 0 _ : Finite u} -> DoubleBetween l u -> FiniteDouble- Totality: total
Visibility: public export strengthenBounds : DoubleBetween l u -> Maybe (DoubleBetween l' u')- Totality: total
Visibility: public export fromNat : Nat -> DoubleBetween 0.0 PosInf- Totality: total
Visibility: export fromDouble : (x : Double) -> {auto 0 _ : So (x == x)} -> DoubleBetween x x- Totality: total
Visibility: public export fromInteger : (x : Integer) -> {auto 0 _ : So (cast x == cast x)} -> DoubleBetween (cast x) (cast x)- Totality: total
Visibility: public export fromDouble : (x : Double) -> {auto 0 _ : So (lower <= x)} -> {auto 0 _ : So (x <= upper)} -> DoubleBetween lower upper- Totality: total
Visibility: public export fromInteger : (x : Integer) -> {auto 0 _ : So (lower <= cast x)} -> {auto 0 _ : So (cast x <= upper)} -> DoubleBetween lower upper- Totality: total
Visibility: public export NegInf : {auto 0 _ : So (u == u)} -> DoubleBetween NegInf u- Totality: total
Visibility: public export PosInf : {auto 0 _ : So (l == l)} -> DoubleBetween l PosInf- Totality: total
Visibility: public export pi : DoubleBetween pi pi- Totality: total
Visibility: public export Pi : DoubleBetween pi pi- Totality: total
Visibility: public export euler : DoubleBetween euler euler- Totality: total
Visibility: public export Euler : DoubleBetween euler euler- Totality: total
Visibility: public export strengthenRight : (x : DoubleBetween l u) -> (y : DoubleBetween l u) -> {auto 0 _ : So (x <= y)} -> Subset (DoubleBetween (x .asDouble) u) (\y' => y' .asDouble = y .asDouble)- Totality: total
Visibility: export bisect : (m : DoubleBetween l u) -> DoubleBetween l u -> DoubleBetween l (m .asDouble) `OR` DoubleBetween (m .asDouble) u- Totality: total
Visibility: export trisect : (m1 : DoubleBetween l u) -> (m2 : DoubleBetween l u) -> {auto 0 _ : So (m1 <= m2)} -> DoubleBetween l u -> DoubleBetween l (m1 .asDouble) `OR` (DoubleBetween (m1 .asDouble) (m2 .asDouble) `OR` DoubleBetween (m2 .asDouble) u)- Totality: total
Visibility: export (+) : DoubleBetween l u -> DoubleBetween l' u' -> {auto 0 _ : Finite l `OR` (Finite l' `OR` So (l == l'))} -> {auto 0 _ : Finite u `OR` (Finite u' `OR` So (u == u'))} -> DoubleBetween (l + l') (u + u')- Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 8 negate : Neg ty => ty -> ty The underlying of unary minus. `-5` desugars to `negate (fromInteger 5)`.
Totality: total
Visibility: public export
Fixity Declaration: prefix operator, level 10(-) : DoubleBetween l u -> DoubleBetween l' u' -> {auto 0 _ : Finite l `OR` (Finite u' `OR` So (l /= u'))} -> {auto 0 _ : Finite u `OR` (Finite l' `OR` So (u /= l'))} -> DoubleBetween (l - u') (u - l')- Totality: total
Visibility: export
Fixity Declarations:
infixl operator, level 8
prefix operator, level 10 (*) : DoubleBetween l u -> DoubleBetween l' u' -> {auto 0 _ : Finite l `OR` NonZero l'} -> {auto 0 _ : Finite l `OR` NonZero u'} -> {auto 0 _ : Finite u `OR` NonZero l'} -> {auto 0 _ : Finite u `OR` NonZero u'} -> {auto 0 _ : Finite l' `OR` NonZero l} -> {auto 0 _ : Finite l' `OR` NonZero u} -> {auto 0 _ : Finite u' `OR` NonZero l} -> {auto 0 _ : Finite u' `OR` NonZero u} -> DoubleBetween (min4 (l * l') (l * u') (u * l') (u * u')) (max4 (l * l') (l * u') (u * l') (u * u'))- Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 9 (/) : (num : DoubleBetween l u) -> (den : DoubleBetween l' u') -> {auto 0 _ : So (0.0 < l') `OR` (So (u' < 0.0) `OR` So ((l' < 0.0) && Delay ((0.0 < u') && Delay ((l /= 0.0) && Delay (u /= 0.0)))))} -> {auto 0 _ : So (0.0 < l) `OR` (So (u < 0.0) `OR` (So (0.0 < l') `OR` (So (u' < 0.0) `OR` (NonZero (num .asDouble), NonZero (den .asDouble)))))} -> {auto 0 _ : Finite l `OR` Finite l'} -> {auto 0 _ : Finite l `OR` Finite u'} -> {auto 0 _ : Finite u `OR` Finite l'} -> {auto 0 _ : Finite u `OR` Finite u'} -> {auto 0 _ : NonZero l `OR` NonZero l'} -> {auto 0 _ : NonZero l `OR` NonZero u'} -> {auto 0 _ : NonZero u `OR` NonZero l'} -> {auto 0 _ : NonZero u `OR` NonZero u'} -> DoubleBetween (min6 (l / l') (l / u') (u / l') (u / u') (l / zormin l' u') (u / zormin l' u')) (max6 (l / l') (l / u') (u / l') (u / u') (l / zormin l' u') (u / zormin l' u'))- Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 9 negate : DoubleBetween l u -> DoubleBetween (negate u) (negate l)- Totality: total
Visibility: export
Fixity Declaration: prefix operator, level 10 sqrt : {auto 0 _ : So (0.0 <= l)} -> DoubleBetween l u -> DoubleBetween (sqrt l) (sqrt u)- Totality: total
Visibility: export sqrtRelaxed : {auto 0 _ : So (0.0 <= l)} -> DoubleBetween l u -> DoubleBetween 0.0 PosInf- Totality: total
Visibility: export log : {auto 0 _ : So (0.0 <= l)} -> DoubleBetween l u -> DoubleBetween (log l) (log u)- Totality: total
Visibility: export exp : DoubleBetween l u -> DoubleBetween (exp l) (exp u)- Totality: total
Visibility: export expRelaxed : DoubleBetween l u -> DoubleBetween 0.0 PosInf- Totality: total
Visibility: export pow2 : DoubleBetween l u -> DoubleBetween (pow 2.0 l) (pow 2.0 u)- Totality: total
Visibility: export sin : FiniteDouble -> DoubleBetween -1.0 1.0- Totality: total
Visibility: export cos : FiniteDouble -> DoubleBetween -1.0 1.0- Totality: total
Visibility: export asin : DoubleBetween -1.0 1.0 -> DoubleBetween (negate pi / 2.0) (pi / 2.0)- Totality: total
Visibility: export acos : DoubleBetween -1.0 1.0 -> DoubleBetween 0.0 pi- Totality: total
Visibility: export