linear-0.9.1: 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 
Traversable1 V2 
Foldable1 V2 
Apply V2 
Bind V2 
Additive 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
 _x :: Lens' (t a) a

_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
 _y :: Lens' (t a) a

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

 _xy :: Lens' (t a) (V2 a)

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