bed-and-breakfast 0.1.1 → 0.1.2
raw patch · 2 files changed
+28/−1 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Numeric.Matrix: instance (MatrixElement e, Fractional e) => Fractional (Matrix e)
+ Numeric.Matrix: instance MatrixElement e => Eq (Matrix e)
+ Numeric.Matrix: instance MatrixElement e => Num (Matrix e)
Files
- bed-and-breakfast.cabal +8/−1
- src/Numeric/Matrix.hs +20/−0
bed-and-breakfast.cabal view
@@ -1,10 +1,17 @@ Name: bed-and-breakfast-Version: 0.1.1+Version: 0.1.2 Synopsis: Efficient Matrix operations in 100% Haskell. Description: Efficient Matrix operations in 100% Haskell. .+ [@v0.1@] Initial version, features @det@,+ basic arithmetic operations, and instances for+ 'Float', 'Double', 'Complex', and 'Rational'.+ . [@v0.1.1@] Fixed wrong algorithm for computing the inverse of a Matrix.+ .+ [@v0.1.2@] Added instances for @Num Matrix@,+ @Fractional Matrix@, and @Eq Matrix@. License: MIT License-File: LICENSE
src/Numeric/Matrix.hs view
@@ -61,6 +61,8 @@ import Data.Function import Data.Ratio import Data.Complex+import Data.Maybe+ import qualified Data.List as L import Data.Array.IArray import Data.Array.MArray@@ -87,6 +89,24 @@ show = unlines . P.map showRow . toList where showRow = unwords . P.map ((' ':) . show)++instance (MatrixElement e) => Num (Matrix e) where+ (+) = plus+ (-) = minus+ (*) = times+ abs = matrix (1,1) . const . abs . det+ signum = matrix (1,1) . const . signum . det+ fromInteger = matrix (1,1) . const . fromInteger+ +instance (MatrixElement e, Fractional e) => Fractional (Matrix e) where+ recip = fromJust . inv+ fromRational = matrix (1,1) . const . fromRational++instance (MatrixElement e) => Eq (Matrix e) where+ m == n+ | dimensions m == dimensions n+ = allWithIndex (\ix e -> m `at` ix == e) n+ | otherwise = False class Division e where