From e499467d2c67f214b0871376b068c5b6fc7896a1 Mon Sep 17 00:00:00 2001 From: Alberto Ruiz Date: Fri, 10 Apr 2015 09:53:23 +0200 Subject: merge recent --- packages/base/src/C/vector-aux.c | 1 + packages/base/src/Data/Packed/IO.hs | 1 - packages/base/src/Data/Packed/Internal/Numeric.hs | 2 +- packages/base/src/Numeric/Chain.hs | 2 ++ packages/base/src/Numeric/LinearAlgebra/Static.hs | 30 +++++------------------ packages/base/src/Numeric/Vectorized.hs | 1 - 6 files changed, 10 insertions(+), 27 deletions(-) (limited to 'packages/base/src') diff --git a/packages/base/src/C/vector-aux.c b/packages/base/src/C/vector-aux.c index dda47cb..599f69e 100644 --- a/packages/base/src/C/vector-aux.c +++ b/packages/base/src/C/vector-aux.c @@ -13,6 +13,7 @@ typedef float complex TCF; #include #include #include +#include #define MACRO(B) do {B} while (0) #define ERROR(CODE) MACRO(return CODE;) diff --git a/packages/base/src/Data/Packed/IO.hs b/packages/base/src/Data/Packed/IO.hs index 85f1b37..b0999a8 100644 --- a/packages/base/src/Data/Packed/IO.hs +++ b/packages/base/src/Data/Packed/IO.hs @@ -22,7 +22,6 @@ import Text.Printf(printf) import Data.List(intersperse) import Data.Complex import Numeric.Vectorized(vectorScan,saveMatrix) -import Control.Applicative((<$>)) import Data.Packed.Internal {- | Creates a string from a matrix given a separator and a function to show each entry. Using diff --git a/packages/base/src/Data/Packed/Internal/Numeric.hs b/packages/base/src/Data/Packed/Internal/Numeric.hs index dc5724d..7a4dd29 100644 --- a/packages/base/src/Data/Packed/Internal/Numeric.hs +++ b/packages/base/src/Data/Packed/Internal/Numeric.hs @@ -240,7 +240,7 @@ instance Container Vector (Complex Float) --------------------------------------------------------------- -instance (Container Vector a) => Container Matrix a +instance (Fractional a, Element a, Container Vector a) => Container Matrix a where size' = size scale' x = liftMatrix (scale' x) diff --git a/packages/base/src/Numeric/Chain.hs b/packages/base/src/Numeric/Chain.hs index 55e2df6..64c09c0 100644 --- a/packages/base/src/Numeric/Chain.hs +++ b/packages/base/src/Numeric/Chain.hs @@ -14,6 +14,8 @@ -- ----------------------------------------------------------------------------- +{-# LANGUAGE FlexibleContexts #-} + module Numeric.Chain ( optimiseMult, ) where diff --git a/packages/base/src/Numeric/LinearAlgebra/Static.hs b/packages/base/src/Numeric/LinearAlgebra/Static.hs index a26cc4c..4c3186f 100644 --- a/packages/base/src/Numeric/LinearAlgebra/Static.hs +++ b/packages/base/src/Numeric/LinearAlgebra/Static.hs @@ -1,5 +1,3 @@ -#if __GLASGOW_HASKELL__ >= 708 - {-# LANGUAGE DataKinds #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} @@ -51,7 +49,7 @@ module Numeric.LinearAlgebra.Static( linSolve, (<\>), -- * Factorizations svd, withCompactSVD, svdTall, svdFlat, Eigen(..), - withNullspace, qr, + withNullspace, qr, chol, -- * Misc mean, Disp(..), Domain(..), @@ -67,7 +65,7 @@ import Numeric.LinearAlgebra.HMatrix hiding ( row,col,vector,matrix,linspace,toRows,toColumns, (<\>),fromList,takeDiag,svd,eig,eigSH,eigSH', eigenvalues,eigenvaluesSH,eigenvaluesSH',build, - qr,size,app,mul,dot) + qr,size,app,mul,dot,chol) import qualified Numeric.LinearAlgebra.HMatrix as LA import Data.Proxy(Proxy) import Numeric.LinearAlgebra.Static.Internal @@ -183,6 +181,7 @@ a ¦ b = tr (tr a —— tr b) type Sq n = L n n --type CSq n = CL n n + type GL = forall n m . (KnownNat n, KnownNat m) => L m n type GSq = forall n . KnownNat n => Sq n @@ -305,6 +304,9 @@ instance KnownNat n => Eigen (Sq n) (C n) (M n n) where (l,v) = LA.eig m +chol :: KnownNat n => Sym n -> Sq n +chol (extract . unSym -> m) = mkL $ LA.cholSH m + -------------------------------------------------------------------------------- withNullspace @@ -614,23 +616,3 @@ instance (KnownNat n', KnownNat m') => Testable (L n' m') where checkT _ = test -#else - -{- | -Module : Numeric.LinearAlgebra.Static -Copyright : (c) Alberto Ruiz 2014 -License : BSD3 -Stability : experimental - -Experimental interface with statically checked dimensions. - -This module requires GHC >= 7.8 - --} - -module Numeric.LinearAlgebra.Static -{-# WARNING "This module requires GHC >= 7.8" #-} -where - -#endif - diff --git a/packages/base/src/Numeric/Vectorized.hs b/packages/base/src/Numeric/Vectorized.hs index 6f0d240..405ae01 100644 --- a/packages/base/src/Numeric/Vectorized.hs +++ b/packages/base/src/Numeric/Vectorized.hs @@ -37,7 +37,6 @@ import Foreign.C.String import System.IO.Unsafe(unsafePerformIO) import Control.Monad(when) -import Control.Applicative((<$>)) -- cgit v1.2.3