linear-1.9.0.1: Linear Algebra

Portability non-portable experimental Edward Kmett Trustworthy

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 MonadFix V2 Applicative V2 Foldable V2 Traversable V2 Generic1 V2 Distributive V2 Representable V2 MonadZip V2 Traversable1 V2 Foldable1 V2 Apply V2 Bind V2 Additive V2 Metric V2 R1 V2 R2 V2 Trace V2 Affine V2 Unbox a => Vector Vector (V2 a) Unbox a => MVector MVector (V2 a) Num r => Coalgebra r (E V2) Eq a => Eq (V2 a) Fractional a => Fractional (V2 a) Data a => Data (V2 a) Num a => Num (V2 a) Ord a => Ord (V2 a) Read a => Read (V2 a) Show a => Show (V2 a) Ix a => Ix (V2 a) Generic (V2 a) Storable a => Storable (V2 a) Unbox a => Unbox (V2 a) Ixed (V2 a) Epsilon a => Epsilon (V2 a) FunctorWithIndex (E V2) V2 FoldableWithIndex (E V2) V2 TraversableWithIndex (E V2) V2 Each (V2 a) (V2 b) a b

class R1 t whereSource

A space that has at least 1 basis vector `_x`.

Methods

_x :: Lens' (t a) aSource

````>>> ````V1 2 ^._x
```2
```
````>>> ````V1 2 & _x .~ 3
```V1 3
```

Instances

 R1 Identity R1 V1 R1 V2 R1 V3 R1 V4 R1 f => R1 (Point f)

class R1 t => R2 t whereSource

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

Methods

_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 R2 f => R2 (Point f)

ex :: R1 t => E tSource

ey :: R2 t => E tSource

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

the counter-clockwise perpendicular vector

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