diff options
author | Alberto Ruiz <aruiz@um.es> | 2007-11-23 13:25:42 +0000 |
---|---|---|
committer | Alberto Ruiz <aruiz@um.es> | 2007-11-23 13:25:42 +0000 |
commit | 30fdf02aff2ac1c4da2bb9292fc08cc8330580d0 (patch) | |
tree | 82b062214626c20922959c82581decb3df2ba5ec /lib/Data/Packed/Matrix.hs | |
parent | 48139eb50c9052406839ee8375e378374e973207 (diff) |
removed many -Wall warnings
Diffstat (limited to 'lib/Data/Packed/Matrix.hs')
-rw-r--r-- | lib/Data/Packed/Matrix.hs | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/lib/Data/Packed/Matrix.hs b/lib/Data/Packed/Matrix.hs index 7b6bf29..62d28b1 100644 --- a/lib/Data/Packed/Matrix.hs +++ b/lib/Data/Packed/Matrix.hs | |||
@@ -33,10 +33,7 @@ module Data.Packed.Matrix ( | |||
33 | ) where | 33 | ) where |
34 | 34 | ||
35 | import Data.Packed.Internal | 35 | import Data.Packed.Internal |
36 | import Foreign(Storable) | ||
37 | import Complex | ||
38 | import Data.Packed.Vector | 36 | import Data.Packed.Vector |
39 | import Numeric(showGFloat) | ||
40 | import Data.List(transpose,intersperse) | 37 | import Data.List(transpose,intersperse) |
41 | import Data.Array | 38 | import Data.Array |
42 | 39 | ||
@@ -89,8 +86,8 @@ diagRect s r c | |||
89 | | dim s < min r c = error "diagRect" | 86 | | dim s < min r c = error "diagRect" |
90 | | r == c = diag s | 87 | | r == c = diag s |
91 | | r < c = trans $ diagRect s c r | 88 | | r < c = trans $ diagRect s c r |
92 | | r > c = joinVert [diag s , zeros (r-c,c)] | 89 | | otherwise = joinVert [diag s , zeros (r-c,c)] |
93 | where zeros (r,c) = reshape c $ constantD 0 (r*c) | 90 | where zeros (r',c') = reshape c' $ constantD 0 (r'*c') |
94 | 91 | ||
95 | -- | extracts the diagonal from a rectangular matrix | 92 | -- | extracts the diagonal from a rectangular matrix |
96 | takeDiag :: (Element t) => Matrix t -> Vector t | 93 | takeDiag :: (Element t) => Matrix t -> Vector t |
@@ -123,16 +120,16 @@ r >< c = f where | |||
123 | 120 | ||
124 | -- | Creates a matrix with the first n rows of another matrix | 121 | -- | Creates a matrix with the first n rows of another matrix |
125 | takeRows :: Element t => Int -> Matrix t -> Matrix t | 122 | takeRows :: Element t => Int -> Matrix t -> Matrix t |
126 | takeRows n mat = subMatrix (0,0) (n, cols mat) mat | 123 | takeRows n mt = subMatrix (0,0) (n, cols mt) mt |
127 | -- | Creates a copy of a matrix without the first n rows | 124 | -- | Creates a copy of a matrix without the first n rows |
128 | dropRows :: Element t => Int -> Matrix t -> Matrix t | 125 | dropRows :: Element t => Int -> Matrix t -> Matrix t |
129 | dropRows n mat = subMatrix (n,0) (rows mat - n, cols mat) mat | 126 | dropRows n mt = subMatrix (n,0) (rows mt - n, cols mt) mt |
130 | -- |Creates a matrix with the first n columns of another matrix | 127 | -- |Creates a matrix with the first n columns of another matrix |
131 | takeColumns :: Element t => Int -> Matrix t -> Matrix t | 128 | takeColumns :: Element t => Int -> Matrix t -> Matrix t |
132 | takeColumns n mat = subMatrix (0,0) (rows mat, n) mat | 129 | takeColumns n mt = subMatrix (0,0) (rows mt, n) mt |
133 | -- | Creates a copy of a matrix without the first n columns | 130 | -- | Creates a copy of a matrix without the first n columns |
134 | dropColumns :: Element t => Int -> Matrix t -> Matrix t | 131 | dropColumns :: Element t => Int -> Matrix t -> Matrix t |
135 | dropColumns n mat = subMatrix (0,n) (rows mat, cols mat - n) mat | 132 | dropColumns n mt = subMatrix (0,n) (rows mt, cols mt - n) mt |
136 | 133 | ||
137 | ---------------------------------------------------------------- | 134 | ---------------------------------------------------------------- |
138 | 135 | ||
@@ -164,6 +161,7 @@ fromArray2D m = (r><c) (elems m) | |||
164 | c = c1-c0+1 | 161 | c = c1-c0+1 |
165 | 162 | ||
166 | ------------------------------------------------------ | 163 | ------------------------------------------------------ |
164 | {- | ||
167 | -- shows a Double with n digits after the decimal point | 165 | -- shows a Double with n digits after the decimal point |
168 | shf :: (RealFloat a) => Int -> a -> String | 166 | shf :: (RealFloat a) => Int -> a -> String |
169 | shf dec n | abs n < 1e-10 = "0." | 167 | shf dec n | abs n < 1e-10 = "0." |
@@ -177,6 +175,8 @@ shfc n z@ (a:+b) | |||
177 | | b > 0 = shf n a ++"+"++shf n b ++"i" | 175 | | b > 0 = shf n a ++"+"++shf n b ++"i" |
178 | | otherwise = shf n a ++shf n b ++"i" | 176 | | otherwise = shf n a ++shf n b ++"i" |
179 | 177 | ||
178 | -} | ||
179 | |||
180 | dsp' :: String -> [[String]] -> String | 180 | dsp' :: String -> [[String]] -> String |
181 | dsp' sep as = unlines . map unwords' $ transpose mtp where | 181 | dsp' sep as = unlines . map unwords' $ transpose mtp where |
182 | mt = transpose as | 182 | mt = transpose as |
@@ -196,6 +196,7 @@ this function the user can easily define any desired display function: | |||
196 | format :: (Element t) => String -> (t -> String) -> Matrix t -> String | 196 | format :: (Element t) => String -> (t -> String) -> Matrix t -> String |
197 | format sep f m = dsp' sep . map (map f) . toLists $ m | 197 | format sep f m = dsp' sep . map (map f) . toLists $ m |
198 | 198 | ||
199 | {- | ||
199 | disp m f = putStrLn $ "matrix ("++show (rows m) ++"x"++ show (cols m) ++")\n"++format " | " f m | 200 | disp m f = putStrLn $ "matrix ("++show (rows m) ++"x"++ show (cols m) ++")\n"++format " | " f m |
200 | 201 | ||
201 | dispR :: Int -> Matrix Double -> IO () | 202 | dispR :: Int -> Matrix Double -> IO () |
@@ -203,6 +204,7 @@ dispR d m = disp m (shf d) | |||
203 | 204 | ||
204 | dispC :: Int -> Matrix (Complex Double) -> IO () | 205 | dispC :: Int -> Matrix (Complex Double) -> IO () |
205 | dispC d m = disp m (shfc d) | 206 | dispC d m = disp m (shfc d) |
207 | -} | ||
206 | 208 | ||
207 | -- | creates a matrix from a table of numbers. | 209 | -- | creates a matrix from a table of numbers. |
208 | readMatrix :: String -> Matrix Double | 210 | readMatrix :: String -> Matrix Double |
@@ -211,7 +213,7 @@ readMatrix = fromLists . map (map read). map words . filter (not.null) . lines | |||
211 | -- | rearranges the rows of a matrix according to the order given in a list of integers. | 213 | -- | rearranges the rows of a matrix according to the order given in a list of integers. |
212 | extractRows :: Element t => [Int] -> Matrix t -> Matrix t | 214 | extractRows :: Element t => [Int] -> Matrix t -> Matrix t |
213 | extractRows l m = fromRows $ extract (toRows $ m) l | 215 | extractRows l m = fromRows $ extract (toRows $ m) l |
214 | where extract l is = [l!!i |i<-is] | 216 | where extract l' is = [l'!!i |i<-is] |
215 | 217 | ||
216 | {- | creates matrix by repetition of a matrix a given number of rows and columns | 218 | {- | creates matrix by repetition of a matrix a given number of rows and columns |
217 | 219 | ||