linear-0.6: Linear Algebra

Portabilitynon-portable
Stabilityexperimental
MaintainerEdward Kmett <ekmett@gmail.com>
Safe HaskellNone

Linear.V2

Description

2-D Vectors

Synopsis

Documentation

data V2 a Source

A 2-dimensional vector

>>> pure 1 :: V2 Int
V2 1 1
>>> V2 1 2 + V2 3 4
V2 4 6
>>> V2 1 2 * V2 3 4
V2 3 8
>>> sum (V2 1 2)
3

Constructors

V2 a a 

Instances

Monad V2 
Functor V2 
Typeable1 V2 
Applicative V2 
Foldable V2 
Traversable V2 
Distributive V2 
Metric V2 
Core V2 
R2 V2 
Eq a => Eq (V2 a) 
(Num (V2 a), Fractional a) => Fractional (V2 a) 
(Typeable (V2 a), Data a) => Data (V2 a) 
Num a => Num (V2 a) 
(Eq (V2 a), Ord a) => Ord (V2 a) 
Read a => Read (V2 a) 
Show a => Show (V2 a) 
(Ord (V2 a), Ix a) => Ix (V2 a) 
Storable a => Storable (V2 a) 
(Num (V2 a), Epsilon a) => Epsilon (V2 a) 

class R2 t whereSource

A space that distinguishes 2 orthogonal basis vectors _x and _y, but may have more.

Methods

_x :: Functor f => (a -> f a) -> t a -> f (t a)Source

>>> V2 1 2 ^._x
1
>>> V2 1 2 & _x .~ 3
V2 3 2

_y :: Functor f => (a -> f a) -> t a -> f (t a)Source

>>> V2 1 2 ^._y
2
>>> V2 1 2 & _y .~ 3
V2 1 3

_xy :: Functor f => (V2 a -> f (V2 a)) -> t a -> f (t a)Source

Instances

R2 V2 
R2 V3 
R2 V4 

perp :: Num a => V2 a -> V2 aSource

the counter-clockwise perpendicular vector

>>> perp $ V2 10 20
V2 (-20) 10