linear-0.9.1: Linear Algebra

Portability non-portable experimental Edward Kmett None

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
```