packages feed

circle-packing-0.1.0.1: benchmark.hs

import Criterion.Main
import Optimisation.CirclePacking

fib :: Int -> Int
fib 0 = 0
fib 1 = 1
fib n = fib (n - 1) + fib (n - 2)

maxSize = 9

sets = 
    [ ("Widly varying", take (2^n) $ [1,2..]) | n <- [4..maxSize] ] ++
    [ ("Slightly varying", take (2^n) $ cycle [1,1.1..10]) | n <- [4..maxSize] ] ++
    [ ("Equal size", take (2^n) $ repeat 1) | n <- [4..maxSize] ]

proc cs = packCircles id cs

main = defaultMain $
    [ bench (desc ++ " (" ++ show (length c) ++ " circles)") $ nf proc c |
        (desc, c) <- sets ]