qhull-0.1.0.1: src/ConvexHull/BiTruncatedTesseract.hs
module ConvexHull.BiTruncatedTesseract
where
import Math.Combinat.Permutations as P
import Data.List
signsAll :: (Eq a, Num a) => [[a]] -> [[a]]
signsAll = concatMap signs
where
signs :: (Eq a, Num a) => [a] -> [[a]]
signs = mapM (\x -> nub [x,-x])
vertices :: ([Double], Bool) -> [[Double]]
vertices (coords, allperms) =
map (map (/ sqrt 18)) $ signsAll $
nub $ zipWith permuteList perms (replicate 24 coords)
where perms = filter (if allperms then const True else isEvenPermutation) (P.permutations 4)
biTruncatedTesseract :: [[Double]]
biTruncatedTesseract = concatMap vertices
[ ([0, sqrt 2, 2 * sqrt 2, 2 * sqrt 2], True) ]