yarr 1.3.2 → 1.3.3
raw patch · 8 files changed
+45/−25 lines, 8 filesdep ~basedep ~template-haskellnew-uploader
Dependency ranges changed: base, template-haskell
Files
- Data/Yarr/Shape.hs +4/−4
- Data/Yarr/Utils/FixedVector.hs +13/−0
- Data/Yarr/Utils/FixedVector/InlinableArityInstances.hs +2/−0
- Data/Yarr/Utils/FixedVector/VecTuple.hs +2/−2
- Data/Yarr/Utils/FixedVector/VecTupleInstances.hs +5/−0
- Data/Yarr/Utils/LowLevelFlow.hs +8/−8
- Data/Yarr/Utils/Primitive.hs +8/−8
- yarr.cabal +3/−3
Data/Yarr/Shape.hs view
@@ -275,12 +275,12 @@ let limX# = ex# -# uf# {-# INLINE goY# #-} goY# y#- | y# >=# ey# = return ()+ | isTrue# (y# >=# ey#) = return () | otherwise = do let y = I# y# {-# INLINE goX# #-} goX# x#- | x# ># limX# =+ | isTrue# (x# ># limX#) = fill# (\x -> get (y, x)) (\x a -> write (y, x) a)@@ -420,7 +420,7 @@ limY# = ey# -# by# {-# INLINE goY# #-}- goY# y# | y# ># limY# = fill get write ((I# y#), sx) end+ goY# y# | isTrue# (y# ># limY#) = fill get write ((I# y#), sx) end | otherwise = do let y = I# y# ys :: VecList bsy Int@@ -428,7 +428,7 @@ {-# INLINE go# #-} go# x#- | x# ># limX# =+ | isTrue# (x# ># limX#) = fill get write (y, (I# x#)) (I# (y# +# by#), ex) | otherwise = do
Data/Yarr/Utils/FixedVector.hs view
@@ -1,3 +1,16 @@+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE ScopedTypeVariables #-}++ -- TypeFamilies, MultiParamTypeClasses, FunctionalDependencies,+ -- FlexibleContexts,+ -- EmptyDataDecls,+ -- FlexibleInstances, TypeSynonymInstances,+ -- UndecidableInstances, OverlappingInstances,+ -- GeneralizedNewtypeDeriving, StandaloneDeriving,+ -- RankNTypes, ScopedTypeVariables,+ -- MagicHash, BangPatterns, UnboxedTuples,+ -- TemplateHaskell, CPP module Data.Yarr.Utils.FixedVector ( -- * Fixed Vector
Data/Yarr/Utils/FixedVector/InlinableArityInstances.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE TypeSynonymInstances #-}+{-# LANGUAGE FlexibleInstances #-} module Data.Yarr.Utils.FixedVector.InlinableArityInstances where
Data/Yarr/Utils/FixedVector/VecTuple.hs view
@@ -42,8 +42,8 @@ let vn = (conT ''VecTuple) `appT` arityType vt = vn `appT` e - dimInst <- tySynInstD ''Dim [vn] arityType- + dimInst <- tySynInstD ''Dim (tySynEqn [vn] arityType)+ let as = [mkName $ "a" ++ (show i) | i <- [1..n]] pas = fmap varP as eas = fmap varE as
Data/Yarr/Utils/FixedVector/VecTupleInstances.hs view
@@ -1,4 +1,9 @@ +{-# LANGUAGE CPP #-}+{-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-}+ module Data.Yarr.Utils.FixedVector.VecTupleInstances where import Data.Vector.Fixed
Data/Yarr/Utils/LowLevelFlow.hs view
@@ -13,7 +13,7 @@ fill# get write start# end# = let {-# INLINE go# #-} go# i#- | i# >=# end# = return ()+ | isTrue# (i# >=# end#) = return () | otherwise = do let i = (I# i#) a <- get i@@ -35,7 +35,7 @@ lim# = end# -# uf# {-# INLINE go# #-} go# i#- | i# ># lim# = fill# get write i# end#+ | isTrue# (i# ># lim#) = fill# get write i# end# | otherwise = do let is :: VecList uf Int is = V.generate (+ (I# i#))@@ -57,7 +57,7 @@ foldl# reduce mz get start# end# = let {-# INLINE go# #-} go# !b i#- | i# >=# end# = return b+ | isTrue# (i# >=# end#) = return b | otherwise = do let i = (I# i#) a <- get i@@ -81,7 +81,7 @@ lim# = end# -# uf# {-# INLINE go# #-} go# !b i#- | i# ># lim# = rest# b i#+ | isTrue# (i# ># lim#) = rest# b i# | otherwise = do let is :: VecList uf Int is = V.generate (+ (I# i#))@@ -94,7 +94,7 @@ {-# INLINE rest# #-} rest# !b i#- | i# >=# end# = return b+ | isTrue# (i# >=# end#) = return b | otherwise = do let i = (I# i#) a <- get i@@ -116,7 +116,7 @@ foldr# reduce mz get start# end# = let {-# INLINE go# #-} go# !b i#- | i# <# start# = return b+ | isTrue# (i# <# start#) = return b | otherwise = do let i = (I# i#) a <- get i@@ -140,7 +140,7 @@ lim# = start# +# uf# -# 1# {-# INLINE go# #-} go# !b i#- | i# <# lim# = rest# b i#+ | isTrue# (i# <# lim#) = rest# b i# | otherwise = do let is :: VecList uf Int is = V.generate ((I# i#) -)@@ -153,7 +153,7 @@ {-# INLINE rest# #-} rest# !b i#- | i# <# start# = return b+ | isTrue# (i# <# start#) = return b | otherwise = do let i = (I# i#) a <- get i
Data/Yarr/Utils/Primitive.hs view
@@ -88,24 +88,24 @@ #define PRIM_COMP_INST(ty,con,le,ge) \ instance PrimitiveOrd ty where { \ minM (con a#) (con b#) = \- IO (\s -> seq# (con (if le a# b# then a# else b#)) s); \+ IO (\s -> seq# (con (if isTrue# (le a# b#) then a# else b#)) s); \ minM' (con a#) (con b#) = \ IO (\s -> \- let r# = if le a# b# then a# else b# \+ let r# = if isTrue# (le a# b#) then a# else b# \ in case touch# r# s of s' -> (# s', (con r#) #)); \ maxM (con a#) (con b#) = \- IO (\s -> seq# (con (if ge a# b# then a# else b#)) s); \+ IO (\s -> seq# (con (if isTrue# (ge a# b#) then a# else b#)) s); \ maxM' (con a#) (con b#) = \ IO (\s -> \- let r# = if ge a# b# then a# else b# \+ let r# = if isTrue# (ge a# b#) then a# else b# \ in case touch# r# s of s' -> (# s', (con r#) #)); \ clampM (con mn#) (con mx#) (con x#) = \- IO (\s -> seq# (con (if le x# mx# \- then (if ge x# mn# then x# else mn#) \+ IO (\s -> seq# (con (if isTrue# (le x# mx#) \+ then (if isTrue# (ge x# mn#) then x# else mn#) \ else mx#)) s); \ clampM' (con mn#) (con mx#) (con x#) = \- IO (\s -> let r# = if le x# mx# \- then (if ge x# mn# then x# else mn#) \+ IO (\s -> let r# = if isTrue# (le x# mx#) \+ then (if isTrue# (ge x# mn#) then x# else mn#) \ else mx# \ in case touch# r# s of s' -> (# s', (con r#) #)); \ {-# INLINE minM #-}; \
yarr.cabal view
@@ -1,5 +1,5 @@ Name: yarr-Version: 1.3.2+Version: 1.3.3 Synopsis: Yet another array library Description: Yarr is a new blazing fast dataflow framework (array library),@@ -52,12 +52,12 @@ Library build-depends:- base == 4.6.*,+ base >=4.6 && <4.8, ghc-prim == 0.3.*, deepseq == 1.3.*, fixed-vector == 0.1.2.1, primitive >= 0.2 && < 0.6,- template-haskell == 2.8.*,+ template-haskell >=2.8 && <2.10, missing-foreign == 0.1.1 extensions: