geomancy-0.4.0.0: bench/Bench/Common.hs
module Bench.Common
( clones
, chain
) where
import qualified Data.List as List
clones :: Applicative f => Int -> a -> b -> f ([a], [b])
clones n geo lin = (,) <$> genMat4s <*> genM44s
where
genMat4s = pure $! replicate n geo
genM44s = pure $! replicate n lin
chain :: (a -> a) -> a -> Int -> a
chain f x0 n = List.foldl' (\x _ -> f x) x0 [1 .. n]