hmatrix-gsl 0.17.0.0 → 0.18.0.1
raw patch · 10 files changed
+48/−28 lines, 10 filesdep ~hmatrixPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: hmatrix
API changes (from Hackage documentation)
Files
- hmatrix-gsl.cabal +3/−4
- src/Numeric/GSL/Fitting.hs +1/−1
- src/Numeric/GSL/Fourier.hs +1/−1
- src/Numeric/GSL/Internal.hs +12/−3
- src/Numeric/GSL/Interpolation.hs +12/−0
- src/Numeric/GSL/LinearAlgebra.hs +6/−6
- src/Numeric/GSL/ODE.hs +1/−1
- src/Numeric/GSL/Polynomials.hs +4/−3
- src/Numeric/GSL/Random.hs +2/−3
- src/Numeric/GSL/Vector.hs +6/−6
hmatrix-gsl.cabal view
@@ -1,5 +1,5 @@ Name: hmatrix-gsl-Version: 0.17.0.0+Version: 0.18.0.1 License: GPL License-file: LICENSE Author: Alberto Ruiz@@ -25,12 +25,11 @@ library - Build-Depends: base<5, hmatrix>=0.17, array, vector,+ Build-Depends: base<5, hmatrix>=0.18, array, vector, process, random - Extensions: ForeignFunctionInterface,- CPP+ Extensions: ForeignFunctionInterface hs-source-dirs: src Exposed-modules: Numeric.GSL.Differentiation,
src/Numeric/GSL/Fitting.hs view
@@ -87,7 +87,7 @@ fp <- mkVecVecfun (aux_vTov (checkdim1 n p . f)) jp <- mkVecMatfun (aux_vTom (checkdim2 n p . jac)) rawpath <- createMatrix RowMajor maxit (2+p)- c_nlfit m fp jp epsabs epsrel (fi maxit) (fi n) # xiv # rawpath #|"c_nlfit"+ (xiv `applyRaw` (rawpath `applyRaw` id)) (c_nlfit m fp jp epsabs epsrel (fi maxit) (fi n)) #|"c_nlfit" let it = round (rawpath `atIndex` (maxit-1,0)) path = takeRows it rawpath [sol] = toRows $ dropRows (it-1) path
src/Numeric/GSL/Fourier.hs view
@@ -25,7 +25,7 @@ genfft code v = unsafePerformIO $ do r <- createVector (size v)- c_fft code # v # r #|"fft"+ (v `applyRaw` (r `applyRaw` id)) (c_fft code) #|"fft" return r foreign import ccall unsafe "gsl-aux.h fft" c_fft :: CInt -> TCV (TCV Res)
src/Numeric/GSL/Internal.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE FlexibleContexts #-}+ -- | -- Module : Numeric.GSL.Internal -- Copyright : (c) Alberto Ruiz 2009@@ -23,7 +25,7 @@ createV, createMIO, module Numeric.LinearAlgebra.Devel,- check,(#),vec, ww2,+ check,(#),(#!),vec, ww2, Res,TV,TM,TCV,TCM ) where @@ -86,12 +88,12 @@ createV n fun msg = unsafePerformIO $ do r <- createVector n- fun # r #| msg+ (r # id) fun #| msg return r createMIO r c fun msg = do res <- createMatrix RowMajor r c- fun # res #| msg+ (res # id) fun #| msg return res --------------------------------------------------------------------------------@@ -134,4 +136,11 @@ infixl 1 # a # b = applyRaw a b {-# INLINE (#) #-}++--infixr 1 #+--a # b = apply a b+--{-# INLINE (#) #-}++a #! b = a # b # id+{-# INLINE (#!) #-}
src/Numeric/GSL/Interpolation.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE MagicHash, UnboxedTuples #-}+ {- | Module : Numeric.GSL.Interpolation Copyright : (c) Matthew Peddie 2015@@ -40,6 +42,10 @@ import Numeric.GSL.Internal import System.IO.Unsafe(unsafePerformIO) +-- FIXME+import qualified Data.Vector.Storable as S+import GHC.Base (IO(..), realWorld#)+ data InterpolationMethod = Linear | Polynomial | CSpline@@ -58,6 +64,12 @@ dim :: Numeric t => Vector t -> Int dim = size++-- FIXME+appVector f x = unsafeInlinePerformIO (S.unsafeWith x (return . f))++unsafeInlinePerformIO (IO f) = case f realWorld# of+ (# _, x #) -> x applyCFun hsname cname fun mth xs ys x | dim xs /= dim ys = error $
src/Numeric/GSL/LinearAlgebra.hs view
@@ -40,7 +40,7 @@ -> Vector Double randomVector seed dist n = unsafePerformIO $ do r <- createVector n- c_random_vector (fi seed) ((fi.fromEnum) dist) # r #|"randomVector"+ (r `applyRaw` id) (c_random_vector (fi seed) ((fi.fromEnum) dist)) #|"randomVector" return r foreign import ccall unsafe "random_vector" c_random_vector :: CInt -> CInt -> TV@@ -56,7 +56,7 @@ charname <- newCString filename charfmt <- newCString fmt let o = if orderOf m == RowMajor then 1 else 0- matrix_fprintf charname charfmt o # m #|"matrix_fprintf"+ (m `applyRaw` id) (matrix_fprintf charname charfmt o) #|"matrix_fprintf" free charname free charfmt @@ -69,7 +69,7 @@ fscanfVector filename n = do charname <- newCString filename res <- createVector n- gsl_vector_fscanf charname # res #|"gsl_vector_fscanf"+ (res `applyRaw` id) (gsl_vector_fscanf charname) #|"gsl_vector_fscanf" free charname return res @@ -80,7 +80,7 @@ fprintfVector filename fmt v = do charname <- newCString filename charfmt <- newCString fmt- gsl_vector_fprintf charname charfmt # v #|"gsl_vector_fprintf"+ (v `applyRaw` id) (gsl_vector_fprintf charname charfmt) #|"gsl_vector_fprintf" free charname free charfmt @@ -91,7 +91,7 @@ freadVector filename n = do charname <- newCString filename res <- createVector n- gsl_vector_fread charname # res #| "gsl_vector_fread"+ (res `applyRaw` id) (gsl_vector_fread charname) #| "gsl_vector_fread" free charname return res @@ -101,7 +101,7 @@ fwriteVector :: FilePath -> Vector Double -> IO () fwriteVector filename v = do charname <- newCString filename- gsl_vector_fwrite charname # v #|"gsl_vector_fwrite"+ (v `applyRaw` id) (gsl_vector_fwrite charname) #|"gsl_vector_fwrite" free charname foreign import ccall unsafe "vector_fwrite" gsl_vector_fwrite :: Ptr CChar -> TV
src/Numeric/GSL/ODE.hs view
@@ -17,7 +17,7 @@ @ import Numeric.GSL.ODE import Numeric.LinearAlgebra-import Numeric.LinearAlgebra.Util(mplot)+import Graphics.Plot(mplot) xdot t [x,v] = [v, -0.95*x - 0.1*v]
src/Numeric/GSL/Polynomials.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {- | Module : Numeric.GSL.Polynomials Copyright : (c) Alberto Ruiz 2006@@ -24,7 +25,7 @@ import Foreign.C.Types (CInt(..)) #endif -{- | Solution of general polynomial equations, using /gsl_poly_complex_solve/. +{- | Solution of general polynomial equations, using /gsl_poly_complex_solve/. For example, the three solutions of x^3 + 8 = 0 @@ -41,14 +42,14 @@ 0.30901699437494756 :+ (-0.9510565162951535), 1.0000000000000002 :+ 0.0] --} +-} polySolve :: [Double] -> [Complex Double] polySolve = toList . polySolve' . fromList polySolve' :: Vector Double -> Vector (Complex Double) polySolve' v | size v > 1 = unsafePerformIO $ do r <- createVector (size v-1)- c_polySolve # v # r #| "polySolve"+ (v `applyRaw` (r `applyRaw` id)) c_polySolve #| "polySolve" return r | otherwise = error "polySolve on a polynomial of degree zero"
src/Numeric/GSL/Random.hs view
@@ -39,13 +39,13 @@ gaussianSample :: Seed -> Int -- ^ number of rows -> Vector Double -- ^ mean vector- -> Matrix Double -- ^ covariance matrix+ -> Herm Double -- ^ covariance matrix -> Matrix Double -- ^ result gaussianSample seed n med cov = m where c = size med meds = konst 1 n `outer` med rs = reshape c $ randomVector seed Gaussian (c * n)- m = rs <> cholSH cov + meds+ m = rs <> chol cov + meds -- | Obtains a matrix whose rows are pseudorandom samples from a multivariate -- uniform distribution.@@ -87,4 +87,3 @@ -} randn :: Int -> Int -> IO (Matrix Double) randn = randm Gaussian-
src/Numeric/GSL/Vector.hs view
@@ -34,7 +34,7 @@ -> Vector Double randomVector seed dist n = unsafePerformIO $ do r <- createVector n- c_random_vector_GSL (fi seed) ((fi.fromEnum) dist) # r #|"randomVectorGSL"+ (r `applyRaw` id) (c_random_vector_GSL (fi seed) ((fi.fromEnum) dist)) #|"randomVectorGSL" return r foreign import ccall unsafe "random_vector_GSL" c_random_vector_GSL :: CInt -> CInt -> TV@@ -50,7 +50,7 @@ charname <- newCString filename charfmt <- newCString fmt let o = if orderOf m == RowMajor then 1 else 0- matrix_fprintf charname charfmt o # m #|"matrix_fprintf"+ (m `applyRaw` id) (matrix_fprintf charname charfmt o) #|"matrix_fprintf" free charname free charfmt @@ -63,7 +63,7 @@ fscanfVector filename n = do charname <- newCString filename res <- createVector n- gsl_vector_fscanf charname # res #|"gsl_vector_fscanf"+ (res `applyRaw` id) (gsl_vector_fscanf charname) #|"gsl_vector_fscanf" free charname return res @@ -74,7 +74,7 @@ fprintfVector filename fmt v = do charname <- newCString filename charfmt <- newCString fmt- gsl_vector_fprintf charname charfmt # v #|"gsl_vector_fprintf"+ (v `applyRaw` id) (gsl_vector_fprintf charname charfmt) #|"gsl_vector_fprintf" free charname free charfmt @@ -85,7 +85,7 @@ freadVector filename n = do charname <- newCString filename res <- createVector n- gsl_vector_fread charname # res #|"gsl_vector_fread"+ (res `applyRaw` id) (gsl_vector_fread charname) #|"gsl_vector_fread" free charname return res @@ -95,7 +95,7 @@ fwriteVector :: FilePath -> Vector Double -> IO () fwriteVector filename v = do charname <- newCString filename- gsl_vector_fwrite charname # v #|"gsl_vector_fwrite"+ (v `applyRaw` id) (gsl_vector_fwrite charname) #|"gsl_vector_fwrite" free charname foreign import ccall unsafe "vector_fwrite" gsl_vector_fwrite :: Ptr CChar -> TV