hgeometry-1.0.0.0: Geometric Algorithms, Data structures, and Data types.
Copyright(C) Frank Staals
Licensesee the LICENSE file
MaintainerFrank Staals
Safe HaskellSafe-Inferred
LanguageGHC2021

HGeometry.Interval.Internal

Description

Intervals

Synopsis

Documentation

data Interval endPoint r where Source #

Data type representing intervals

Bundled Patterns

pattern Interval :: endPoint r -> endPoint r -> Interval endPoint r

Construct an interval

pattern ClosedInterval :: r -> r -> ClosedInterval r

Construct a closed interval

pattern OpenInterval :: r -> r -> OpenInterval r

Construct an open ended interval

Instances

Instances details
ClosedInterval_ (ClosedInterval r) r Source # 
Instance details

Defined in HGeometry.Interval.Internal

ConstructableClosedInterval_ (ClosedInterval r) r Source # 
Instance details

Defined in HGeometry.Interval.Internal

ConstructableOpenInterval_ (OpenInterval r) r Source # 
Instance details

Defined in HGeometry.Interval.Internal

Methods

mkOpenInterval :: r -> r -> OpenInterval r Source #

OpenInterval_ (OpenInterval r) r Source # 
Instance details

Defined in HGeometry.Interval.Internal

Ord r => HasIntersectionWith (ClosedInterval r) (HalfOpenInterval r) Source # 
Instance details

Defined in HGeometry.Interval.HalfOpen

