summaryrefslogtreecommitdiff
path: root/packages/base/src/Internal/Numeric.hs
diff options
context:
space:
mode:
Diffstat (limited to 'packages/base/src/Internal/Numeric.hs')
-rw-r--r--packages/base/src/Internal/Numeric.hs23
1 files changed, 19 insertions, 4 deletions
diff --git a/packages/base/src/Internal/Numeric.hs b/packages/base/src/Internal/Numeric.hs
index efcde2c..4d34885 100644
--- a/packages/base/src/Internal/Numeric.hs
+++ b/packages/base/src/Internal/Numeric.hs
@@ -782,9 +782,6 @@ buildV n f = fromList [f k | k <- ks]
782 where ks = map fromIntegral [0 .. (n-1)] 782 where ks = map fromIntegral [0 .. (n-1)]
783 783
784-------------------------------------------------------- 784--------------------------------------------------------
785-- | conjugate transpose
786ctrans :: (Container Vector e, Element e) => Matrix e -> Matrix e
787ctrans = liftMatrix conj' . trans
788 785
789-- | Creates a square matrix with a given diagonal. 786-- | Creates a square matrix with a given diagonal.
790diag :: (Num a, Element a) => Vector a -> Matrix a 787diag :: (Num a, Element a) => Vector a -> Matrix a
@@ -843,6 +840,24 @@ selectCV f c l e t = f (toInt c') l' e' t'
843 840
844-------------------------------------------------------------------------------- 841--------------------------------------------------------------------------------
845 842
843class CTrans t
844 where
845 ctrans :: Matrix t -> Matrix t
846 ctrans = trans
847
848instance CTrans Float
849instance CTrans R
850instance CTrans I
851instance CTrans Z
852
853instance CTrans C
854 where
855 ctrans = conj . trans
856
857instance CTrans (Complex Float)
858 where
859 ctrans = conj . trans
860
846class Transposable m mt | m -> mt, mt -> m 861class Transposable m mt | m -> mt, mt -> m
847 where 862 where
848 -- | conjugate transpose 863 -- | conjugate transpose
@@ -850,7 +865,7 @@ class Transposable m mt | m -> mt, mt -> m
850 -- | transpose 865 -- | transpose
851 tr' :: m -> mt 866 tr' :: m -> mt
852 867
853instance (Container Vector t) => Transposable (Matrix t) (Matrix t) 868instance (CTrans t, Container Vector t) => Transposable (Matrix t) (Matrix t)
854 where 869 where
855 tr = ctrans 870 tr = ctrans
856 tr' = trans 871 tr' = trans