Copyright | (c) Felix Springer 2019 |
---|---|
License | BSD3 |
Maintainer | felixspringer149@gmail.com |
Stability | experimental |
Portability | POSIX |
Safe Haskell | Safe |
Language | Haskell2010 |
This module translates the mathematical definition of a Lie Algebra into a Class LieAlgebra, which also wraps around the other modules.
Synopsis
- class LieAlgebra a s | a -> s where
- (|+|) :: a -> a -> a
- (|*|) :: s -> a -> a
- (|.|) :: a -> a -> a
- basis :: [a]
- linearCombination :: [s] -> a
- adjunction :: a -> a -> a
- trace :: (a -> a) -> s
- (<|>) :: (a -> a) -> (a -> a) -> s
Documentation
class LieAlgebra a s | a -> s where Source #
Vectorspace with Lie Bracket
Addition should satisfy the following attributes.
- Associativity:
(x |+| y) |+| z == x |+| (y |+| z)
- Commutativity:
x |+| y == y |+| x
- Neutral element 0 exists:
x |+| 0 == x
- Inverse element (-x) exists:
x |+| (-x) == 0
Scalar Multiplication should satisfy the following attributes.
- Distributivity:
a |*| (x |+| y) == (a |*| x) |+| (a |*| y)
- Neutral element 1 exists:
1 |*| x == x
Lie Bracket should satisfy the following attributes.
- Bilinearity:
a |*| (x |.| y) == (a |*| x) |.| y
(x |+| y) |.| z == (x |.| z) |+| (y |.| z)
- Antisymmetry:
x |.| y == - (y |.| x)
- Jacobi-Identity:
x |.| (y |.| z) + y |.| (z |.| x) + z |.| (x |.| y) = 0
Ordered Basis Vectors of the Lie Algebra:
- linearly independent
- span the whole Vectorspace
linearCombination :: [s] -> a Source #
Linear Combination of basis vectors, where the order refers to the Basis and the values are the coefficients
adjunction :: a -> a -> a Source #
Natural way one would define a dual to the elements in the Lie Algebra
trace :: (a -> a) -> s Source #
Calculates the Trace of an object in the Dual Vectorspace of the Lie Algebra
(<|>) :: (a -> a) -> (a -> a) -> s Source #
Killing Form, which is a scalar product on the Dual Vectorspace of the Lie Algebra
Instances
LieAlgebra Vector Double Source # | |
Defined in LieExample.SO3 (|+|) :: Vector -> Vector -> Vector Source # (|*|) :: Double -> Vector -> Vector Source # (|.|) :: Vector -> Vector -> Vector Source # linearCombination :: [Double] -> Vector Source # adjunction :: Vector -> Vector -> Vector Source # trace :: (Vector -> Vector) -> Double Source # (<|>) :: (Vector -> Vector) -> (Vector -> Vector) -> Double Source # | |
LieAlgebra Matrix CD Source # | |
Defined in LieExample.SU3 (|+|) :: Matrix -> Matrix -> Matrix Source # (|*|) :: CD -> Matrix -> Matrix Source # (|.|) :: Matrix -> Matrix -> Matrix Source # linearCombination :: [CD] -> Matrix Source # adjunction :: Matrix -> Matrix -> Matrix Source # trace :: (Matrix -> Matrix) -> CD Source # (<|>) :: (Matrix -> Matrix) -> (Matrix -> Matrix) -> CD Source # |