Copyright | 2014 Edward Kmett Charles Durham 2015 Trevor L. McDonell |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell2010 |
3-D Vectors
- data V3 a :: * -> * = V3 ~a ~a ~a
- cross :: forall a. Num a => Exp (V3 a) -> Exp (V3 a) -> Exp (V3 a)
- triple :: forall a. Num a => Exp (V3 a) -> Exp (V3 a) -> Exp (V3 a) -> Exp a
- class R1 t => R1 t where
- class (R2 t, R1 t) => R2 t where
- _yx :: forall t a. (R2 t, Elt a, Box t a) => Lens' (Exp (t a)) (Exp (V2 a))
- class (R3 t, R2 t) => R3 t where
- _xz :: forall t a. (R3 t, Elt a, Box t a) => Lens' (Exp (t a)) (Exp (V2 a))
- _yz :: forall t a. (R3 t, Elt a, Box t a) => Lens' (Exp (t a)) (Exp (V2 a))
- _zx :: forall t a. (R3 t, Elt a, Box t a) => Lens' (Exp (t a)) (Exp (V2 a))
- _zy :: forall t a. (R3 t, Elt a, Box t a) => Lens' (Exp (t a)) (Exp (V2 a))
- _xzy :: forall t a. (R3 t, Elt a, Box t a) => Lens' (Exp (t a)) (Exp (V3 a))
- _yxz :: forall t a. (R3 t, Elt a, Box t a) => Lens' (Exp (t a)) (Exp (V3 a))
- _yzx :: forall t a. (R3 t, Elt a, Box t a) => Lens' (Exp (t a)) (Exp (V3 a))
- _zxy :: forall t a. (R3 t, Elt a, Box t a) => Lens' (Exp (t a)) (Exp (V3 a))
- _zyx :: forall t a. (R3 t, Elt a, Box t a) => Lens' (Exp (t a)) (Exp (V3 a))
- ex :: R1 t => E t
- ey :: R2 t => E t
- ez :: R3 t => E t
Documentation
A 3-dimensional vector
V3 ~a ~a ~a |
triple :: forall a. Num a => Exp (V3 a) -> Exp (V3 a) -> Exp (V3 a) -> Exp a Source #
scalar triple product
class R1 t => R1 t where Source #
A space that has at least 1 basis vector _x
.
_yx :: forall t a. (R2 t, Elt a, Box t a) => Lens' (Exp (t a)) (Exp (V2 a)) Source #
>>>
lift (V2 1 2 :: V2 Int) ^. _yx
(2,1)
Orphan instances
Additive V3 Source # | |
Metric V3 Source # | |
R1 V3 Source # | |
R2 V3 Source # | |
cst a => IsProduct cst (V3 a) Source # | |
(Lift Exp a, Elt (Plain a)) => Lift Exp (V3 a) Source # | |
Elt a => Unlift Exp (V3 (Exp a)) Source # | |
Floating a => Floating (Exp (V3 a)) Source # | |
Floating a => Fractional (Exp (V3 a)) Source # | |
Num a => Num (Exp (V3 a)) Source # | |
Elt a => Elt (V3 a) Source # | |
(Elt a, Elt b) => Each (Exp (V3 a)) (Exp (V3 b)) (Exp a) (Exp b) Source # | |