packages feed

vector-space 0.7.6 → 0.7.7

raw patch · 2 files changed

+4/−177 lines, 2 filesdep +NumInstancesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: NumInstances

API changes (from Hackage documentation)

- Data.NumInstances: instance (Floating a, Floating b) => Floating (a, b)
- Data.NumInstances: instance (Floating a, Floating b, Floating c) => Floating (a, b, c)
- Data.NumInstances: instance (Floating a, Floating b, Floating c, Floating d) => Floating (a, b, c, d)
- Data.NumInstances: instance (Fractional a, Fractional b) => Fractional (a, b)
- Data.NumInstances: instance (Fractional a, Fractional b, Fractional c) => Fractional (a, b, c)
- Data.NumInstances: instance (Fractional a, Fractional b, Fractional c, Fractional d) => Fractional (a, b, c, d)
- Data.NumInstances: instance (Num a, Num b) => Num (a, b)
- Data.NumInstances: instance (Num a, Num b, Num c) => Num (a, b, c)
- Data.NumInstances: instance (Num a, Num b, Num c, Num d) => Num (a, b, c, d)
- Data.NumInstances: instance Eq (a -> b)
- Data.NumInstances: instance Floating b => Floating (a -> b)
- Data.NumInstances: instance Fractional b => Fractional (a -> b)
- Data.NumInstances: instance Num b => Num (a -> b)
- Data.NumInstances: instance Ord b => Ord (a -> b)
- Data.NumInstances: instance Show (a -> b)

Files

