{-| Module : Main Description : Test of Multilinear library Copyright : (c) Artur M. Brodzki, 2018 License : BSD3 Maintainer : artur@brodzki.org Stability : experimental Portability : Windows/POSIX -} module Main ( main ) where import Control.DeepSeq import Multilinear.Generic import Multilinear.Class import qualified Multilinear.Matrix as Matrix import qualified Multilinear.Vector as Vector v_i :: Tensor Double v_i = Vector.fromIndices "i" 10 fromIntegral v_j :: Tensor Double v_j = Vector.fromIndices "j" 5 (\x -> fromIntegral x + 5.0) v_k :: Tensor Double v_k = Vector.fromIndices "k" 10 fromIntegral m_ik :: Tensor Double m_ik = Matrix.fromIndices "ik" 10 10 (\i j -> fromIntegral i + fromIntegral j) main :: IO () main = do putStr "v^i = " print v_i putStr "v^j = " print v_j putStr "v^k = " print v_k putStr "Matrix m_ji = v^j + v_i = " let m = v_j + (v_i \/ "i") print m putStr "m_ji * v^i = " print $ m * v_i putStr "m_ji * v^k = " print $ m * v_k putStr "Matrix m_ik = " print m_ik putStr "m_ik * v^k = " print $ m_ik * v_k putStr "m_ik |>>> i = " print $ m_ik |>>> "i" putStr "m_ji * m_ik" print $ m * m_ik