packages feed

assignment-0.0.1.0: bench/memory/Main.hs

module Main (main) where

import Data.Algorithm.Assignment (assign)
import Weigh

main :: IO ()
main = mainWith $ do
  setColumns [Case, Allocated, GCs, Max]
  benchCase 5 5
  benchCase 5 10
  benchCase 10 5
  benchCase 10 10
  benchCase 10 20
  benchCase 20 10
  benchCase 20 20
  benchCase 40 40

benchCase :: Int -> Int -> Weigh ()
benchCase a b =
  func name (uncurry (assign cost)) (as, bs)
  where
    name = "assign " ++ show a ++ " " ++ show b
    as = [1 .. a]
    bs = [1 .. b]
    cost x y = x `div` y - x `rem` y + (y * 3) `rem` 4