packages feed

sample-frame-np 0.0.1 → 0.0.2

raw patch · 3 files changed

+70/−7 lines, 3 filesdep ~numeric-prelude

Dependency ranges changed: numeric-prelude

Files

sample-frame-np.cabal view
@@ -1,5 +1,5 @@ Name:             sample-frame-np-Version:          0.0.1+Version:          0.0.2 License:          BSD3 License-File:     LICENSE Author:           Henning Thielemann <haskell@henning-thielemann.de>@@ -9,10 +9,12 @@ Category:         Sound Synopsis:         Orphan instances for types from sample-frame and numericprelude Description:-   Orphan instances for types from sample-frame package-   and type classes from numeric-prelude.+   Orphan instances for types from @sample-frame@ package+   and type classes from @numeric-prelude@.+   Using this package instead defining custom orphan instances+   saves you from conflicting instances.    .-   This is used by packages synthesizer.+   This is used by packages @synthesizer@, @synthesizer-alsa@, @synthesizer-llvm@. Tested-With:       GHC==6.10.4 Cabal-Version:     >=1.2 Build-Type:        Simple@@ -23,7 +25,7 @@ Library   Build-Depends:     sample-frame >=0.0.1 && <0.1,-    numeric-prelude >= 0.1.2 && <0.2+    numeric-prelude >= 0.2 && <0.3   If flag(splitBase)     Build-Depends:       base >= 2 && <5@@ -38,3 +40,6 @@    Exposed-Modules:     Sound.Frame.NumericPrelude.Stereo++  Other-Modules:+    Sound.Frame.NumericPrelude.StereoApplicative
src/Sound/Frame/NumericPrelude/Stereo.hs view
@@ -20,8 +20,8 @@ import qualified NumericPrelude.Elementwise as Elem import Control.Applicative (Applicative(pure), ) -import NumericPrelude-import PreludeBase hiding (map)+import NumericPrelude.Numeric+import NumericPrelude.Base hiding (map) import Prelude ()  
+ src/Sound/Frame/NumericPrelude/StereoApplicative.hs view
@@ -0,0 +1,58 @@+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE FlexibleInstances #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}+{- |+Define some instance for NumericPrelude.Numeric type classes+in terms of Applicative and Foldable.+This is more elegant, but maybe not faster.+-}+module Sound.Frame.NumericPrelude.StereoApplicative (T, left, right, cons, map, ) where++import qualified Sound.Frame.Stereo as Stereo+import Sound.Frame.Stereo (T, left, right, cons, map, )++import qualified Algebra.NormedSpace.Maximum   as NormedMax+import qualified Algebra.NormedSpace.Euclidean as NormedEuc+import qualified Algebra.NormedSpace.Sum       as NormedSum++import qualified Algebra.Module    as Module+import qualified Algebra.Algebraic as Algebraic+import qualified Algebra.Additive  as Additive++import Control.Applicative (Applicative(pure), liftA2, )++import NumericPrelude.Numeric+import NumericPrelude.Base hiding (map)+import Prelude ()+++instance (Additive.C a) => Additive.C (T a) where+   {-# INLINE zero #-}+   {-# INLINE negate #-}+   {-# INLINE (+) #-}+   {-# INLINE (-) #-}+   zero   = pure zero+   (+)    = liftA2 (+)+   (-)    = liftA2 (-)+   negate = fmap negate++instance (Module.C a v) => Module.C a (T v) where+   {-# INLINE (*>) #-}+   a*>v = fmap (a*>) v+++instance (Additive.C a, NormedSum.C a v) => NormedSum.C a (T v) where+   {-# INLINE norm #-}+   norm = NormedSum.normFoldable1++instance (NormedEuc.Sqr a v) => NormedEuc.Sqr a (T v) where+   {-# INLINE normSqr #-}+   normSqr = NormedEuc.normSqrFoldable1++instance (Algebraic.C a, NormedEuc.Sqr a v) => NormedEuc.C a (T v) where+   {-# INLINE norm #-}+   norm = NormedEuc.defltNorm++instance (Ord a, NormedMax.C a v) => NormedMax.C a (T v) where+   {-# INLINE norm #-}+   norm = NormedMax.normFoldable1