summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/Data/Packed/Internal/Matrix.hs2
-rw-r--r--lib/Data/Packed/Internal/Signatures.hs6
-rw-r--r--lib/Data/Packed/Internal/Vector.hs2
-rw-r--r--lib/Numeric/ContainerBoot.hs8
-rw-r--r--lib/Numeric/GSL/Differentiation.hs2
-rw-r--r--lib/Numeric/GSL/Fitting.hs2
-rw-r--r--lib/Numeric/GSL/Fourier.hs2
-rw-r--r--lib/Numeric/GSL/Integration.hs2
-rw-r--r--lib/Numeric/GSL/Internal.hs2
-rw-r--r--lib/Numeric/GSL/Minimization.hs2
-rw-r--r--lib/Numeric/GSL/ODE.hs2
-rw-r--r--lib/Numeric/GSL/Polynomials.hs9
-rw-r--r--lib/Numeric/GSL/Root.hs5
-rw-r--r--lib/Numeric/GSL/Vector.hs2
-rw-r--r--lib/Numeric/LinearAlgebra/Algorithms.hs10
-rw-r--r--lib/Numeric/LinearAlgebra/LAPACK.hs2
16 files changed, 33 insertions, 27 deletions
diff --git a/lib/Data/Packed/Internal/Matrix.hs b/lib/Data/Packed/Internal/Matrix.hs
index 9fbaf6d..5d05e50 100644
--- a/lib/Data/Packed/Internal/Matrix.hs
+++ b/lib/Data/Packed/Internal/Matrix.hs
@@ -44,7 +44,7 @@ import Foreign.Marshal.Array(newArray)
44import Foreign.Ptr(Ptr, castPtr) 44import Foreign.Ptr(Ptr, castPtr)
45import Foreign.Storable(Storable, peekElemOff, pokeElemOff, poke, sizeOf) 45import Foreign.Storable(Storable, peekElemOff, pokeElemOff, poke, sizeOf)
46import Data.Complex(Complex) 46import Data.Complex(Complex)
47import Foreign.C.Types(CInt(..), CChar) 47import Foreign.C.Types
48import Foreign.C.String(newCString) 48import Foreign.C.String(newCString)
49import System.IO.Unsafe(unsafePerformIO) 49import System.IO.Unsafe(unsafePerformIO)
50 50
diff --git a/lib/Data/Packed/Internal/Signatures.hs b/lib/Data/Packed/Internal/Signatures.hs
index b81efa4..2835720 100644
--- a/lib/Data/Packed/Internal/Signatures.hs
+++ b/lib/Data/Packed/Internal/Signatures.hs
@@ -14,9 +14,9 @@
14 14
15module Data.Packed.Internal.Signatures where 15module Data.Packed.Internal.Signatures where
16 16
17import Foreign 17import Foreign.Ptr(Ptr)
18import Data.Complex 18import Data.Complex(Complex)
19import Foreign.C.Types 19import Foreign.C.Types(CInt)
20 20
21type PF = Ptr Float -- 21type PF = Ptr Float --
22type PD = Ptr Double -- 22type PD = Ptr Double --
diff --git a/lib/Data/Packed/Internal/Vector.hs b/lib/Data/Packed/Internal/Vector.hs
index e85ba6e..936479d 100644
--- a/lib/Data/Packed/Internal/Vector.hs
+++ b/lib/Data/Packed/Internal/Vector.hs
@@ -39,7 +39,7 @@ import Foreign.ForeignPtr(ForeignPtr, castForeignPtr)
39import Foreign.Ptr(Ptr) 39import Foreign.Ptr(Ptr)
40import Foreign.Storable(Storable, peekElemOff, pokeElemOff, sizeOf) 40import Foreign.Storable(Storable, peekElemOff, pokeElemOff, sizeOf)
41import Foreign.C.String 41import Foreign.C.String
42import Foreign.C.Types(CInt(..),CChar) 42import Foreign.C.Types
43import Data.Complex 43import Data.Complex
44import Control.Monad(when) 44import Control.Monad(when)
45import System.IO.Unsafe(unsafePerformIO) 45import System.IO.Unsafe(unsafePerformIO)
diff --git a/lib/Numeric/ContainerBoot.hs b/lib/Numeric/ContainerBoot.hs
index 6ce4760..d50dd36 100644
--- a/lib/Numeric/ContainerBoot.hs
+++ b/lib/Numeric/ContainerBoot.hs
@@ -1,11 +1,9 @@
1{-# LANGUAGE CPP #-}
1{-# LANGUAGE TypeFamilies #-} 2{-# LANGUAGE TypeFamilies #-}
2{-# LANGUAGE FlexibleContexts #-} 3{-# LANGUAGE FlexibleContexts #-}
3{-# LANGUAGE FlexibleInstances #-} 4{-# LANGUAGE FlexibleInstances #-}
4{-# LANGUAGE MultiParamTypeClasses #-} 5{-# LANGUAGE MultiParamTypeClasses #-}
5{-# LANGUAGE UndecidableInstances #-} 6{-# LANGUAGE UndecidableInstances #-}
6#ifndef NOPOLYKINDS
7{-# LANGUAGE PolyKinds #-}
8#endif
9 7
10----------------------------------------------------------------------------- 8-----------------------------------------------------------------------------
11-- | 9-- |
@@ -55,12 +53,12 @@ import Numeric.LinearAlgebra.LAPACK(multiplyR,multiplyC,multiplyF,multiplyQ)
55 53
56------------------------------------------------------------------- 54-------------------------------------------------------------------
57 55
58type family IndexOf c 56type family IndexOf (c :: * -> *)
59 57
60type instance IndexOf Vector = Int 58type instance IndexOf Vector = Int
61type instance IndexOf Matrix = (Int,Int) 59type instance IndexOf Matrix = (Int,Int)
62 60
63type family ArgOf c a 61type family ArgOf (c :: * -> *) a
64 62
65type instance ArgOf Vector a = a -> a 63type instance ArgOf Vector a = a -> a
66type instance ArgOf Matrix a = a -> a -> a 64type instance ArgOf Matrix a = a -> a -> a
diff --git a/lib/Numeric/GSL/Differentiation.hs b/lib/Numeric/GSL/Differentiation.hs
index 1df58a1..ab5eb50 100644
--- a/lib/Numeric/GSL/Differentiation.hs
+++ b/lib/Numeric/GSL/Differentiation.hs
@@ -22,7 +22,7 @@ module Numeric.GSL.Differentiation (
22 derivBackward 22 derivBackward
23) where 23) where
24 24
25import Foreign.C.Types(CInt(..)) 25import Foreign.C.Types
26import Foreign.Marshal.Alloc(malloc, free) 26import Foreign.Marshal.Alloc(malloc, free)
27import Foreign.Ptr(Ptr, FunPtr, freeHaskellFunPtr) 27import Foreign.Ptr(Ptr, FunPtr, freeHaskellFunPtr)
28import Foreign.Storable(peek) 28import Foreign.Storable(peek)
diff --git a/lib/Numeric/GSL/Fitting.hs b/lib/Numeric/GSL/Fitting.hs
index da5c0fc..79db23f 100644
--- a/lib/Numeric/GSL/Fitting.hs
+++ b/lib/Numeric/GSL/Fitting.hs
@@ -54,7 +54,7 @@ import Numeric.LinearAlgebra
54import Numeric.GSL.Internal 54import Numeric.GSL.Internal
55 55
56import Foreign.Ptr(FunPtr, freeHaskellFunPtr) 56import Foreign.Ptr(FunPtr, freeHaskellFunPtr)
57import Foreign.C.Types(CInt(..)) 57import Foreign.C.Types
58import System.IO.Unsafe(unsafePerformIO) 58import System.IO.Unsafe(unsafePerformIO)
59 59
60------------------------------------------------------------------------- 60-------------------------------------------------------------------------
diff --git a/lib/Numeric/GSL/Fourier.hs b/lib/Numeric/GSL/Fourier.hs
index 5cc50dc..71bc8a1 100644
--- a/lib/Numeric/GSL/Fourier.hs
+++ b/lib/Numeric/GSL/Fourier.hs
@@ -22,7 +22,7 @@ module Numeric.GSL.Fourier (
22 22
23import Data.Packed.Internal 23import Data.Packed.Internal
24import Data.Complex 24import Data.Complex
25import Foreign.C.Types(CInt(..)) 25import Foreign.C.Types
26import System.IO.Unsafe (unsafePerformIO) 26import System.IO.Unsafe (unsafePerformIO)
27 27
28genfft code v = unsafePerformIO $ do 28genfft code v = unsafePerformIO $ do
diff --git a/lib/Numeric/GSL/Integration.hs b/lib/Numeric/GSL/Integration.hs
index a59862a..a0e922b 100644
--- a/lib/Numeric/GSL/Integration.hs
+++ b/lib/Numeric/GSL/Integration.hs
@@ -20,7 +20,7 @@ module Numeric.GSL.Integration (
20 integrateQAGS 20 integrateQAGS
21) where 21) where
22 22
23import Foreign.C.Types(CInt(..)) 23import Foreign.C.Types
24import Foreign.Marshal.Alloc(malloc, free) 24import Foreign.Marshal.Alloc(malloc, free)
25import Foreign.Ptr(Ptr, FunPtr, freeHaskellFunPtr) 25import Foreign.Ptr(Ptr, FunPtr, freeHaskellFunPtr)
26import Foreign.Storable(peek) 26import Foreign.Storable(peek)
diff --git a/lib/Numeric/GSL/Internal.hs b/lib/Numeric/GSL/Internal.hs
index a6c81ee..303e7e1 100644
--- a/lib/Numeric/GSL/Internal.hs
+++ b/lib/Numeric/GSL/Internal.hs
@@ -16,7 +16,7 @@ import Data.Packed.Internal
16 16
17import Foreign.Marshal.Array(copyArray) 17import Foreign.Marshal.Array(copyArray)
18import Foreign.Ptr(Ptr, FunPtr) 18import Foreign.Ptr(Ptr, FunPtr)
19import Foreign.C.Types(CInt(..)) 19import Foreign.C.Types
20import System.IO.Unsafe(unsafePerformIO) 20import System.IO.Unsafe(unsafePerformIO)
21 21
22iv :: (Vector Double -> Double) -> (CInt -> Ptr Double -> Double) 22iv :: (Vector Double -> Double) -> (CInt -> Ptr Double -> Double)
diff --git a/lib/Numeric/GSL/Minimization.hs b/lib/Numeric/GSL/Minimization.hs
index 6fac640..88acfac 100644
--- a/lib/Numeric/GSL/Minimization.hs
+++ b/lib/Numeric/GSL/Minimization.hs
@@ -65,7 +65,7 @@ import Data.Packed.Matrix
65import Numeric.GSL.Internal 65import Numeric.GSL.Internal
66 66
67import Foreign.Ptr(Ptr, FunPtr, freeHaskellFunPtr) 67import Foreign.Ptr(Ptr, FunPtr, freeHaskellFunPtr)
68import Foreign.C.Types(CInt(..)) 68import Foreign.C.Types
69import System.IO.Unsafe(unsafePerformIO) 69import System.IO.Unsafe(unsafePerformIO)
70 70
71------------------------------------------------------------------------ 71------------------------------------------------------------------------
diff --git a/lib/Numeric/GSL/ODE.hs b/lib/Numeric/GSL/ODE.hs
index 86c8bab..2251acd 100644
--- a/lib/Numeric/GSL/ODE.hs
+++ b/lib/Numeric/GSL/ODE.hs
@@ -36,7 +36,7 @@ import Data.Packed.Internal
36import Numeric.GSL.Internal 36import Numeric.GSL.Internal
37 37
38import Foreign.Ptr(FunPtr, nullFunPtr, freeHaskellFunPtr) 38import Foreign.Ptr(FunPtr, nullFunPtr, freeHaskellFunPtr)
39import Foreign.C.Types(CInt(..)) 39import Foreign.C.Types
40import System.IO.Unsafe(unsafePerformIO) 40import System.IO.Unsafe(unsafePerformIO)
41 41
42------------------------------------------------------------------------- 42-------------------------------------------------------------------------
diff --git a/lib/Numeric/GSL/Polynomials.hs b/lib/Numeric/GSL/Polynomials.hs
index c0318d7..b21b1b6 100644
--- a/lib/Numeric/GSL/Polynomials.hs
+++ b/lib/Numeric/GSL/Polynomials.hs
@@ -1,4 +1,4 @@
1{-# LANGUAGE ForeignFunctionInterface #-} 1{-# LANGUAGE CPP, ForeignFunctionInterface #-}
2----------------------------------------------------------------------------- 2-----------------------------------------------------------------------------
3{- | 3{- |
4Module : Numeric.GSL.Polynomials 4Module : Numeric.GSL.Polynomials
@@ -19,13 +19,14 @@ module Numeric.GSL.Polynomials (
19 polySolve 19 polySolve
20) where 20) where
21 21
22#ifndef ABSTRACTCINT
23import Foreign.C.Types(CInt(..))
24#endif
25import Data.Packed.Internal 22import Data.Packed.Internal
26import Data.Complex 23import Data.Complex
27import System.IO.Unsafe (unsafePerformIO) 24import System.IO.Unsafe (unsafePerformIO)
28 25
26#if __GLASGOW_HASKELL__ >= 704
27import Foreign.C.Types (CInt(..))
28#endif
29
29{- | Solution of general polynomial equations, using /gsl_poly_complex_solve/. For example, 30{- | Solution of general polynomial equations, using /gsl_poly_complex_solve/. For example,
30 the three solutions of x^3 + 8 = 0 31 the three solutions of x^3 + 8 = 0
31 32
diff --git a/lib/Numeric/GSL/Root.hs b/lib/Numeric/GSL/Root.hs
index 9969e8a..41f7fb3 100644
--- a/lib/Numeric/GSL/Root.hs
+++ b/lib/Numeric/GSL/Root.hs
@@ -52,9 +52,8 @@ module Numeric.GSL.Root (
52import Data.Packed.Internal 52import Data.Packed.Internal
53import Data.Packed.Matrix 53import Data.Packed.Matrix
54import Numeric.GSL.Internal 54import Numeric.GSL.Internal
55 55import Foreign.Ptr(FunPtr, freeHaskellFunPtr)
56import Foreign.Ptr(FunPtr, freeHaskellFunPtr) 56import Foreign.C.Types
57import Foreign.C.Types(CInt(..))
58import System.IO.Unsafe(unsafePerformIO) 57import System.IO.Unsafe(unsafePerformIO)
59 58
60------------------------------------------------------------------------- 59-------------------------------------------------------------------------
diff --git a/lib/Numeric/GSL/Vector.hs b/lib/Numeric/GSL/Vector.hs
index d0f419b..b8c6d04 100644
--- a/lib/Numeric/GSL/Vector.hs
+++ b/lib/Numeric/GSL/Vector.hs
@@ -31,7 +31,7 @@ import Data.Complex
31import Foreign.Marshal.Alloc(free) 31import Foreign.Marshal.Alloc(free)
32import Foreign.Marshal.Array(newArray) 32import Foreign.Marshal.Array(newArray)
33import Foreign.Ptr(Ptr) 33import Foreign.Ptr(Ptr)
34import Foreign.C.Types(CInt(..)) 34import Foreign.C.Types
35import System.IO.Unsafe(unsafePerformIO) 35import System.IO.Unsafe(unsafePerformIO)
36 36
37fromei x = fromIntegral (fromEnum x) :: CInt 37fromei x = fromIntegral (fromEnum x) :: CInt
diff --git a/lib/Numeric/LinearAlgebra/Algorithms.hs b/lib/Numeric/LinearAlgebra/Algorithms.hs
index 9806d6f..e2ecd4d 100644
--- a/lib/Numeric/LinearAlgebra/Algorithms.hs
+++ b/lib/Numeric/LinearAlgebra/Algorithms.hs
@@ -568,11 +568,19 @@ epslist = [ (fromIntegral k, golubeps k k) | k <- [1..]]
568 568
569geps delta = head [ k | (k,g) <- epslist, g<delta] 569geps delta = head [ k | (k,g) <- epslist, g<delta]
570 570
571
571{- | Matrix exponential. It uses a direct translation of Algorithm 11.3.1 in Golub & Van Loan, 572{- | Matrix exponential. It uses a direct translation of Algorithm 11.3.1 in Golub & Van Loan,
572 based on a scaled Pade approximation. 573 based on a scaled Pade approximation.
573-} 574-}
574expm :: Field t => Matrix t -> Matrix t 575expm :: Field t => Matrix t -> Matrix t
575expm m = iterate msq f !! j 576expm = expGolub
577
578expGolub :: ( Fractional t, Element t, Field t
579 , Normed Matrix t
580 , RealFrac (RealOf t)
581 , Floating (RealOf t)
582 ) => Matrix t -> Matrix t
583expGolub m = iterate msq f !! j
576 where j = max 0 $ floor $ logBase 2 $ pnorm Infinity m 584 where j = max 0 $ floor $ logBase 2 $ pnorm Infinity m
577 a = m */ fromIntegral ((2::Int)^j) 585 a = m */ fromIntegral ((2::Int)^j)
578 q = geps eps -- 7 steps 586 q = geps eps -- 7 steps
diff --git a/lib/Numeric/LinearAlgebra/LAPACK.hs b/lib/Numeric/LinearAlgebra/LAPACK.hs
index 14e121b..d1aa564 100644
--- a/lib/Numeric/LinearAlgebra/LAPACK.hs
+++ b/lib/Numeric/LinearAlgebra/LAPACK.hs
@@ -47,7 +47,7 @@ import Numeric.Conversion
47import Numeric.GSL.Vector(vectorMapValR, FunCodeSV(Scale)) 47import Numeric.GSL.Vector(vectorMapValR, FunCodeSV(Scale))
48 48
49import Foreign.Ptr(nullPtr) 49import Foreign.Ptr(nullPtr)
50import Foreign.C.Types(CInt(..)) 50import Foreign.C.Types
51import Control.Monad(when) 51import Control.Monad(when)
52import System.IO.Unsafe(unsafePerformIO) 52import System.IO.Unsafe(unsafePerformIO)
53 53