From 8053285df72177dab6b6d86241307d743fa0025f Mon Sep 17 00:00:00 2001 From: Alberto Ruiz Date: Mon, 22 Jun 2015 11:54:16 +0200 Subject: implicit rowOrder --- packages/base/src/Internal/LAPACK.hs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'packages/base/src/Internal/LAPACK.hs') diff --git a/packages/base/src/Internal/LAPACK.hs b/packages/base/src/Internal/LAPACK.hs index 3a9abbb..fc9e3ad 100644 --- a/packages/base/src/Internal/LAPACK.hs +++ b/packages/base/src/Internal/LAPACK.hs @@ -1,4 +1,5 @@ {-# LANGUAGE TypeOperators #-} +{-# LANGUAGE ViewPatterns #-} ----------------------------------------------------------------------------- -- | @@ -49,11 +50,11 @@ foreign import ccall unsafe "multiplyQ" cgemmc :: CInt -> CInt -> TMMM Q foreign import ccall unsafe "multiplyI" c_multiplyI :: I -> I ::> I ::> I ::> Ok foreign import ccall unsafe "multiplyL" c_multiplyL :: Z -> Z ::> Z ::> Z ::> Ok -isT Matrix{order = ColumnMajor} = 0 -isT Matrix{order = RowMajor} = 1 +isT (rowOrder -> False) = 0 +isT _ = 1 -tt x@Matrix{order = ColumnMajor} = x -tt x@Matrix{order = RowMajor} = trans x +tt x@(rowOrder -> False) = x +tt x = trans x multiplyAux f st a b = unsafePerformIO $ do when (cols a /= rows b) $ error $ "inconsistent dimensions in matrix product "++ -- cgit v1.2.3