− src/Data/NumInstances.hs
@@ -1,174 +0,0 @@-{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances #-}-{-# OPTIONS_GHC -fno-warn-orphans #-}-------------------------------------------------------------------------- |--- Module      :  Data.NumInstances--- Copyright   :  (c) Conal Elliott 2008--- License     :  BSD3--- --- Maintainer  :  conal@conal.net--- Stability   :  experimental--- --- Number class instances for functions and tuples-------------------------------------------------------------------------module Data.NumInstances () where--import Control.Applicative--noOv :: String -> String -> a-noOv ty meth = error $ meth ++ ": No overloading for " ++ ty--noFun :: String -> a-noFun = noOv "function"---- Eq & Show are prerequisites for Num, so they need to be faked here-instance Eq (a->b) where-  (==) = noFun "(==)"-  (/=) = noFun "(/=)"--instance Ord b => Ord (a->b) where-  min = liftA2 min-  max = liftA2 max--instance Show (a->b) where-  show      = noFun "show"-  showsPrec = noFun "showsPrec"-  showList  = noFun "showList"--instance Num b => Num (a->b) where-  negate      = fmap negate-  (+)         = liftA2 (+)-  (*)         = liftA2 (*)-  fromInteger = pure . fromInteger-  abs         = fmap abs-  signum      = fmap signum--instance Fractional b => Fractional (a->b) where-  recip        = fmap recip-  fromRational = pure . fromRational--instance Floating b => Floating (a->b) where-  pi    = pure pi-  sqrt  = fmap sqrt-  exp   = fmap exp-  log   = fmap log-  sin   = fmap sin-  cos   = fmap cos-  asin  = fmap asin-  atan  = fmap atan-  acos  = fmap acos-  sinh  = fmap sinh-  cosh  = fmap cosh-  asinh = fmap asinh-  atanh = fmap atanh-  acosh = fmap acosh-------- Tuples--lift2 :: (a->u) -> (b->v) -> (a,b) -> (u,v)-lift2 f g (a,b) = (f a, g b)---- Equivalently, lift2 = (***)--instance (Num a, Num b) => Num (a,b) where-  fromInteger n   = (fromInteger n, fromInteger n)-  (a,b) + (a',b') = (a+a',b+b')-  (a,b) - (a',b') = (a-a',b-b')-  (a,b) * (a',b') = (a*a',b*b')-  negate = lift2 negate negate-  abs    = lift2 abs abs-  signum = lift2 signum signum--instance (Fractional a, Fractional b) => Fractional (a,b) where-  fromRational x = (fromRational x, fromRational x)-  recip = lift2 recip recip--instance (Floating a, Floating b) => Floating (a,b) where-  pi    = (pi,pi)-  exp   = lift2 exp exp-  log   = lift2 log log-  sqrt  = lift2 sqrt sqrt-  sin   = lift2 sin sin-  cos   = lift2 cos cos-  sinh  = lift2 sinh sinh-  cosh  = lift2 cosh cosh-  asin  = lift2 asin asin-  acos  = lift2 acos acos-  atan  = lift2 atan atan-  asinh = lift2 asinh asinh-  acosh = lift2 acosh acosh-  atanh = lift2 atanh atanh--instance (Num a, Num b, Num c) => Num (a,b,c) where-  fromInteger n = (fromInteger n, fromInteger n, fromInteger n)-  (a,b,c) + (a',b',c') = (a+a',b+b',c+c')-  (a,b,c) - (a',b',c') = (a-a',b-b',c-c')-  (a,b,c) * (a',b',c') = (a*a',b*b',c*c')-  negate = lift3 negate negate negate-  abs    = lift3 abs abs abs-  signum = lift3 signum signum signum--instance (Fractional a, Fractional b, Fractional c)-    => Fractional (a,b,c) where-  fromRational x = (fromRational x, fromRational x, fromRational x)-  recip = lift3 recip recip recip---lift3 :: (a->u) -> (b->v) -> (c->w) -> (a,b,c) -> (u,v,w)-lift3 f g h (a,b,c) = (f a, g b, h c)--instance (Floating a, Floating b, Floating c)-    => Floating (a,b,c) where-  pi    = (pi,pi,pi)-  exp   = lift3 exp exp exp-  log   = lift3 log log log-  sqrt  = lift3 sqrt sqrt sqrt-  sin   = lift3 sin sin sin-  cos   = lift3 cos cos cos-  sinh  = lift3 sinh sinh sinh-  cosh  = lift3 cosh cosh cosh-  asin  = lift3 asin asin asin-  acos  = lift3 acos acos acos-  atan  = lift3 atan atan atan-  asinh = lift3 asinh asinh asinh-  acosh = lift3 acosh acosh acosh-  atanh = lift3 atanh atanh atanh----lift4 :: (a->u) -> (b->v) -> (c->w) -> (d->x)-      -> (a,b,c,d) -> (u,v,w,x)-lift4 f g h k (a,b,c,d) = (f a, g b, h c, k d)--instance (Num a, Num b, Num c, Num d) => Num (a,b,c,d) where-  fromInteger n = (fromInteger n, fromInteger n, fromInteger n, fromInteger n)-  (a,b,c,d) + (a',b',c',d') = (a+a',b+b',c+c',d+d')-  (a,b,c,d) - (a',b',c',d') = (a-a',b-b',c-c',d-d')-  (a,b,c,d) * (a',b',c',d') = (a*a',b*b',c*c',d*d')-  negate = lift4 negate negate negate negate-  abs    = lift4 abs abs abs abs-  signum = lift4 signum signum signum signum--instance (Fractional a, Fractional b, Fractional c, Fractional d)-    => Fractional (a,b,c,d) where-  fromRational x = (fromRational x, fromRational x, fromRational x, fromRational x)-  recip = lift4 recip recip recip recip--instance (Floating a, Floating b, Floating c, Floating d)-    => Floating (a,b,c,d) where-  pi    = (pi,pi,pi,pi)-  exp   = lift4 exp exp exp exp-  log   = lift4 log log log log-  sqrt  = lift4 sqrt sqrt sqrt sqrt-  sin   = lift4 sin sin sin sin-  cos   = lift4 cos cos cos cos-  sinh  = lift4 sinh sinh sinh sinh-  cosh  = lift4 cosh cosh cosh cosh-  asin  = lift4 asin asin asin asin-  acos  = lift4 acos acos acos acos-  atan  = lift4 atan atan atan atan-  asinh = lift4 asinh asinh asinh asinh-  acosh = lift4 acosh acosh acosh acosh-  atanh = lift4 atanh atanh atanh atanh
vector-space.cabal view
@@ -1,5 +1,5 @@ Name:                vector-space-Version:             0.7.6+Version:             0.7.7 Cabal-Version:       >= 1.2 Synopsis:            Vector & affine spaces, linear maps, and derivatives (requires ghc 6.9 or better) Category:            math@@ -29,7 +29,8 @@ Library   hs-Source-Dirs:      src   Extensions:          -  Build-Depends:       base<5, MemoTrie >= 0.4.2, Boolean >= 0.0.1+  Build-Depends:       base<5, MemoTrie >= 0.4.2, Boolean >= 0.0.1,+                       NumInstances >= 1.0   Exposed-Modules:                           Data.AdditiveGroup                      Data.VectorSpace@@ -40,7 +41,7 @@                      Data.Derivative                      Data.Cross                      Data.AffineSpace-                     Data.NumInstances+--                   Data.NumInstances     -- This library relies on type families working as well as in 6.10.