diff options
Diffstat (limited to 'lib/Data')
-rw-r--r-- | lib/Data/Packed/Internal/Matrix.hs | 5 | ||||
-rw-r--r-- | lib/Data/Packed/Matrix.hs | 6 |
2 files changed, 10 insertions, 1 deletions
diff --git a/lib/Data/Packed/Internal/Matrix.hs b/lib/Data/Packed/Internal/Matrix.hs index e66817e..5892f1c 100644 --- a/lib/Data/Packed/Internal/Matrix.hs +++ b/lib/Data/Packed/Internal/Matrix.hs | |||
@@ -255,22 +255,27 @@ class (Storable a, Floating a) => Element a where | |||
255 | transdata = transdata' | 255 | transdata = transdata' |
256 | constantD :: a -> Int -> Vector a | 256 | constantD :: a -> Int -> Vector a |
257 | constantD = constant' | 257 | constantD = constant' |
258 | ctrans' :: Matrix a -> Matrix a | ||
258 | 259 | ||
259 | instance Element Float where | 260 | instance Element Float where |
260 | transdata = transdataAux ctransF | 261 | transdata = transdataAux ctransF |
261 | constantD = constantAux cconstantF | 262 | constantD = constantAux cconstantF |
263 | ctrans' = trans | ||
262 | 264 | ||
263 | instance Element Double where | 265 | instance Element Double where |
264 | transdata = transdataAux ctransR | 266 | transdata = transdataAux ctransR |
265 | constantD = constantAux cconstantR | 267 | constantD = constantAux cconstantR |
268 | ctrans' = trans | ||
266 | 269 | ||
267 | instance Element (Complex Float) where | 270 | instance Element (Complex Float) where |
268 | transdata = transdataAux ctransQ | 271 | transdata = transdataAux ctransQ |
269 | constantD = constantAux cconstantQ | 272 | constantD = constantAux cconstantQ |
273 | ctrans' = liftMatrix (mapVector conjugate) . trans | ||
270 | 274 | ||
271 | instance Element (Complex Double) where | 275 | instance Element (Complex Double) where |
272 | transdata = transdataAux ctransC | 276 | transdata = transdataAux ctransC |
273 | constantD = constantAux cconstantC | 277 | constantD = constantAux cconstantC |
278 | ctrans' = liftMatrix (mapVector conjugate) . trans | ||
274 | 279 | ||
275 | ------------------------------------------------------------------- | 280 | ------------------------------------------------------------------- |
276 | 281 | ||
diff --git a/lib/Data/Packed/Matrix.hs b/lib/Data/Packed/Matrix.hs index 03e5889..af937f4 100644 --- a/lib/Data/Packed/Matrix.hs +++ b/lib/Data/Packed/Matrix.hs | |||
@@ -22,7 +22,7 @@ module Data.Packed.Matrix ( | |||
22 | Element, | 22 | Element, |
23 | Matrix,rows,cols, | 23 | Matrix,rows,cols, |
24 | (><), | 24 | (><), |
25 | trans, | 25 | trans, ctrans, |
26 | reshape, flatten, | 26 | reshape, flatten, |
27 | fromLists, toLists, buildMatrix, | 27 | fromLists, toLists, buildMatrix, |
28 | (@@>), | 28 | (@@>), |
@@ -268,6 +268,10 @@ asRow v = reshape (dim v) v | |||
268 | asColumn :: Element a => Vector a -> Matrix a | 268 | asColumn :: Element a => Vector a -> Matrix a |
269 | asColumn v = reshape 1 v | 269 | asColumn v = reshape 1 v |
270 | 270 | ||
271 | -- | conjugate transpose | ||
272 | ctrans :: Element e => Matrix e -> Matrix e | ||
273 | ctrans = ctrans' | ||
274 | |||
271 | 275 | ||
272 | {- | creates a Matrix of the specified size using the supplied function to | 276 | {- | creates a Matrix of the specified size using the supplied function to |
273 | to map the row/column position to the value at that row/column position. | 277 | to map the row/column position to the value at that row/column position. |