clifford-0.1.0.12: A Clifford algebra library

Safe HaskellNone

Numeric.Clifford.Multivector

Synopsis

Documentation

data Multivector p q f whereSource

Constructors

BladeSum :: forall p q f. (Ord f, C f, SingI p, SingI q) => [Blade p q f] -> Multivector p q f 

Fields

_terms :: [Blade p q f]
 

Instances

(C f, Ord f, SingI Nat p, SingI Nat q) => C f (Multivector p q f) 
(C f, Ord f, SingI Nat p, SingI Nat q) => C f (Multivector p q f) 
(C f, SingI Nat p, SingI Nat q, Ord f) => Monoid (Sum (Multivector p q f)) 
(C f, SingI Nat p, SingI Nat q, Ord f) => Monoid (Product (Multivector p q f)) 
Eq (Multivector p q f) 
(C f, SingI Nat p, SingI Nat q, Ord f) => Num (Multivector p q f) 
Ord (Multivector p q f) 
Show f => Show (Multivector p q f) 
(SingI Nat p, SingI Nat q, C f, Arbitrary f, Ord f) => Arbitrary (Multivector p q f) 
NFData f => NFData (Multivector p q f) 
(C f, Ord f, SingI Nat p, SingI Nat q, Show f) => C (Multivector p q f) 
(C f, Show f, Ord f, SingI Nat p, SingI Nat q) => C (Multivector p q f) 
(C f, Ord f, SingI Nat p, SingI Nat q) => C (Multivector p q f) 
(C f, C f, Ord f, SingI Nat p, SingI Nat q) => C (Multivector p q f) 
(C f, Ord f, SingI Nat p, SingI Nat q) => C (Multivector p q f) 
(C f, Ord f, SingI Nat p, SingI Nat q) => C (Multivector p q f) 

signature :: forall p q f. (SingI p, SingI q) => Multivector p q f -> (Natural, Natural)Source

terms :: Lens' (Multivector p q f) [Blade p q f]Source

mvTerms :: Multivector p q f -> [Blade p q f]Source

addLikeTerms' :: (Eq f, SingI Nat p, SingI Nat q, C f) => [Blade p q f] -> [Blade p q f]Source

groupLikeTerms :: Eq f => [Blade p q f] -> [[Blade p q f]]Source

compareTol :: (C f, C f, Ord f, SingI p, SingI q) => Multivector p q f -> Multivector p q f -> f -> BoolSource

compensatedSum' :: C f => [f] -> fSource

compensatedRunningSum :: (C f, Ord f, SingI p, SingI q, Show f) => [Multivector p q f] -> [Multivector p q f]Source

multiplyOutBlades :: (SingI p, SingI q, C a) => [Blade p q a] -> [Blade p q a] -> [Blade p q a]Source

multiplyList :: (Ord t2, SingI Nat t, SingI Nat t1, C t2) => [Multivector t t1 t2] -> Multivector t t1 t2Source

multiplyList1 :: (Ord t2, SingI Nat t, SingI Nat t1, C t2) => [Multivector t t1 t2] -> Multivector t t1 t2Source

sumList :: (Ord t2, SingI Nat t, SingI Nat t1, C t2) => [Multivector t t1 t2] -> Multivector t t1 t2Source

sumLikeTerms :: (C f, SingI p, SingI q) => [[Blade p q f]] -> [Blade p q f]Source

e :: (C f, Ord f, SingI p, SingI q) => f -> [Natural] -> Multivector p q fSource

scalar :: (Ord f, SingI Nat p, SingI Nat q, C f) => f -> Multivector p q fSource

two :: C a => aSource

mul :: C a => a -> a -> aSource

psuedoScalar :: forall p q f. (Ord f, C f, SingI p, SingI q) => Multivector p q fSource

magnitude :: C f => Multivector p q f -> fSource

(</) :: (Ord t2, SingI Nat t, SingI Nat t1, C t2) => Multivector t t1 t2 -> Multivector t t1 t2 -> Multivector t t1 t2Source

(/>) :: (Ord t2, SingI Nat t, SingI Nat t1, C t2) => Multivector t t1 t2 -> Multivector t t1 t2 -> Multivector t t1 t2Source

(</>) :: (Ord t2, SingI Nat t, SingI Nat t1, C t2) => Multivector t t1 t2 -> Multivector t t1 t2 -> Multivector t t1 t2Source

scaleLeft :: (Ord f, SingI Nat p, SingI Nat q, C f) => f -> Multivector p q f -> Multivector p q fSource

scaleRight :: (Ord f, SingI Nat p, SingI Nat q, C f) => Multivector p q f -> f -> Multivector p q fSource

divideRight :: (Ord f, SingI Nat p, SingI Nat q, C f) => Multivector p q f -> f -> Multivector p q fSource

converge :: (Eq a, Show a) => [a] -> aSource

aitkensAcceleration :: (Ord t2, SingI Nat t, SingI Nat t1, C t2) => [Multivector t t1 t2] -> [Multivector t t1 t2]Source

shanksTransformation :: (C f, Ord f, Show f, SingI p, SingI q) => [Multivector p q f] -> [Multivector p q f]Source

takeEvery :: Int -> [a] -> [a]Source

seriesPlusMinus :: C a => [a] -> [a]Source

seriesMinusPlus :: C a => [a] -> [a]Source

expTerms :: (C f, SingI p, SingI q, Ord f) => Multivector p q f -> [Multivector p q f]Source

dot :: Multivector p q f -> Multivector p q f -> Multivector p q fSource

wedge :: Multivector p q f -> Multivector p q f -> Multivector p q fSource

(∧) :: Multivector p q f -> Multivector p q f -> Multivector p q fSource

(⋅) :: Multivector p q f -> Multivector p q f -> Multivector p q fSource

reverseBlade :: Blade p q f -> Blade p q fSource

inverse :: Multivector t t1 t2 -> Multivector t t1 t2Source

rootIterationsStart :: (Ord f, Show f, C f) => Integer -> Multivector p q f -> Multivector p q f -> [Multivector p q f]Source

rootNewtonIterations :: (C f, Ord f, SingI p, SingI q) => Integer -> Multivector p q f -> Multivector p q f -> [Multivector p q f]Source

rootHalleysIterations :: (Show a, Ord a, C a, SingI p, SingI q) => Integer -> Multivector p q a -> Multivector p q a -> [Multivector p q a]Source

halleysMethod :: (Show a, Ord a, C a, SingI p, SingI q) => (Multivector p q a -> Multivector p q a) -> (Multivector p q a -> Multivector p q a) -> (Multivector p q a -> Multivector p q a) -> Multivector p q a -> [Multivector p q a]Source

secantMethod :: (Ord t2, SingI Nat t, SingI Nat t1, C t2) => (Multivector t t1 t2 -> Multivector t t1 t2) -> Multivector t t1 t2 -> Multivector t t1 t2 -> [Multivector t t1 t2]Source

normalised :: (Ord f, C f, SingI p, SingI q) => Multivector p q f -> (Multivector p q f, f)Source

makeSerialize ''Blade) $(derive makeSerialize ''Multivector) $(derive makeData ''Blade) $(derive makeTypeable ''Blade) $(derive makeData ''Multivector) $(derive makeTypeable ''Multivector)

makeArbitrary ''Multivector)