summaryrefslogtreecommitdiff
path: root/lib/Data
diff options
context:
space:
mode:
authorAlberto Ruiz <aruiz@um.es>2010-04-23 19:37:56 +0000
committerAlberto Ruiz <aruiz@um.es>2010-04-23 19:37:56 +0000
commit0ce6e74a5375b8d7ee1d95826252d8ff622f2cb4 (patch)
treecab666c674543adf0908ea5bc42ec9e9d35a9ea1 /lib/Data
parentf7cbac4bb8d8fc1c4210a548674c222b691f8e9c (diff)
app5-10, some SCC, and other minor changes
Diffstat (limited to 'lib/Data')
-rw-r--r--lib/Data/Packed/Development.hs1
-rw-r--r--lib/Data/Packed/Internal/Common.hs31
-rw-r--r--lib/Data/Packed/Matrix.hs15
-rw-r--r--lib/Data/Packed/Random.hs1
4 files changed, 27 insertions, 21 deletions
diff --git a/lib/Data/Packed/Development.hs b/lib/Data/Packed/Development.hs
index 9f723b4..3eb7552 100644
--- a/lib/Data/Packed/Development.hs
+++ b/lib/Data/Packed/Development.hs
@@ -20,6 +20,7 @@ module Data.Packed.Development (
20 Adapt, 20 Adapt,
21 vec, mat, 21 vec, mat,
22 app1, app2, app3, app4, 22 app1, app2, app3, app4,
23 app5, app6, app7, app8, app9, app10,
23 MatrixOrder(..), orderOf, cmat, fmat, 24 MatrixOrder(..), orderOf, cmat, fmat,
24 unsafeFromForeignPtr, 25 unsafeFromForeignPtr,
25 unsafeToForeignPtr, 26 unsafeToForeignPtr,
diff --git a/lib/Data/Packed/Internal/Common.hs b/lib/Data/Packed/Internal/Common.hs
index 455b176..c348575 100644
--- a/lib/Data/Packed/Internal/Common.hs
+++ b/lib/Data/Packed/Internal/Common.hs
@@ -17,6 +17,7 @@
17module Data.Packed.Internal.Common( 17module Data.Packed.Internal.Common(
18 Adapt, 18 Adapt,
19 app1, app2, app3, app4, 19 app1, app2, app3, app4,
20 app5, app6, app7, app8, app9, app10,
20 (//), check, mbCatch, 21 (//), check, mbCatch,
21 splitEvery, common, compatdim, 22 splitEvery, common, compatdim,
22 fi, 23 fi,
@@ -69,9 +70,15 @@ fi :: Int -> CInt
69fi = fromIntegral 70fi = fromIntegral
70 71
71-- hmm.. 72-- hmm..
72ww2 w1 o1 w2 o2 f = w1 o1 $ \a1 -> w2 o2 $ \a2 -> f a1 a2 73ww2 w1 o1 w2 o2 f = w1 o1 $ w2 o2 . f
73ww3 w1 o1 w2 o2 w3 o3 f = w1 o1 $ \a1 -> ww2 w2 o2 w3 o3 (f a1) 74ww3 w1 o1 w2 o2 w3 o3 f = w1 o1 $ ww2 w2 o2 w3 o3 . f
74ww4 w1 o1 w2 o2 w3 o3 w4 o4 f = w1 o1 $ \a1 -> ww3 w2 o2 w3 o3 w4 o4 (f a1) 75ww4 w1 o1 w2 o2 w3 o3 w4 o4 f = w1 o1 $ ww3 w2 o2 w3 o3 w4 o4 . f
76ww5 w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 f = w1 o1 $ ww4 w2 o2 w3 o3 w4 o4 w5 o5 . f
77ww6 w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 f = w1 o1 $ ww5 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 . f
78ww7 w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 f = w1 o1 $ ww6 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 . f
79ww8 w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 w8 o8 f = w1 o1 $ ww7 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 w8 o8 . f
80ww9 w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 w8 o8 w9 o9 f = w1 o1 $ ww8 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 w8 o8 w9 o9 . f
81ww10 w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 w8 o8 w9 o9 w10 o10 f = w1 o1 $ ww9 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 w8 o8 w9 o9 w10 o10 . f
75 82
76type Adapt f t r = t -> ((f -> r) -> IO()) -> IO() 83type Adapt f t r = t -> ((f -> r) -> IO()) -> IO()
77 84
@@ -115,8 +122,22 @@ app1 f w1 o1 s = w1 o1 $ \a1 -> f // a1 // check s
115app2 f w1 o1 w2 o2 s = ww2 w1 o1 w2 o2 $ \a1 a2 -> f // a1 // a2 // check s 122app2 f w1 o1 w2 o2 s = ww2 w1 o1 w2 o2 $ \a1 a2 -> f // a1 // a2 // check s
116app3 f w1 o1 w2 o2 w3 o3 s = ww3 w1 o1 w2 o2 w3 o3 $ 123app3 f w1 o1 w2 o2 w3 o3 s = ww3 w1 o1 w2 o2 w3 o3 $
117 \a1 a2 a3 -> f // a1 // a2 // a3 // check s 124 \a1 a2 a3 -> f // a1 // a2 // a3 // check s
118app4 f w1 o1 w2 o2 w3 o3 w4 o4 s = ww4 w1 o1 w2 o2 w3 o3 w4 o4 $ 125app4 f w1 o1 w2 o2 w3 o3 w4 o4 s = ww4 w1 o1 w2 o2 w3 o3 w4 o4 $
119 \a1 a2 a3 a4 -> f // a1 // a2 // a3 // a4 // check s 126 \a1 a2 a3 a4 -> f // a1 // a2 // a3 // a4 // check s
127app5 f w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 s = ww5 w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 $
128 \a1 a2 a3 a4 a5 -> f // a1 // a2 // a3 // a4 // a5 // check s
129app6 f w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 s = ww6 w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 $
130 \a1 a2 a3 a4 a5 a6 -> f // a1 // a2 // a3 // a4 // a5 // a6 // check s
131app7 f w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 s = ww7 w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 $
132 \a1 a2 a3 a4 a5 a6 a7 -> f // a1 // a2 // a3 // a4 // a5 // a6 // a7 // check s
133app8 f w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 w8 o8 s = ww8 w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 w8 o8 $
134 \a1 a2 a3 a4 a5 a6 a7 a8 -> f // a1 // a2 // a3 // a4 // a5 // a6 // a7 // a8 // check s
135app9 f w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 w8 o8 w9 o9 s = ww9 w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 w8 o8 w9 o9 $
136 \a1 a2 a3 a4 a5 a6 a7 a8 a9 -> f // a1 // a2 // a3 // a4 // a5 // a6 // a7 // a8 // a9 // check s
137app10 f w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 w8 o8 w9 o9 w10 o10 s = ww10 w1 o1 w2 o2 w3 o3 w4 o4 w5 o5 w6 o6 w7 o7 w8 o8 w9 o9 w10 o10 $
138 \a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 -> f // a1 // a2 // a3 // a4 // a5 // a6 // a7 // a8 // a9 // a10 // check s
139
140
120 141
121-- GSL error codes are <= 1024 142-- GSL error codes are <= 1024
122-- | error codes for the auxiliary functions required by the wrappers 143-- | error codes for the auxiliary functions required by the wrappers
@@ -151,7 +172,7 @@ check msg f = do
151 return () 172 return ()
152 173
153-- | description of GSL error codes 174-- | description of GSL error codes
154foreign import ccall "auxi.h gsl_strerror" gsl_strerror :: CInt -> IO (Ptr CChar) 175foreign import ccall "gsl_strerror" gsl_strerror :: CInt -> IO (Ptr CChar)
155 176
156-- | Error capture and conversion to Maybe 177-- | Error capture and conversion to Maybe
157mbCatch :: IO x -> IO (Maybe x) 178mbCatch :: IO x -> IO (Maybe x)
diff --git a/lib/Data/Packed/Matrix.hs b/lib/Data/Packed/Matrix.hs
index d91a089..4fdd2c6 100644
--- a/lib/Data/Packed/Matrix.hs
+++ b/lib/Data/Packed/Matrix.hs
@@ -292,21 +292,6 @@ formatScaled dec t = "E"++show o++"\n" ++ ss
292 o = floor $ maximum $ map (logBase 10 . abs) $ toList $ flatten t 292 o = floor $ maximum $ map (logBase 10 . abs) $ toList $ flatten t
293 fmt = '%':show (dec+3) ++ '.':show dec ++"f" 293 fmt = '%':show (dec+3) ++ '.':show dec ++"f"
294 294
295{- | Show a vector using a function for showing matrices.
296
297@disp = putStr . vecdisp (dispf 2)
298
299\> disp (linspace 10 (0,1))
30010 |> 0.00 0.11 0.22 0.33 0.44 0.56 0.67 0.78 0.89 1.00
301@
302-}
303vecdisp :: (Element t) => (Matrix t -> String) -> Vector t -> String
304vecdisp f v
305 = ((show (dim v) ++ " |> ") ++) . (++"\n")
306 . unwords . lines . tail . dropWhile (not . (`elem` " \n"))
307 . f . trans . reshape 1
308 $ v
309
310-- | Tool to display matrices with latex syntax. 295-- | Tool to display matrices with latex syntax.
311latexFormat :: String -- ^ type of braces: \"matrix\", \"bmatrix\", \"pmatrix\", etc. 296latexFormat :: String -- ^ type of braces: \"matrix\", \"bmatrix\", \"pmatrix\", etc.
312 -> String -- ^ Formatted matrix, with elements separated by spaces and newlines 297 -> String -- ^ Formatted matrix, with elements separated by spaces and newlines
diff --git a/lib/Data/Packed/Random.hs b/lib/Data/Packed/Random.hs
index 7e0f91f..260e4dc 100644
--- a/lib/Data/Packed/Random.hs
+++ b/lib/Data/Packed/Random.hs
@@ -48,7 +48,6 @@ uniformSample :: Int -- ^ seed
48uniformSample seed n rgs = m where 48uniformSample seed n rgs = m where
49 (as,bs) = unzip rgs 49 (as,bs) = unzip rgs
50 a = fromList as 50 a = fromList as
51 b = fromList bs
52 cs = zipWith subtract as bs 51 cs = zipWith subtract as bs
53 d = dim a 52 d = dim a
54 dat = toRows $ reshape n $ randomVector seed Uniform (n*d) 53 dat = toRows $ reshape n $ randomVector seed Uniform (n*d)