summaryrefslogtreecommitdiff
path: root/lib/Numeric
diff options
context:
space:
mode:
authorAlberto Ruiz <aruiz@um.es>2007-10-19 09:39:06 +0000
committerAlberto Ruiz <aruiz@um.es>2007-10-19 09:39:06 +0000
commit1a9c07dd1fffdbd7eb939fa6a781793419947c08 (patch)
tree849f7206f3179b60b19a6e986809b108381c9414 /lib/Numeric
parentf71bcb5b4fbc68f514acc05005cc96932ced32dc (diff)
some refactoring
Diffstat (limited to 'lib/Numeric')
-rw-r--r--lib/Numeric/GSL.hs2
-rw-r--r--lib/Numeric/GSL/Vector.hs2
-rw-r--r--lib/Numeric/LinearAlgebra/Instances.hs23
-rw-r--r--lib/Numeric/LinearAlgebra/Interface.hs4
-rw-r--r--lib/Numeric/LinearAlgebra/Linear.hs2
5 files changed, 27 insertions, 6 deletions
diff --git a/lib/Numeric/GSL.hs b/lib/Numeric/GSL.hs
index 4bc3940..784dfbc 100644
--- a/lib/Numeric/GSL.hs
+++ b/lib/Numeric/GSL.hs
@@ -8,7 +8,7 @@ Maintainer : Alberto Ruiz (aruiz at um dot es)
8Stability : provisional 8Stability : provisional
9Portability : uses -fffi and -fglasgow-exts 9Portability : uses -fffi and -fglasgow-exts
10 10
11This module reexports all the available Numeric.GSL functions (except those in "LinearAlgebra"). 11This module reexports all the available GSL functions (except those in "LinearAlgebra").
12 12
13-} 13-}
14 14
diff --git a/lib/Numeric/GSL/Vector.hs b/lib/Numeric/GSL/Vector.hs
index 41efdc0..d94b377 100644
--- a/lib/Numeric/GSL/Vector.hs
+++ b/lib/Numeric/GSL/Vector.hs
@@ -9,7 +9,7 @@
9-- Stability : provisional 9-- Stability : provisional
10-- Portability : portable (uses FFI) 10-- Portability : portable (uses FFI)
11-- 11--
12-- Vector operations 12-- Low level interface to vector operations.
13-- 13--
14----------------------------------------------------------------------------- 14-----------------------------------------------------------------------------
15 15
diff --git a/lib/Numeric/LinearAlgebra/Instances.hs b/lib/Numeric/LinearAlgebra/Instances.hs
index 388f3da..4ee576f 100644
--- a/lib/Numeric/LinearAlgebra/Instances.hs
+++ b/lib/Numeric/LinearAlgebra/Instances.hs
@@ -9,7 +9,7 @@ Maintainer : Alberto Ruiz (aruiz at um dot es)
9Stability : provisional 9Stability : provisional
10Portability : portable 10Portability : portable
11 11
12Numeric instances for Vector and Matrix. 12This module exports Show, Eq, Num, Fractional, and Floating instances for Vector and Matrix.
13 13
14In the context of the standard numeric operators, one-component vectors and matrices automatically expand to match the dimensions of the other operand. 14In the context of the standard numeric operators, one-component vectors and matrices automatically expand to match the dimensions of the other operand.
15 15
@@ -24,6 +24,27 @@ import Numeric.GSL.Vector
24import Data.Packed.Matrix 24import Data.Packed.Matrix
25import Data.Packed.Vector 25import Data.Packed.Vector
26import Complex 26import Complex
27import Data.List(transpose,intersperse)
28import Foreign(Storable)
29
30------------------------------------------------------------------
31
32instance (Show a, Field a) => (Show (Matrix a)) where
33 show m = (sizes++) . dsp . map (map show) . toLists $ m
34 where sizes = "("++show (rows m)++"><"++show (cols m)++")\n"
35
36dsp as = (++" ]") . (" ["++) . init . drop 2 . unlines . map (" , "++) . map unwords' $ transpose mtp
37 where
38 mt = transpose as
39 longs = map (maximum . map length) mt
40 mtp = zipWith (\a b -> map (pad a) b) longs mt
41 pad n str = replicate (n - length str) ' ' ++ str
42 unwords' = concat . intersperse ", "
43
44instance (Show a, Storable a) => (Show (Vector a)) where
45 show v = (show (dim v))++" |> " ++ show (toList v)
46
47------------------------------------------------------------------
27 48
28adaptScalar f1 f2 f3 x y 49adaptScalar f1 f2 f3 x y
29 | dim x == 1 = f1 (x@>0) y 50 | dim x == 1 = f1 (x@>0) y
diff --git a/lib/Numeric/LinearAlgebra/Interface.hs b/lib/Numeric/LinearAlgebra/Interface.hs
index 5bd207a..fd076ec 100644
--- a/lib/Numeric/LinearAlgebra/Interface.hs
+++ b/lib/Numeric/LinearAlgebra/Interface.hs
@@ -2,14 +2,14 @@
2----------------------------------------------------------------------------- 2-----------------------------------------------------------------------------
3{- | 3{- |
4Module : Numeric.LinearAlgebra.Interface 4Module : Numeric.LinearAlgebra.Interface
5Copyright : (c) Alberto Ruiz 2006 5Copyright : (c) Alberto Ruiz 2007
6License : GPL-style 6License : GPL-style
7 7
8Maintainer : Alberto Ruiz (aruiz at um dot es) 8Maintainer : Alberto Ruiz (aruiz at um dot es)
9Stability : provisional 9Stability : provisional
10Portability : portable 10Portability : portable
11 11
12Operators for frequent operations. 12(Very provisional) operators for frequent operations.
13 13
14-} 14-}
15----------------------------------------------------------------------------- 15-----------------------------------------------------------------------------
diff --git a/lib/Numeric/LinearAlgebra/Linear.hs b/lib/Numeric/LinearAlgebra/Linear.hs
index a3a0183..3017936 100644
--- a/lib/Numeric/LinearAlgebra/Linear.hs
+++ b/lib/Numeric/LinearAlgebra/Linear.hs
@@ -25,7 +25,7 @@ import Data.Packed
25import Numeric.GSL.Vector 25import Numeric.GSL.Vector
26import Complex 26import Complex
27 27
28-- | basic optimized operations 28-- | A generic interface for vectors and matrices to a few element-by-element functions in Numeric.GSL.Vector.
29class (Container c e) => Linear c e where 29class (Container c e) => Linear c e where
30 scale :: e -> c e -> c e 30 scale :: e -> c e -> c e
31 addConstant :: e -> c e -> c e 31 addConstant :: e -> c e -> c e