linear-1.18.0.1: Linear Algebra

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 MonadFix V2 Applicative V2 Foldable V2 Traversable V2 Generic1 V2 Distributive V2 Representable V2 MonadZip V2 Serial1 V2 Traversable1 V2 Foldable1 V2 Apply V2 Bind V2 Eq1 V2 Ord1 V2 Read1 V2 Show1 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) Bounded a => Bounded (V2 a) Eq a => Eq (V2 a) Floating a => Floating (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) Binary a => Binary (V2 a) Serial a => Serial (V2 a) Serialize a => Serialize (V2 a) NFData a => NFData (V2 a) Hashable a => Hashable (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 Typeable (* -> *) V2 type Rep1 V2 type Rep V2 = E V2 type Diff V2 = V2 data MVector s (V2 a) = MV_V2 !Int (MVector s a) type Rep (V2 a) data Vector (V2 a) = V_V2 !Int (Vector a) type Index (V2 a) = E V2 type IxValue (V2 a) = a

class R1 t where Source

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

Minimal complete definition

Nothing

Methods

_x :: Lens' (t a) a Source

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

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

Minimal complete definition

Nothing

Methods

_y :: Lens' (t a) a Source

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

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

Instances

 R2 V2 R2 V3 R2 V4 R2 f => R2 (Point f)

_yx :: R2 t => Lens' (t a) (V2 a) Source

````>>> ````V2 1 2 ^. _yx
```V2 2 1
```

ex :: R1 t => E t Source

ey :: R2 t => E t Source

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

the counter-clockwise perpendicular vector

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

angle :: Floating a => a -> V2 a Source