HaskellForMaths-0.3.3: Math/Test/TAlgebras/TMatrix.hs
-- Copyright (c) 2011, David Amos. All rights reserved.
{-# LANGUAGE FlexibleInstances, TypeSynonymInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
module Math.Test.TAlgebras.TMatrix where
import Test.QuickCheck
import Math.Algebra.Field.Base
import Math.Algebras.VectorSpace
import Math.Algebras.TensorProduct
import Math.Algebras.Matrix
import Math.Test.TAlgebras.TVectorSpace
import Math.Test.TAlgebras.TStructures
import Math.Algebras.Structures -- not really needed
instance Arbitrary Mat2 where
arbitrary = elements [E2 1 1, E2 1 2, E2 2 1, E2 2 2]
instance Arbitrary Mat2' where
arbitrary = elements [E2' 1 1, E2' 1 2, E2' 2 1, E2' 2 2]
prop_Algebra_Mat2 (k,x,y,z) = prop_Algebra (k,x,y,z)
where types = (k,x,y,z) :: (Q, Vect Q Mat2, Vect Q Mat2, Vect Q Mat2)
prop_Coalgebra_Mat2' x = prop_Coalgebra x
where types = x :: Vect Q Mat2'