Ord r => HasIntersectionWith (OpenInterval r) (ClosedInterval r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Ord r => HasIntersectionWith (OpenInterval r) (OpenInterval r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Ord r => IsIntersectableWith (ClosedInterval r) (ClosedInterval r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Ord r => IsIntersectableWith (OpenInterval r) (OpenInterval r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

(Ord r, IxValue (endPoint r) ~ r, EndPoint_ (endPoint r)) => HasIntersectionWith (ClosedInterval r) (Interval endPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Methods

intersects :: ClosedInterval r -> Interval endPoint r -> Bool Source #

Ord r => HasIntersectionWith (OpenInterval r) (Interval AnEndPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Foldable endPoint => Foldable (Interval endPoint) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Methods

fold :: Monoid m => Interval endPoint m -> m #

foldMap :: Monoid m => (a -> m) -> Interval endPoint a -> m #

foldMap' :: Monoid m => (a -> m) -> Interval endPoint a -> m #

foldr :: (a -> b -> b) -> b -> Interval endPoint a -> b #

foldr' :: (a -> b -> b) -> b -> Interval endPoint a -> b #

foldl :: (b -> a -> b) -> b -> Interval endPoint a -> b #

foldl' :: (b -> a -> b) -> b -> Interval endPoint a -> b #

foldr1 :: (a -> a -> a) -> Interval endPoint a -> a #

foldl1 :: (a -> a -> a) -> Interval endPoint a -> a #

toList :: Interval endPoint a -> [a] #

null :: Interval endPoint a -> Bool #

length :: Interval endPoint a -> Int #

elem :: Eq a => a -> Interval endPoint a -> Bool #

maximum :: Ord a => Interval endPoint a -> a #

minimum :: Ord a => Interval endPoint a -> a #

sum :: Num a => Interval endPoint a -> a #

product :: Num a => Interval endPoint a -> a #

Traversable endPoint => Traversable (Interval endPoint) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Methods

traverse :: Applicative f => (a -> f b) -> Interval endPoint a -> f (Interval endPoint b) #

sequenceA :: Applicative f => Interval endPoint (f a) -> f (Interval endPoint a) #

mapM :: Monad m => (a -> m b) -> Interval endPoint a -> m (Interval endPoint b) #

sequence :: Monad m => Interval endPoint (m a) -> m (Interval endPoint a) #

Functor endPoint => Functor (Interval endPoint) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Methods

fmap :: (a -> b) -> Interval endPoint a -> Interval endPoint b #

(<$) :: a -> Interval endPoint b -> Interval endPoint a #

Ord r => HasIntersectionWith (Point 1 r) (ClosedInterval r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Methods

intersects :: Point 1 r -> ClosedInterval r -> Bool Source #

Ord r => HasIntersectionWith (Point 1 r) (OpenInterval r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Methods

intersects :: Point 1 r -> OpenInterval r -> Bool Source #

Ord r => IsIntersectableWith (Point 1 r) (ClosedInterval r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Ord r => IsIntersectableWith (Point 1 r) (OpenInterval r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Ord r => HasIntersectionWith (Point 1 r) (Interval AnEndPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Ord r => IsIntersectableWith (Point 1 r) (Interval AnEndPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Read (endPoint r) => Read (Interval endPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Methods

readsPrec :: Int -> ReadS (Interval endPoint r) #

readList :: ReadS [Interval endPoint r] #

readPrec :: ReadPrec (Interval endPoint r) #

readListPrec :: ReadPrec [Interval endPoint r] #

Show (endPoint r) => Show (Interval endPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Methods

showsPrec :: Int -> Interval endPoint r -> ShowS #

show :: Interval endPoint r -> String #

showList :: [Interval endPoint r] -> ShowS #

Eq (endPoint r) => Eq (Interval endPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Methods

(==) :: Interval endPoint r -> Interval endPoint r -> Bool #

(/=) :: Interval endPoint r -> Interval endPoint r -> Bool #

Ord (endPoint r) => Ord (Interval endPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Methods

compare :: Interval endPoint r -> Interval endPoint r -> Ordering #

(<) :: Interval endPoint r -> Interval endPoint r -> Bool #

(<=) :: Interval endPoint r -> Interval endPoint r -> Bool #

(>) :: Interval endPoint r -> Interval endPoint r -> Bool #

(>=) :: Interval endPoint r -> Interval endPoint r -> Bool #

max :: Interval endPoint r -> Interval endPoint r -> Interval endPoint r #

min :: Interval endPoint r -> Interval endPoint r -> Interval endPoint r #

(EndPoint_ (endPoint r), IxValue (endPoint r) ~ r) => ConstructableInterval_ (Interval endPoint r) r Source # 
Instance details

Defined in HGeometry.Interval.Internal

Methods

mkInterval :: StartPointOf (Interval endPoint r) -> EndPointOf (Interval endPoint r) -> Interval endPoint r Source #

buildInterval :: StartPointOf (Interval endPoint r) -> EndPointOf (Interval endPoint r) -> Interval endPoint r Source #

(EndPoint_ (endPoint r), IxValue (endPoint r) ~ r) => HasEnd (Interval endPoint r) r Source # 
Instance details

Defined in HGeometry.Interval.Internal

Methods

end :: Lens' (Interval endPoint r) r Source #

(EndPoint_ (endPoint r), IxValue (endPoint r) ~ r) => HasStart (Interval endPoint r) r Source # 
Instance details

Defined in HGeometry.Interval.Internal

Methods

start :: Lens' (Interval endPoint r) r Source #

(EndPoint_ (endPoint r), IxValue (endPoint r) ~ r) => IntervalLike_ (Interval endPoint r) r Source # 
Instance details

Defined in HGeometry.Interval.Internal

(EndPoint_ (endPoint r), IxValue (endPoint r) ~ r) => Interval_ (Interval endPoint r) r Source # 
Instance details

Defined in HGeometry.Interval.Internal

Ord r => HasIntersectionWith (Interval AnEndPoint r) (ClosedInterval r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Ord r => HasIntersectionWith (Interval AnEndPoint r) (OpenInterval r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

HasEndPoint (Interval endPoint r) (endPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Methods

endPoint :: Lens' (Interval endPoint r) (endPoint r) Source #

HasStartPoint (Interval endPoint r) (endPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Methods

startPoint :: Lens' (Interval endPoint r) (endPoint r) Source #

Ord r => HasIntersectionWith (Interval AnEndPoint r) (Interval AnEndPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Ord r => IsIntersectableWith (Interval AnEndPoint r) (Interval AnEndPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

type Intersection (Point 1 r) (Interval endPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

type Intersection (Point 1 r) (Interval endPoint r) = Maybe r
type EndPointOf (Interval endPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

type EndPointOf (Interval endPoint r) = endPoint r
type StartPointOf (Interval endPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

type StartPointOf (Interval endPoint r) = endPoint r
type NumType (Interval endPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

type NumType (Interval endPoint r) = r
type Intersection (Interval endPoint r) (Interval endPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

type Intersection (Interval endPoint r) (Interval endPoint r) = Maybe (Interval_x_IntervalIntersection r (Interval endPoint r))

type ClosedInterval r = Interval (EndPoint Closed) r Source #

Cosed intervals (using a boxed representation)

type OpenInterval r = Interval (EndPoint Open) r Source #

Open intervals (using a boxed representation)

asClosedInterval :: Interval_ interval r => interval -> Maybe (ClosedInterval r) Source #

Try to interpret the interval as a ClosedInterval, i.e. with both endpoints Closed

asOpenInterval :: Interval_ interval r => interval -> Maybe (OpenInterval r) Source #

Try to interpret the interval as an OpenInterval, i.e. with both endpoints open

asAnInterval :: Interval_ interval r => interval -> Interval AnEndPoint r Source #

convert into an interval whose endpoints are explicitly tagged.

isIntervalOfType Source #

Arguments

:: Interval_ interval r 
=> EndPointType

startPoint type

-> EndPointType

endPoint type

-> interval 
-> Bool 

Test if the interval is of a particular type

data Interval_x_IntervalIntersection r interval Source #

Data type representing intersections of intervals of the same type

Instances

Instances details
Foldable (Interval_x_IntervalIntersection r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Traversable (Interval_x_IntervalIntersection r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Functor (Interval_x_IntervalIntersection r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

(Show r, Show interval) => Show (Interval_x_IntervalIntersection r interval) Source # 
Instance details

Defined in HGeometry.Interval.Internal

(Eq r, Eq interval) => Eq (Interval_x_IntervalIntersection r interval) Source # 
Instance details

Defined in HGeometry.Interval.Internal

(Ord r, Ord interval) => Ord (Interval_x_IntervalIntersection r interval) Source # 
Instance details

Defined in HGeometry.Interval.Internal