Numeric.LinearAlgebra.Multivector
 Stability experimental Maintainer Alberto Ruiz
Description

A simple implementation of Geometric Algebra.

The Num instance provides the geometric product, and the Fractional instance provides the inverse of multivectors.

This module provides a simple Euclidean embedding.

Synopsis
 data Multivector coords :: Multivector -> [(Double, [Int])] scalar :: Double -> Multivector vector :: [Double] -> Multivector e :: Int -> Multivector (/\) :: Multivector -> Multivector -> Multivector (-|) :: Multivector -> Multivector -> Multivector (\/) :: Multivector -> Multivector -> Multivector rever :: Multivector -> Multivector full :: Int -> Multivector rotor :: Int -> Double -> Multivector -> Multivector apply :: (Int -> Multivector) -> Multivector -> Multivector grade :: Int -> Multivector -> Multivector maxGrade :: Multivector -> Int maxDim :: Multivector -> Int fromTensor :: Tensor Double -> Multivector
Documentation
 data Multivector Source
Instances
 Eq Multivector Fractional Multivector Num Multivector Show Multivector
 coords :: Multivector -> [(Double, [Int])] Source
 scalar :: Double -> Multivector Source
Creates a scalar multivector.
 vector :: [Double] -> Multivector Source
Creates a grade 1 multivector of from a list of coordinates.
 e :: Int -> Multivector Source
The k-th basis element.
 (/\) :: Multivector -> Multivector -> Multivector Source
The exterior (outer) product.
 (-|) :: Multivector -> Multivector -> Multivector Source
The contractive inner product.
 (\/) :: Multivector -> Multivector -> Multivector Source
Intersection of subspaces.
 rever :: Multivector -> Multivector Source
The reversion operator.
 full :: Int -> Multivector Source
The full space of the given dimension. This is the leviCivita simbol, and the basis of the pseudoscalar.
 rotor Source
 :: Int dimension of the space -> Double angle -> Multivector axis -> Multivector result The rotor operator, used in a sandwich product.
 apply :: (Int -> Multivector) -> Multivector -> Multivector Source

Apply a linear transformation, expressed as the image of the element i-th of the basis.

 grade :: Int -> Multivector -> Multivector Source
 maxGrade :: Multivector -> Int Source
 maxDim :: Multivector -> Int Source
 fromTensor :: Tensor Double -> Multivector Source

Extract a multivector representation from a full antisymmetric tensor.

(We do not check that the tensor is actually antisymmetric.)