np-extras 0.3.0.1 → 0.3.1
raw patch · 3 files changed
+18/−11 lines, 3 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- MathObj.FactoredRational: instance C T
- MathObj.FactoredRational: instance Eq T
- MathObj.FactoredRational: instance Ord T
- MathObj.FactoredRational: instance Show T
- MathObj.Monomial: coeff :: T a -> a
- MathObj.Monomial: instance (C a, C a) => C (T a)
- MathObj.Monomial: instance (C a, C a, Eq a) => C (T a)
- MathObj.Monomial: instance (C a, C a, Eq a, Show a) => Show (T a)
- MathObj.Monomial: instance C a => C (T a)
- MathObj.Monomial: instance Eq (T a)
- MathObj.Monomial: instance Eq a => Eq (Rev a)
- MathObj.Monomial: instance Ord (T a)
- MathObj.Monomial: instance Ord a => Ord (Rev a)
- MathObj.Monomial: powers :: T a -> Map Integer Integer
- MathObj.MultiVarPolynomial: instance (C a, C a) => C (T a)
- MathObj.MultiVarPolynomial: instance (C a, C a, Ord a, Show a) => Show (T a)
+ MathObj.FactoredRational: instance Algebra.Absolute.C MathObj.FactoredRational.T
+ MathObj.FactoredRational: instance Algebra.Additive.C MathObj.FactoredRational.T
+ MathObj.FactoredRational: instance Algebra.Field.C MathObj.FactoredRational.T
+ MathObj.FactoredRational: instance Algebra.IntegralDomain.C MathObj.FactoredRational.T
+ MathObj.FactoredRational: instance Algebra.RealIntegral.C MathObj.FactoredRational.T
+ MathObj.FactoredRational: instance Algebra.Ring.C MathObj.FactoredRational.T
+ MathObj.FactoredRational: instance Algebra.ToInteger.C MathObj.FactoredRational.T
+ MathObj.FactoredRational: instance Algebra.ToRational.C MathObj.FactoredRational.T
+ MathObj.FactoredRational: instance Algebra.ZeroTestable.C MathObj.FactoredRational.T
+ MathObj.FactoredRational: instance GHC.Classes.Eq MathObj.FactoredRational.T
+ MathObj.FactoredRational: instance GHC.Classes.Ord MathObj.FactoredRational.T
+ MathObj.FactoredRational: instance GHC.Show.Show MathObj.FactoredRational.T
+ MathObj.Monomial: [coeff] :: T a -> a
+ MathObj.Monomial: [powers] :: T a -> Map Integer Integer
+ MathObj.Monomial: instance (Algebra.Additive.C a, Algebra.ZeroTestable.C a) => Algebra.Additive.C (MathObj.Monomial.T a)
+ MathObj.Monomial: instance (Algebra.Ring.C a, Algebra.ZeroTestable.C a) => Algebra.Ring.C (MathObj.Monomial.T a)
+ MathObj.Monomial: instance (Algebra.ZeroTestable.C a, Algebra.Field.C a, GHC.Classes.Eq a) => Algebra.Field.C (MathObj.Monomial.T a)
+ MathObj.Monomial: instance (Algebra.ZeroTestable.C a, Algebra.Ring.C a) => Algebra.Differential.C (MathObj.Monomial.T a)
+ MathObj.Monomial: instance (Algebra.ZeroTestable.C a, Algebra.Ring.C a, GHC.Classes.Eq a, GHC.Show.Show a) => GHC.Show.Show (MathObj.Monomial.T a)
+ MathObj.Monomial: instance Algebra.ZeroTestable.C a => Algebra.ZeroTestable.C (MathObj.Monomial.T a)
+ MathObj.Monomial: instance GHC.Classes.Eq (MathObj.Monomial.T a)
+ MathObj.Monomial: instance GHC.Classes.Eq a => GHC.Classes.Eq (MathObj.Monomial.Rev a)
+ MathObj.Monomial: instance GHC.Classes.Ord (MathObj.Monomial.T a)
+ MathObj.Monomial: instance GHC.Classes.Ord a => GHC.Classes.Ord (MathObj.Monomial.Rev a)
+ MathObj.MultiVarPolynomial: instance (Algebra.Additive.C a, Algebra.ZeroTestable.C a) => Algebra.Additive.C (MathObj.MultiVarPolynomial.T a)
+ MathObj.MultiVarPolynomial: instance (Algebra.Ring.C a, Algebra.ZeroTestable.C a) => Algebra.Ring.C (MathObj.MultiVarPolynomial.T a)
+ MathObj.MultiVarPolynomial: instance (Algebra.ZeroTestable.C a, Algebra.Ring.C a) => Algebra.Differential.C (MathObj.MultiVarPolynomial.T a)
+ MathObj.MultiVarPolynomial: instance (Algebra.ZeroTestable.C a, Algebra.Ring.C a, GHC.Classes.Ord a, GHC.Show.Show a) => GHC.Show.Show (MathObj.MultiVarPolynomial.T a)
- MathObj.Monomial: x :: C a => Integer -> T a
+ MathObj.Monomial: x :: (C a) => Integer -> T a
- MathObj.MultiVarPolynomial: x :: C a => Integer -> T a
+ MathObj.MultiVarPolynomial: x :: (C a) => Integer -> T a
Files
- CHANGES.md +4/−0
- MathObj/Monomial.hs +12/−10
- np-extras.cabal +2/−1
+ CHANGES.md view
@@ -0,0 +1,4 @@+0.3.1 (4 March, 2016)+=====================++- bug fix: differentiation of monomials
MathObj/Monomial.hs view
@@ -17,17 +17,17 @@ ) where -import qualified Algebra.Additive as Additive-import qualified Algebra.Ring as Ring-import qualified Algebra.ZeroTestable as ZeroTestable+import qualified Algebra.Additive as Additive import qualified Algebra.Differential as Differential-import qualified Algebra.Field as Field+import qualified Algebra.Field as Field+import qualified Algebra.Ring as Ring+import qualified Algebra.ZeroTestable as ZeroTestable -import qualified Data.Map as M-import Data.Ord (comparing)-import Data.List (sort, intercalate)+import Data.List (intercalate, sort)+import qualified Data.Map as M+import Data.Ord (comparing) -import NumericPrelude+import NumericPrelude -- | A monomial is a map from variable indices to integer powers, -- paired with a (polymorphic) coefficient. Note that negative@@ -134,9 +134,11 @@ -- Partial differentiation with respect to x1. instance (ZeroTestable.C a, Ring.C a) => Differential.C (T a) where differentiate (Cons a m)- | Just 1 <- M.lookup 1 m = Cons a M.empty- | Just p <- M.lookup 1 m = Cons (a*fromInteger p) (M.adjust (subtract 1) 1 m)+ | Just p <- M.lookup 1 m = Cons (a*fromInteger p) (M.update powerPred 1 m) | otherwise = Cons zero M.empty+ where+ powerPred 1 = Nothing+ powerPred p = Just (p-1) instance (ZeroTestable.C a, Field.C a, Eq a) => Field.C (T a) where recip (Cons a pows) = if isZero a
np-extras.cabal view
@@ -1,5 +1,5 @@ name: np-extras-version: 0.3.0.1+version: 0.3.1 license: BSD3 license-file: LICENSE build-type: Simple@@ -12,6 +12,7 @@ synopsis: NumericPrelude extras description: Various extras to extend the NumericPrelude, including multivariate polynomials and factored rationals.+extra-source-files: CHANGES.md source-repository head type: darcs location: http://hub.darcs.net/byorgey/np-extras