Copyright | (c) Alberto Ruiz 2009 |
---|---|
License | BSD3 |
Maintainer | Alberto Ruiz |
Stability | experimental |
Safe Haskell | None |
Language | Haskell98 |
Exterior Algebra.
- (/\) :: (Coord t, Fractional t) => Tensor t -> Tensor t -> Tensor t
- inner :: (Coord t, Fractional t) => Tensor t -> Tensor t -> Tensor t
- leviCivita :: Int -> Tensor Double
- dual :: Tensor Double -> Tensor Double
- (\/) :: Tensor Double -> Tensor Double -> Tensor Double
- module Numeric.LinearAlgebra.Tensor
- asMultivector :: Tensor Double -> Multivector
- fromMultivector :: Int -> Multivector -> Tensor Double
Documentation
(/\) :: (Coord t, Fractional t) => Tensor t -> Tensor t -> Tensor t infixl 5 Source
The exterior (wedge) product of two tensors. Obtains the union of subspaces.
Implemented as the antisymmetrization of the tensor product.
inner :: (Coord t, Fractional t) => Tensor t -> Tensor t -> Tensor t Source
Euclidean inner product of multivectors.
leviCivita :: Int -> Tensor Double Source
The full antisymmetric tensor of order n (contravariant version).
dual :: Tensor Double -> Tensor Double Source
Inner product of a r-vector with the whole space.
dual t = inner (leviCivita n) t
(\/) :: Tensor Double -> Tensor Double -> Tensor Double infixl 4 Source
The "meet" operator. Obtains the intersection of subspaces.
a \/ b = dual (dual a /\ dual b)
module Numeric.LinearAlgebra.Tensor
asMultivector :: Tensor Double -> Multivector Source
Extract a compact multivector representation from a full antisymmetric tensor.
asMultivector = Multivector.fromTensor
.
(We do not check that the tensor is actually antisymmetric.)
fromMultivector :: Int -> Multivector -> Tensor Double Source
Create an explicit antisymmetric Tensor
from the components of a Multivector of a given grade.