packages feed

numhask 0.0.3 → 0.0.4

raw patch · 10 files changed

+19/−116 lines, 10 files

Files

numhask.cabal view
@@ -1,7 +1,7 @@ name:   numhask version:-  0.0.3+  0.0.4 synopsis:   A numeric prelude description:@@ -38,7 +38,6 @@   exposed-modules:     NumHask.Prelude,     NumHask.Examples,-    NumHask.Algebra,     NumHask.Algebra.Additive,     NumHask.Algebra.Basis,     NumHask.Algebra.Distribution,
− src/NumHask/Algebra.hs
@@ -1,28 +0,0 @@--- | Just the numeric tower bits of NumHask--module NumHask.Algebra-  ( -- * Algebraic Heirarchy-    module NumHask.Algebra.Additive-  , module NumHask.Algebra.Basis-  , module NumHask.Algebra.Distribution-  , module NumHask.Algebra.Field-  , module NumHask.Algebra.Integral-  , module NumHask.Algebra.Magma-  , module NumHask.Algebra.Metric-  , module NumHask.Algebra.Module-  , module NumHask.Algebra.Multiplicative-  , module NumHask.Algebra.Ordering-  , module NumHask.Algebra.Ring-  ) where--import NumHask.Algebra.Additive-import NumHask.Algebra.Basis-import NumHask.Algebra.Distribution-import NumHask.Algebra.Field-import NumHask.Algebra.Integral-import NumHask.Algebra.Magma-import NumHask.Algebra.Metric-import NumHask.Algebra.Module-import NumHask.Algebra.Multiplicative-import NumHask.Algebra.Ordering-import NumHask.Algebra.Ring
src/NumHask/Algebra/Metric.hs view
@@ -20,7 +20,7 @@ -- | abs and signnum are warts on the standard 'Num' class, and are separated here to provide a cleaner structure. class ( AdditiveUnital a       , AdditiveGroup a-      , Multiplicative a+      , MultiplicativeUnital a       ) => Signed a where     sign :: a -> a     abs :: a -> a
src/NumHask/Examples.hs view
@@ -112,6 +112,7 @@ -- $vector -- A 'Vector' is a number by virtue of it being a 'Representable' 'Functor' where the representation is an 'Int'. --+-- >>> import NumHask.Vector -- >>> :set -XDataKinds -- >>> :set -XOverloadedLists -- >>> [] :: Vector 3 Int
src/NumHask/Matrix.hs view
@@ -29,13 +29,11 @@   ) where  import qualified Protolude as P-import Protolude-    (($), Functor(..), Show, Eq(..), (.), (<$>), Foldable(..), Int, Maybe(..)) import Data.Distributive as D import Data.Functor.Rep import Data.Proxy (Proxy(..)) import GHC.TypeLits-import NumHask.Algebra+import NumHask.Prelude hiding (show) import NumHask.Naperian import NumHask.Vector import Test.QuickCheck
src/NumHask/Naperian.hs view
@@ -5,13 +5,14 @@ module NumHask.Naperian     ( Naperian     , HasShape(..)+    , module Data.Functor.Rep     ) where  import Protolude (Int, foldr, Foldable(..), ($), (<$>), fmap, fst, snd, or, and) import Data.Functor.Rep-import NumHask.Algebra+import NumHask.Prelude --- | ToDo: integrate ni Naperian instance+-- | ToDo: integrate with Naperian instance class HasShape f where     type Shape f     shape :: f a -> Shape f
src/NumHask/Prelude.hs view
@@ -7,8 +7,6 @@     -- * Backend     -- $backend     module Protolude-  , module Data.Distributive-  , module Data.Functor.Rep     -- * Algebraic Heirarchy     -- $instances   , module NumHask.Algebra.Additive@@ -22,12 +20,6 @@   , module NumHask.Algebra.Multiplicative   , module NumHask.Algebra.Ordering   , module NumHask.Algebra.Ring-    -- * Representations-    -- $representables-  , module NumHask.Matrix-  , module NumHask.Tensor-  , module NumHask.Vector-  , module NumHask.Naperian   ) where  import Protolude hiding@@ -72,14 +64,6 @@ import NumHask.Algebra.Ordering import NumHask.Algebra.Ring -import NumHask.Matrix-import NumHask.Tensor-import NumHask.Vector-import NumHask.Naperian--import Data.Distributive-import Data.Functor.Rep- -- $backend -- NumHask imports Protolude as the prelude and replaces much of the 'Num' heirarchy in base. -- Usage of 'Semigroup' and 'Monoid' has been avoided to retain basic compatability.@@ -87,13 +71,5 @@ -- $instances -- Re-defines the numeric tower. ----- Instances for 'Int', 'Integer', 'Float', 'Double', 'Bool' and 'Representable' Functors are supplied------- $representables--- Different classes are supplied for holding shape information at the type level and value level.------ Value-level classes are not (yet) wired in to the Algebra------ Type-level shaped numbers are wired in via the 'Representable' 'Functor' instances.+-- Instances for 'Int', 'Integer', 'Float', 'Double', 'Bool' and 'Complex' are supplied --
src/NumHask/Tensor.hs view
@@ -19,23 +19,18 @@   , flatten1   ) where -import qualified Protolude as P-import Protolude-    (($), (<$>), Functor(..), Show, Eq(..), (.), Maybe(..), Int, reverse, foldr, fst, zipWith, scanr, drop, sum, product, Foldable(..))- import Data.Distributive as D-import Data.Functor.Rep import Data.Singletons import Data.Singletons.Prelude import GHC.Exts import GHC.Show import GHC.TypeLits-import NumHask.Algebra.Additive-import NumHask.Algebra.Integral-import NumHask.Algebra.Multiplicative+import NumHask.Naperian+import NumHask.Prelude hiding (show) import Test.QuickCheck+ import qualified Data.Vector as V-import NumHask.Naperian+import qualified Protolude as P  -- | an n-dimensional array where shape is specified at the type level -- The main purpose of this, beyond safe typing, is to supply the Representable instance with an initial object.
src/NumHask/Vector.hs view
@@ -17,16 +17,13 @@   ) where  import qualified Protolude as P-import Protolude-    (($), (<$>), Functor(..), Show, Eq(..), take, Foldable(..), Ord(..), Int, Maybe(..), (.))- import Data.Distributive as D import Data.Functor.Rep import Data.Proxy (Proxy(..)) import GHC.Exts import GHC.Show (show) import GHC.TypeLits-import NumHask.Algebra+import NumHask.Prelude hiding (show) import NumHask.Naperian import Test.QuickCheck import qualified Data.Vector as V
test/test.hs view
@@ -5,6 +5,10 @@ module Main where  import NumHask.Prelude+import NumHask.Vector+import NumHask.Matrix+import NumHask.Tensor+import NumHask.Naperian  import Test.Tasty (TestName, TestTree, testGroup, defaultMain, localOption) import Test.Tasty.QuickCheck@@ -510,9 +514,7 @@ kindaPositive a = nearZero a || a > zero  metricNaperianFloatLaws ::-    ( Naperian r-    , Metric (r Float) Float-    , Foldable r+    ( Metric (r Float) Float     ) => [Law (r Float)] metricNaperianFloatLaws =     [ ( "positive"@@ -617,9 +619,7 @@     ]  expFieldNaperianLaws ::-    ( Naperian r-    , Additive (r a)-    , ExpField (r a)+    ( ExpField (r a)     , Foldable r     , ExpField a     , Epsilon a@@ -647,11 +647,8 @@  additiveModuleLaws ::     ( Eq (r a)-    , Naperian r-    , Additive (r a)     , Epsilon a     , Epsilon (r a)-    , Foldable r     , AdditiveModule r a     ) => [Law2 (r a) a] additiveModuleLaws =@@ -670,7 +667,6 @@     ( Eq (r a)     , Show a     , Arbitrary a-    , Naperian r     , Show (r a)     , Arbitrary (r a)     , Epsilon a@@ -693,10 +689,7 @@     ( Eq (r a)     , Epsilon a     , Epsilon (r a)-    , Foldable r     , Naperian r-    , Additive (r a)-    , AdditiveGroup (r a)     , AdditiveGroupModule r a     ) => [Law2 (r a) a] additiveGroupModuleLaws =@@ -721,10 +714,7 @@     , Arbitrary (r a)     , Epsilon a     , Epsilon (r a)-    , Foldable r     , Naperian r-    , Additive (r a)-    , AdditiveGroup (r a)     , AdditiveGroupModule r a     ) => [Law2 (r a) a] additiveGroupModuleLawsFail =@@ -745,11 +735,7 @@     ( Eq (r a)     , Epsilon a     , Epsilon (r a)-    , Foldable r-    , Naperian r-    , Additive (r a)     , Multiplicative (r a)-    , AdditiveModule r a     , MultiplicativeModule r a     ) => [Law2 (r a) a] multiplicativeModuleLaws =@@ -776,11 +762,7 @@     , Arbitrary a     , Show (r a)     , Arbitrary (r a)-    , Foldable r-    , Naperian r-    , Additive (r a)     , Multiplicative (r a)-    , AdditiveModule r a     , MultiplicativeModule r a     ) => [Law2 (r a) a] multiplicativeModuleLawsFail =@@ -804,10 +786,7 @@     , Eq a     , Epsilon a     , Epsilon (r a)-    , Foldable r     , Naperian r-    , AdditiveUnital (r a)-    , Multiplicative (r a)     , MultiplicativeGroup (r a)     , MultiplicativeGroupModule r a     ) => [Law2 (r a) a]@@ -834,10 +813,6 @@     , Arbitrary (r a)     , Epsilon a     , Epsilon (r a)-    , Foldable r-    , Naperian r-    , AdditiveUnital (r a)-    , Multiplicative (r a)     , MultiplicativeGroup (r a)     , MultiplicativeGroupModule r a     ) => [Law2 (r a) a]@@ -860,11 +835,7 @@  additiveBasisLaws ::     ( Eq (r a)-    , Foldable r-    , Epsilon a     , Epsilon (r a)-    , Naperian r-    , AdditiveUnital (r a)     , AdditiveBasis r a     ) => [Law (r a)] additiveBasisLaws =@@ -879,11 +850,7 @@     ( Eq (r a)     , Arbitrary (r a)     , Show (r a)-    , Foldable r-    , Epsilon a-    , Naperian r     , Epsilon (r a)-    , AdditiveUnital (r a)     , AdditiveBasis r a     ) => [Law (r a)] additiveBasisLawsFail =@@ -905,7 +872,6 @@  multiplicativeBasisLaws ::     ( Eq (r a)-    , Naperian r     , Multiplicative (r a)     , MultiplicativeBasis r a     ) => [Law (r a)]@@ -921,7 +887,6 @@     ( Eq (r a)     , Show (r a)     , Arbitrary (r a)-    , Naperian r     , Multiplicative (r a)     , MultiplicativeBasis r a     ) => [Law (r a)]@@ -937,7 +902,6 @@     ( Eq (r a)     , Epsilon a     , Epsilon (r a)-    , Foldable r     , Naperian r     , MultiplicativeGroupBasis r a     ) => [Law (r a)]