module Numeric.LAPACK.CArray.Demo where import qualified Numeric.LAPACK.CArray.Float as Lapack import qualified Data.Array.IOCArray as IOCArray import qualified Data.Array.CArray as CArray import Data.Array.CArray (CArray) import Control.Monad (liftM2) gels :: CArray (Int,Int) Float -> CArray (Int,Int) Float -> IO (CArray (Int,Int) Float, CArray (Int,Int) Float) gels a b = do ioa <- IOCArray.thaw a iob <- IOCArray.thaw b print =<< Lapack.gels 'N' 3 ioa iob 100 liftM2 (,) (IOCArray.freeze ioa) (IOCArray.freeze iob) main :: IO () main = print =<< gels (CArray.listArray ((0,0),(2,2)) [1,2,3,0,1,4,0,0,1]) (CArray.listArray ((0,0),(2,2)) [1,0,0,0,1,0,0,0,1])