module Numeric.LAPACK.ComfortArray.Demo where import qualified Numeric.LAPACK.ComfortArray.Float as Lapack import Numeric.Netlib.ComfortArray.Utility (ZeroInt) import qualified Data.Array.Comfort.Storable.Mutable as MutArray import qualified Data.Array.Comfort.Storable as Array import qualified Data.Array.Comfort.Shape as Shape import Data.Array.Comfort.Storable (Array) import Control.Monad (liftM2) gels :: Array (ZeroInt,ZeroInt) Float -> Array (ZeroInt,ZeroInt) Float -> IO (Array (ZeroInt,ZeroInt) Float, Array (ZeroInt,ZeroInt) Float) gels a b = do ioa <- MutArray.thaw a iob <- MutArray.thaw b print =<< Lapack.gels 'N' 3 ioa iob 100 liftM2 (,) (MutArray.freeze ioa) (MutArray.freeze iob) main :: IO () main = let z3 = Shape.ZeroBased 3 in print =<< gels (Array.fromList (z3,z3) [1,2,3,0,1,4,0,0,1]) (Array.fromList (z3,z3) [1,0,0,0,1,0,0,0,1])