{-# LANGUAGE ScopedTypeVariables #-}
module Data.Array.Dynamic.MatMul(matMul) where
import GHC.Stack
import Data.Array.Convert
import Data.Array.Dynamic
import qualified Data.Array.DynamicS.MatMul as S
import Numeric.LinearAlgebra as N

matMul :: forall a .
          (HasCallStack, N.Numeric a) =>
          Array a -> Array a -> Array a
matMul :: Array a -> Array a -> Array a
matMul Array a
x Array a
y = Array a -> Array a
forall a b. Convert a b => a -> b
convert (Array a -> Array a) -> Array a -> Array a
forall a b. (a -> b) -> a -> b
$ Array a -> Array a -> Array a
forall a.
(HasCallStack, Numeric a) =>
Array a -> Array a -> Array a
S.matMul (Array a -> Array a
forall a b. Convert a b => a -> b
convert Array a
x) (Array a -> Array a
forall a b. Convert a b => a -> b
convert Array a
y)