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 +3/−3
- tensors.cabal +63/−54
- test/Spec.hs +8/−1
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