clifford 0.1.0.9 → 0.1.0.10
raw patch · 3 files changed
+5/−2 lines, 3 files
Files
- changelog.md +1/−0
- clifford.cabal +1/−1
- src/Numeric/Clifford/Multivector.lhs +3/−1
changelog.md view
@@ -1,4 +1,5 @@ -*-change-log-*-+ 0.1.0.10 Fixed compile error whoops 0.1.0.9 Inlined/specialised a bunch of function, hueg speed increase 0.1.0.8 Implemented algebraic/transcendental typeclasses 0.1.0.7 Adding basic linear operators; made multivector a field
clifford.cabal view
@@ -10,7 +10,7 @@ -- PVP summary: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change-version: 0.1.0.9+version: 0.1.0.10 -- A short (one-line) description of the package. synopsis: A Clifford algebra library
src/Numeric/Clifford/Multivector.lhs view
@@ -454,7 +454,7 @@ rootIterationsStart ::(Ord f, Show f, Algebra.Algebraic.C f)=> NPN.Integer -> Multivector p q f -> Multivector p q f -> [Multivector p q f] rootIterationsStart n a@(BladeSum (Blade s [] :_)) one = rootHalleysIterations n a g where- g = if s >= NPN.zero || q' == 1 then one else one `e` [0,1] + g = if s >= NPN.zero || q' == 1 then one else (Algebra.Ring.one `e` [0,1]) (p',q') = signature a rootIterationsStart n a@(BladeSum _) g = rootHalleysIterations n a g@@ -479,6 +479,8 @@ down = denominator ratio-} {-#INLINE halleysMethod #-}+{-#SPECIALISE halleysMethod :: (STVector->STVector)->(STVector->STVector)->(STVector->STVector)->STVector->[STVector]#-}+{-#SPECIALISE halleysMethod :: (E3Vector->E3Vector)->(E3Vector->E3Vector)->(E3Vector->E3Vector)->E3Vector->[E3Vector]#-} halleysMethod :: (Show a, Ord a, Algebra.Algebraic.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] halleysMethod f f' f'' = iterate update where update x = x - (numerator x * inverse (denominator x) ) where