packages feed

tensors 0.1.4 → 0.1.5

raw patch · 3 files changed

+74/−58 lines, 3 filesdep ~QuickCheckdep ~criteriondep ~vectorPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: QuickCheck, criterion, vector

API changes (from Hackage documentation)

- Data.Tensor: grid :: (CheckDimension i s ~ 'True, KnownNat i, KnownNat (Dimension s i)) => Proxy i -> Vector (Dimension s i) n -> Tensor s n
+ Data.Tensor: grid :: (CheckDimension i s ~ 'True, KnownNat i, KnownNat (Dimension s i)) => Proxy i -> Vector (Dimension s i) n -> Tensor s n
- Data.Tensor: type CheckConcatenate i a b = (IsIndex i (TensorRank a)) ~ 'True
+ Data.Tensor: type CheckConcatenate i a b = (IsIndex i (TensorRank a)) ~ 'True
- Data.Tensor: type CheckInsert dim i b = (CheckDimension dim b && IsIndex i (Dimension b dim)) ~ 'True
+ Data.Tensor: type CheckInsert dim i b = (CheckDimension dim b && IsIndex i (Dimension b dim)) ~ 'True
- Data.Tensor: type CheckSelect dim i s = (CheckDimension dim s && IsIndex i (Dimension s dim)) ~ 'True
+ Data.Tensor: type CheckSelect dim i s = (CheckDimension dim s && IsIndex i (Dimension s dim)) ~ 'True
- Data.Tensor: type CheckSlice dim from to s = (CheckDimension dim s && IsIndices from to (Dimension s dim)) ~ 'True
+ Data.Tensor: type CheckSlice dim from to s = (CheckDimension dim s && IsIndices from to (Dimension s dim)) ~ 'True

Files

src/Data/Tensor/Tensor.hs view
@@ -149,9 +149,9 @@       then error "length not match"       else let vv = V.fromList v in Tensor $ \s' i -> vv V.! tiTovi s' i   toList  t =-    let n = rank t - 1-        s = unShape (toShape :: SShape s)-    in fmap (gx t s) [0..n]+    let s = unShape (toShape :: SShape s)+        l = product s+    in fmap (gx t s) [0..pred l]  ----------------------- -- Tensor Shape
tensors.cabal view
@@ -1,48 +1,49 @@-cabal-version: 1.12-name: tensors-version: 0.1.4-license: BSD3-license-file: LICENSE-copyright: (c) 2018 Daniel YU-maintainer: Daniel YU <leptonyu@gmail.com>-author: Daniel YU-homepage: https://github.com/leptonyu/tensors#readme-synopsis: Tensor in Haskell-description:-    Tensor use type level programming in haskell.-category: Library-build-type: Simple-extra-source-files:-    README.md+cabal-version:      1.12+name:               tensors+version:            0.1.5+license:            BSD3+license-file:       LICENSE+copyright:          (c) 2018 Daniel YU+maintainer:         Daniel YU <leptonyu@gmail.com>+author:             Daniel YU+homepage:           https://github.com/leptonyu/tensors#readme+synopsis:           Tensor in Haskell+description:        Tensor use type level programming in haskell.+category:           Library+build-type:         Simple+extra-source-files: README.md  library-    exposed-modules:-        Data.Tensor-    hs-source-dirs: src+    exposed-modules:    Data.Tensor+    hs-source-dirs:     src     other-modules:         Data.Tensor.Type         Data.Tensor.Tensor         Data.Tensor.Matrix         Data.Tensor.Space         Data.Tensor.Statistics-    default-language: Haskell2010-    default-extensions: AllowAmbiguousTypes DataKinds-                        ExistentialQuantification FlexibleContexts FlexibleInstances-                        FunctionalDependencies KindSignatures MultiParamTypeClasses-                        PolyKinds RankNTypes ScopedTypeVariables TypeFamilies TypeOperators-                        TypeSynonymInstances-    ghc-options: -Wall -Wcompat -Wincomplete-record-updates-                 -Wincomplete-uni-patterns -fno-warn-orphans-                 -fno-warn-missing-signatures++    default-language:   Haskell2010+    default-extensions:+        AllowAmbiguousTypes DataKinds ExistentialQuantification+        FlexibleContexts FlexibleInstances FunctionalDependencies+        KindSignatures MultiParamTypeClasses PolyKinds RankNTypes+        ScopedTypeVariables TypeFamilies TypeOperators TypeSynonymInstances++    ghc-options:+        -Wall -Wcompat -Wincomplete-record-updates+        -Wincomplete-uni-patterns -fno-warn-orphans+        -fno-warn-missing-signatures+     build-depends:         base >=4.9 && <5,         deepseq >=1.4.4.0 && <1.5,         vector >=0.12.0.2 && <0.13  test-suite spec-    type: exitcode-stdio-1.0-    main-is: Spec.hs-    hs-source-dirs: test src+    type:               exitcode-stdio-1.0+    main-is:            Spec.hs+    hs-source-dirs:     test src     other-modules:         Data.Tensor         Data.Tensor.Matrix@@ -51,17 +52,21 @@         Data.Tensor.Tensor         Data.Tensor.Type         Paths_tensors-    default-language: Haskell2010-    default-extensions: AllowAmbiguousTypes DataKinds-                        ExistentialQuantification FlexibleContexts FlexibleInstances-                        FunctionalDependencies KindSignatures MultiParamTypeClasses-                        PolyKinds RankNTypes ScopedTypeVariables TypeFamilies TypeOperators-                        TypeSynonymInstances-    ghc-options: -Wall -Wcompat -Wincomplete-record-updates-                 -Wincomplete-uni-patterns -fno-warn-orphans-                 -fno-warn-missing-signatures++    default-language:   Haskell2010+    default-extensions:+        AllowAmbiguousTypes DataKinds ExistentialQuantification+        FlexibleContexts FlexibleInstances FunctionalDependencies+        KindSignatures MultiParamTypeClasses PolyKinds RankNTypes+        ScopedTypeVariables TypeFamilies TypeOperators TypeSynonymInstances++    ghc-options:+        -Wall -Wcompat -Wincomplete-record-updates+        -Wincomplete-uni-patterns -fno-warn-orphans+        -fno-warn-missing-signatures+     build-depends:-        QuickCheck >=2.11.1 && <2.14,+        QuickCheck >=2.11.1 && <2.15,         base >=4.9 && <5,         deepseq >=1.4.4.0 && <1.5,         hspec ==2.*,@@ -69,9 +74,9 @@         vector >=0.12.0.2 && <0.13  benchmark bm-    type: exitcode-stdio-1.0-    main-is: Bench.hs-    hs-source-dirs: bench src+    type:               exitcode-stdio-1.0+    main-is:            Bench.hs+    hs-source-dirs:     bench src     other-modules:         Data.Tensor         Data.Tensor.Matrix@@ -80,17 +85,21 @@         Data.Tensor.Tensor         Data.Tensor.Type         Paths_tensors-    default-language: Haskell2010-    default-extensions: AllowAmbiguousTypes DataKinds-                        ExistentialQuantification FlexibleContexts FlexibleInstances-                        FunctionalDependencies KindSignatures MultiParamTypeClasses-                        PolyKinds RankNTypes ScopedTypeVariables TypeFamilies TypeOperators-                        TypeSynonymInstances-    ghc-options: -Wall -Wcompat -Wincomplete-record-updates-                 -Wincomplete-uni-patterns -fno-warn-orphans-                 -fno-warn-missing-signatures++    default-language:   Haskell2010+    default-extensions:+        AllowAmbiguousTypes DataKinds ExistentialQuantification+        FlexibleContexts FlexibleInstances FunctionalDependencies+        KindSignatures MultiParamTypeClasses PolyKinds RankNTypes+        ScopedTypeVariables TypeFamilies TypeOperators TypeSynonymInstances++    ghc-options:+        -Wall -Wcompat -Wincomplete-record-updates+        -Wincomplete-uni-patterns -fno-warn-orphans+        -fno-warn-missing-signatures+     build-depends:         base >=4.9 && <5,-        criterion >=1.5.4.0 && <1.6,+        criterion >=1.5.9.0 && <1.6,         deepseq >=1.4.4.0 && <1.5,         vector >=0.12.0.2 && <0.13
test/Spec.hs view
@@ -5,6 +5,7 @@ {-# LANGUAGE RankNTypes          #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies        #-}+{-# LANGUAGE OverloadedLists        #-}  module Main where @@ -17,6 +18,8 @@ import           Test.Hspec import           Test.QuickCheck import           Unsafe.Coerce+import qualified GHC.Exts+import qualified Data.Foldable  main = hspec spec @@ -38,7 +41,7 @@   context "viToti" $ do     it "quickCheck" $ property $       \s0 -> let s = normalize s0-                 n = [0..product s - 1]+                 n = [0..product s - 1] :: [Int]             in fmap (tiTovi s . viToti s) n == n     it "index" $ property $       \i -> let i' = mod i 1000 + 1 :: Int@@ -59,3 +62,7 @@                          idt = identity :: Tensor '[n,n] Int                      in a `dot` idt == idt `dot` a                in reifyNat (toInteger n) (go s)+  context "IsList" $ do+    it "toList Equal" $ do+      let t = [1..9] :: Tensor '[3,3] Int+      Data.Foldable.toList t `shouldBe` GHC.Exts.toList t