packages feed

HaskellForMaths-0.1.8: Math/Test/TDesign.hs

-- Copyright (c) David Amos, 2008. All rights reserved.

{-# LANGUAGE FlexibleInstances #-}

module Math.Test.TDesign where

import qualified Data.List as L

-- import PermutationGroup as P
import Math.Algebra.Field.Base
import Math.Algebra.Field.Extension
-- import Graph as G
-- import StronglyRegularGraph as SRG
import Math.Combinatorics.Design as D
import Math.Algebra.Group.SchreierSims as SS
-- import LinearAlgebra hiding ( (^-) )


factorial n = product [1..n]

choose n m | m <= n = product [m+1..n] `div` product [1..n-m]

test = and [designParamsTest, designAutTest]


designParamsTest = and
    [designParams (ag2 f2) == Just (2,(4,2,1))
    ,designParams (ag2 f3) == Just (2,(9,3,1))
    ,designParams (ag2 f4) == Just (2,(16,4,1))
    ,designParams (pg2 f2) == Just (2,(7,3,1))
    ,designParams (pg2 f3) == Just (2,(13,4,1))
    ,designParams (pg2 f4) == Just (2,(21,5,1))
    ]

designAutTest = all (uncurry (==)) designAutTests

designAutTests =
    [(SS.order $ designAuts $ pg2 f2, 168) -- this is L3(2), see Atlas
    ,(SS.order $ designAuts $ pg2 f3, 5616) -- this is L3(3)
    ,(SS.order $ designAuts $ pg2 f4, 120960) -- this is S3.L3(4)
--    ,(SS.order $ designAuts $ pg2 f5, 372000) -- this is L3(5)
    ]