Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Synopsis
- data Interval a
- imap :: Preorder b => (a -> b) -> Interval a -> Interval b
- (...) :: Preorder a => a -> a -> Interval a
- iempty :: Interval a
- singleton :: a -> Interval a
- contains :: Preorder a => Interval a -> a -> Bool
- endpts :: Interval a -> Maybe (a, a)
- open32 :: Float -> Float -> Interval Float
- open32L :: Float -> Float -> Interval Float
- open32R :: Float -> Float -> Interval Float
- open64 :: Double -> Double -> Interval Double
- open64L :: Double -> Double -> Interval Double
- open64R :: Double -> Double -> Interval Double
Documentation
An interval in a poset P.
An interval in a poset P is a subset I of P with the following property:
\( \forall x, y \in I, z \in P: x \leq z \leq y \Rightarrow z \in I \)
Instances
Eq a => Eq (Interval a) Source # | |
Show a => Show (Interval a) Source # | |
Preorder a => Preorder (Interval a) Source # | |
Defined in Data.Order.Interval (<~) :: Interval a -> Interval a -> Bool Source # (>~) :: Interval a -> Interval a -> Bool Source # (<) :: Interval a -> Interval a -> Bool Source # (>) :: Interval a -> Interval a -> Bool Source # (?~) :: Interval a -> Interval a -> Bool Source # (~~) :: Interval a -> Interval a -> Bool Source # (/~) :: Interval a -> Interval a -> Bool Source # similar :: Interval a -> Interval a -> Bool Source # pcompare :: Interval a -> Interval a -> Maybe Ordering Source # pmax :: Interval a -> Interval a -> Maybe (Interval a) Source # pmin :: Interval a -> Interval a -> Maybe (Interval a) Source # |
imap :: Preorder b => (a -> b) -> Interval a -> Interval b Source #
Map over an interval.
Note this is not a functor, as a non-monotonic map may cause the interval to collapse to the iempty interval.
(...) :: Preorder a => a -> a -> Interval a infix 3 Source #
Construct an interval from a pair of points.
Note: Endpoints are preorder-sorted. If pcompare x y = Nothing then the resulting interval will be empty.
singleton :: a -> Interval a Source #
Construct an interval containing a single point.
>>>
singleton 1
1 ... 1
Floating point intervals
open32 :: Float -> Float -> Interval Float Source #
Construnct an open interval.
>>>
contains 1 $ open32 1 2
False>>>
contains 2 $ open32 1 2
False
open32L :: Float -> Float -> Interval Float Source #
Construnct a half-open interval.
>>>
contains 1 $ open32L 1 2
False>>>
contains 2 $ open32L 1 2
True
open32R :: Float -> Float -> Interval Float Source #
Construnct a half-open interval.
>>>
contains 1 $ open32R 1 2
True>>>
contains 2 $ open32R 1 2
False
open64 :: Double -> Double -> Interval Double Source #
Construnct an open interval.
>>>
contains 1 $ open64 1 2
False>>>
contains 2 $ open64 1 2
False