Safe Haskell | None |
---|
- data Multivector p q f where
- type STVector = Multivector 3 1 Double
- type E3Vector = Multivector 3 0 Double
- signature :: forall p q f. (SingI p, SingI q) => Multivector p q f -> (Natural, Natural)
- terms :: Lens' (Multivector p q f) [Blade p q f]
- mvNormalForm :: Multivector t t1 t2 -> Multivector t t1 t2
- mvTerms :: Multivector p q f -> [Blade p q f]
- addLikeTerms' :: (Eq f, SingI Nat p, SingI Nat q, C f) => [Blade p q f] -> [Blade p q f]
- groupLikeTerms :: Eq f => [Blade p q f] -> [[Blade p q f]]
- compareTol :: (C f, C f, Ord f, SingI p, SingI q) => Multivector p q f -> Multivector p q f -> f -> Bool
- compensatedSum' :: C f => [f] -> f
- compensatedRunningSum :: (C f, Ord f, SingI p, SingI q, Show f) => [Multivector p q f] -> [Multivector p q f]
- multiplyOutBlades :: (SingI p, SingI q, C a) => [Blade p q a] -> [Blade p q a] -> [Blade p q a]
- multiplyList :: (Ord t2, SingI Nat t, SingI Nat t1, C t2) => [Multivector t t1 t2] -> Multivector t t1 t2
- multiplyList1 :: (Ord t2, SingI Nat t, SingI Nat t1, C t2) => [Multivector t t1 t2] -> Multivector t t1 t2
- sumList :: (Ord t2, SingI Nat t, SingI Nat t1, C t2) => [Multivector t t1 t2] -> Multivector t t1 t2
- sumLikeTerms :: (C f, SingI p, SingI q) => [[Blade p q f]] -> [Blade p q f]
- e :: (C f, Ord f, SingI p, SingI q) => f -> [Natural] -> Multivector p q f
- scalar :: (Ord f, SingI Nat p, SingI Nat q, C f) => f -> Multivector p q f
- two :: C a => a
- mul :: C a => a -> a -> a
- psuedoScalar :: forall p q f. (Ord f, C f, SingI p, SingI q) => Multivector p q f
- magnitude :: C f => Multivector p q f -> f
- (</) :: (Ord t2, SingI Nat t, SingI Nat t1, C t2) => Multivector t t1 t2 -> Multivector t t1 t2 -> Multivector t t1 t2
- (/>) :: (Ord t2, SingI Nat t, SingI Nat t1, C t2) => Multivector t t1 t2 -> Multivector t t1 t2 -> Multivector t t1 t2
- (</>) :: (Ord t2, SingI Nat t, SingI Nat t1, C t2) => Multivector t t1 t2 -> Multivector t t1 t2 -> Multivector t t1 t2
- scaleLeft :: (Ord f, SingI Nat p, SingI Nat q, C f) => f -> Multivector p q f -> Multivector p q f
- scaleRight :: (Ord f, SingI Nat p, SingI Nat q, C f) => Multivector p q f -> f -> Multivector p q f
- divideRight :: (Ord f, SingI Nat p, SingI Nat q, C f) => Multivector p q f -> f -> Multivector p q f
- converge :: (Eq a, Show a) => [a] -> a
- aitkensAcceleration :: (Ord t2, SingI Nat t, SingI Nat t1, C t2) => [Multivector t t1 t2] -> [Multivector t t1 t2]
- shanksTransformation :: (C f, Ord f, Show f, SingI p, SingI q) => [Multivector p q f] -> [Multivector p q f]
- takeEvery :: Int -> [a] -> [a]
- seriesPlusMinus :: C a => [a] -> [a]
- seriesMinusPlus :: C a => [a] -> [a]
- expTerms :: (C f, SingI p, SingI q, Ord f) => Multivector p q f -> [Multivector p q f]
- dot :: Multivector p q f -> Multivector p q f -> Multivector p q f
- wedge :: Multivector p q f -> Multivector p q f -> Multivector p q f
- (∧) :: Multivector p q f -> Multivector p q f -> Multivector p q f
- (⋅) :: Multivector p q f -> Multivector p q f -> Multivector p q f
- reverseBlade :: Blade p q f -> Blade p q f
- reverseMultivector :: Multivector t t1 t2 -> Multivector t t1 t2
- inverse :: Multivector t t1 t2 -> Multivector t t1 t2
- rootIterationsStart :: (Ord f, Show f, C f) => Integer -> Multivector p q f -> Multivector p q f -> [Multivector p q f]
- rootNewtonIterations :: (C f, Ord f, SingI p, SingI q) => Integer -> Multivector p q f -> Multivector p q f -> [Multivector p q f]
- rootHalleysIterations :: (Show a, Ord a, C a, SingI p, SingI q) => Integer -> Multivector p q a -> Multivector p q a -> [Multivector p q a]
- 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]
- 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]
- normalised :: (Ord f, C f, SingI p, SingI q) => Multivector p q f -> (Multivector p q f, f)
Documentation
data Multivector p q f whereSource
(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) |
type STVector = Multivector 3 1 DoubleSource
type E3Vector = Multivector 3 0 DoubleSource
terms :: Lens' (Multivector p q f) [Blade p q f]Source
mvNormalForm :: Multivector t t1 t2 -> Multivector t t1 t2Source
mvTerms :: Multivector 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
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
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
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
reverseMultivector :: Multivector t t1 t2 -> Multivector t t1 t2Source
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)