numhask-space-0.2.0: numerical spaces

Safe HaskellNone
LanguageHaskell2010

NumHask.Point

Description

A 2-dimensional point.

Synopsis

Documentation

newtype Point a Source #

A 2-dim point of a's, implemented as a tuple, but api represented as Point a a.

>>> fmap (+1) (Point 1 2)
Point 2 3
>>> pure one :: Point Int
Point 1 1
>>> (*) <$> Point 1 2 <*> pure 2
Point 2 4
>>> foldr (++) [] (Point [1,2] [3])
[1,2,3]
>>> Point "a" "pair" `mappend` pure " " `mappend` Point "string" "mappended"
Point "a string" "pair mappended"

As a Ring and Field class

>>> Point 0 1 + zero
Point 0 1
>>> Point 0 1 + Point 2 3
Point 2 4
>>> Point 1 1 - one
Point 0 0
>>> Point 0 1 * one
Point 0 1
>>> Point 0.0 1.0 / one
Point 0.0 1.0
>>> Point 11 12 `mod` (pure 6)
Point 5 0

Constructors

Point' (a, a) 
Instances
Monad Point Source # 
Instance details

Defined in NumHask.Point

Methods

(>>=) :: Point a -> (a -> Point b) -> Point b #

(>>) :: Point a -> Point b -> Point b #

return :: a -> Point a #

fail :: String -> Point a #

Functor Point Source # 
Instance details

Defined in NumHask.Point

Methods

fmap :: (a -> b) -> Point a -> Point b #

(<$) :: a -> Point b -> Point a #

Applicative Point Source # 
Instance details

Defined in NumHask.Point

Methods

pure :: a -> Point a #

(<*>) :: Point (a -> b) -> Point a -> Point b #

liftA2 :: (a -> b -> c) -> Point a -> Point b -> Point c #

(*>) :: Point a -> Point b -> Point b #

(<*) :: Point a -> Point b -> Point a #

Foldable Point Source # 
Instance details

Defined in NumHask.Point

Methods

fold :: Monoid m => Point m -> m #

foldMap :: Monoid m => (a -> m) -> Point a -> m #

foldr :: (a -> b -> b) -> b -> Point a -> b #

foldr' :: (a -> b -> b) -> b -> Point a -> b #

foldl :: (b -> a -> b) -> b -> Point a -> b #

foldl' :: (b -> a -> b) -> b -> Point a -> b #

foldr1 :: (a -> a -> a) -> Point a -> a #

foldl1 :: (a -> a -> a) -> Point a -> a #

toList :: Point a -> [a] #

null :: Point a -> Bool #

length :: Point a -> Int #

elem :: Eq a => a -> Point a -> Bool #

maximum :: Ord a => Point a -> a #

minimum :: Ord a => Point a -> a #

sum :: Num a => Point a -> a #

product :: Num a => Point a -> a #

Traversable Point Source # 
Instance details

Defined in NumHask.Point

Methods

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

sequenceA :: Applicative f => Point (f a) -> f (Point a) #

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

sequence :: Monad m => Point (m a) -> m (Point a) #

Distributive Point Source # 
Instance details

Defined in NumHask.Point

Methods

distribute :: Functor f => f (Point a) -> Point (f a) #

collect :: Functor f => (a -> Point b) -> f a -> Point (f b) #

distributeM :: Monad m => m (Point a) -> Point (m a) #

collectM :: Monad m => (a -> Point b) -> m a -> Point (m b) #

Representable Point Source # 
Instance details

Defined in NumHask.Point

Associated Types

type Rep Point :: Type #

Methods

tabulate :: (Rep Point -> a) -> Point a #

index :: Point a -> Rep Point -> a #

Eq1 Point Source # 
Instance details

Defined in NumHask.Point

Methods

liftEq :: (a -> b -> Bool) -> Point a -> Point b -> Bool #

Show1 Point Source # 
Instance details

Defined in NumHask.Point

Methods

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> Point a -> ShowS #

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [Point a] -> ShowS #

Bounded a => Bounded (Point a) Source # 
Instance details

Defined in NumHask.Point

Methods

minBound :: Point a #

maxBound :: Point a #

Eq a => Eq (Point a) Source # 
Instance details

Defined in NumHask.Point

Methods

(==) :: Point a -> Point a -> Bool #

(/=) :: Point a -> Point a -> Bool #

Fractional a => Fractional (Point a) Source # 
Instance details

Defined in NumHask.Point

Methods

(/) :: Point a -> Point a -> Point a #

recip :: Point a -> Point a #

fromRational :: Rational -> Point a #

Num a => Num (Point a) Source # 
Instance details

Defined in NumHask.Point

Methods

(+) :: Point a -> Point a -> Point a #

(-) :: Point a -> Point a -> Point a #

(*) :: Point a -> Point a -> Point a #

negate :: Point a -> Point a #

abs :: Point a -> Point a #

signum :: Point a -> Point a #

fromInteger :: Integer -> Point a #

Show a => Show (Point a) Source # 
Instance details

Defined in NumHask.Point

Methods

showsPrec :: Int -> Point a -> ShowS #

show :: Point a -> String #

showList :: [Point a] -> ShowS #

Generic (Point a) Source # 
Instance details

Defined in NumHask.Point

Associated Types

type Rep (Point a) :: Type -> Type #

Methods

from :: Point a -> Rep (Point a) x #

to :: Rep (Point a) x -> Point a #

Semigroup a => Semigroup (Point a) Source # 
Instance details

Defined in NumHask.Point

Methods

(<>) :: Point a -> Point a -> Point a #

sconcat :: NonEmpty (Point a) -> Point a #

stimes :: Integral b => b -> Point a -> Point a #

(Semigroup a, Monoid a) => Monoid (Point a) Source # 
Instance details

Defined in NumHask.Point

Methods

mempty :: Point a #

mappend :: Point a -> Point a -> Point a #

mconcat :: [Point a] -> Point a #

Ord a => Lattice (Point a) Source # 
Instance details

Defined in NumHask.Point

Methods

(\/) :: Point a -> Point a -> Point a #

(/\) :: Point a -> Point a -> Point a #

type Rep Point Source # 
Instance details

Defined in NumHask.Point

type Rep Point = Bool
type Rep (Point a) Source # 
Instance details

Defined in NumHask.Point

type Rep (Point a) = D1 (MetaData "Point" "NumHask.Point" "numhask-space-0.2.0-Lufpc8Rnj2uGfgI0GjZHwy" True) (C1 (MetaCons "Point'" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (a, a))))

pattern Point :: a -> a -> Point a Source #

the preferred pattern

rotate :: Floating a => a -> Point a -> Point a Source #

rotate a point by x degrees relative to the origin

gridP :: (Ord a, Fractional a) => (a -> a) -> Range a -> Int -> [Point a] Source #

Create Points for a formulae y = f(x) across an x range