static-tensor-0.1.0.0: bench/MatMul/Tensor.hs
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module MatMul.Tensor where
import Control.DeepSeq
import Data.Matrix.Static
import Data.Tensor.Static
import qualified Data.Matrix.Static as M
$(M.genMatrixInstance 4 4 ''Float)
instance NFData (Matrix 4 4 Float) where
rnf (Tensor'4'4'Float {}) = ()
{-# INLINE rnf #-}
mkMat :: [Float] -> Matrix 4 4 Float
mkMat = unsafeFromList
mult :: Matrix 4 4 Float -> Matrix 4 4 Float -> Matrix 4 4 Float
mult = M.mult