Safe Haskell | None |
---|---|
Language | Haskell2010 |
Vector is an alias to a DataFrame with order 1.
Synopsis
- type Vector (t :: l) (n :: k) = DataFrame t '[n]
- type Vec2f = Vector Float 2
- type Vec3f = Vector Float 3
- type Vec4f = Vector Float 4
- type Vec2d = Vector Double 2
- type Vec3d = Vector Double 3
- type Vec4d = Vector Double 4
- type Vec2i = Vector Int 2
- type Vec3i = Vector Int 3
- type Vec4i = Vector Int 4
- type Vec2w = Vector Word 2
- type Vec3w = Vector Word 3
- type Vec4w = Vector Word 4
- class Vector2 t where
- class Vector3 t where
- class Vector4 t where
- data family DataFrame (t :: l) (xs :: [k])
- (.*.) :: (Num t, Num (Vector t n), SubSpace t '[n] '[] '[n]) => Vector t n -> Vector t n -> Vector t n
- dot :: (Num t, Num (Vector t n), SubSpace t '[n] '[] '[n]) => Vector t n -> Vector t n -> Scalar t
- (·) :: (Num t, Num (Vector t n), SubSpace t '[n] '[] '[n]) => Vector t n -> Vector t n -> Scalar t
- normL1 :: (Num t, SubSpace t '[n] '[] '[n]) => Vector t n -> Scalar t
- normL2 :: (Floating t, SubSpace t '[n] '[] '[n]) => Vector t n -> Scalar t
- normLPInf :: (Ord t, Num t, SubSpace t '[n] '[] '[n]) => Vector t n -> Scalar t
- normLNInf :: (Ord t, Num t, SubSpace t '[n] '[] '[n]) => Vector t n -> Scalar t
- normLP :: (Floating t, SubSpace t '[n] '[] '[n]) => Int -> Vector t n -> Scalar t
- normalized :: (Floating t, Fractional (Vector t n), SubSpace t '[n] '[] '[n]) => Vector t n -> Vector t n
- det2 :: (Num t, SubSpace t '[2] '[] '[2]) => Vector t 2 -> Vector t 2 -> Scalar t
- cross :: (Num t, SubSpace t '[3] '[] '[3]) => Vector t 3 -> Vector t 3 -> Vector t 3
- (×) :: (Num t, SubSpace t '[3] '[] '[3]) => Vector t 3 -> Vector t 3 -> Vector t 3
Type aliases
Vector constructors
class Vector2 t where Source #
Packing and unpacking 2D vectors
class Vector3 t where Source #
Packing and unpacking 3D vectors
class Vector4 t where Source #
Packing and unpacking 4D vectors
data family DataFrame (t :: l) (xs :: [k]) Source #
Keep data in a primitive data frame and maintain information about Dimensions in the type system
Instances
Common operations
(.*.) :: (Num t, Num (Vector t n), SubSpace t '[n] '[] '[n]) => Vector t n -> Vector t n -> Vector t n infixl 7 Source #
Scalar product -- sum of Vecs' components products, propagated into whole Vec
dot :: (Num t, Num (Vector t n), SubSpace t '[n] '[] '[n]) => Vector t n -> Vector t n -> Scalar t Source #
Scalar product -- sum of Vecs' components products -- a scalar
(·) :: (Num t, Num (Vector t n), SubSpace t '[n] '[] '[n]) => Vector t n -> Vector t n -> Scalar t infixl 7 Source #
Dot product of two vectors
normL1 :: (Num t, SubSpace t '[n] '[] '[n]) => Vector t n -> Scalar t Source #
Sum of absolute values
normL2 :: (Floating t, SubSpace t '[n] '[] '[n]) => Vector t n -> Scalar t Source #
hypot function (square root of squares)
normLPInf :: (Ord t, Num t, SubSpace t '[n] '[] '[n]) => Vector t n -> Scalar t Source #
Maximum of absolute values
normLNInf :: (Ord t, Num t, SubSpace t '[n] '[] '[n]) => Vector t n -> Scalar t Source #
Minimum of absolute values
normLP :: (Floating t, SubSpace t '[n] '[] '[n]) => Int -> Vector t n -> Scalar t Source #
Norm in Lp space
normalized :: (Floating t, Fractional (Vector t n), SubSpace t '[n] '[] '[n]) => Vector t n -> Vector t n Source #
Normalize vector w.r.t. Euclidean metric (L2).
det2 :: (Num t, SubSpace t '[2] '[] '[2]) => Vector t 2 -> Vector t 2 -> Scalar t Source #
Take a determinant of a matrix composed from two 2D vectors. Like a cross product in 2D.