hTensor-0.9.1: Multidimensional arrays and simple tensor computations.

Copyright(c) Alberto Ruiz 2009
LicenseBSD3
MaintainerAlberto Ruiz
Stabilityexperimental
Safe HaskellNone
LanguageHaskell98

Numeric.LinearAlgebra.Multivector

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

Documentation

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 infixl 7 Source #

The exterior (outer) product.

(-|) :: Multivector -> Multivector -> Multivector infixl 7 Source #

The contractive inner product.

(\/) :: Multivector -> Multivector -> Multivector infixl 7 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 #

Arguments

:: 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.

(This is a monadic bind!)

fromTensor :: Tensor Double -> Multivector Source #

Extract a multivector representation from a full antisymmetric tensor.

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