diff options
Diffstat (limited to 'Cost.hs')
-rw-r--r-- | Cost.hs | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -17,10 +17,15 @@ totalCost :: Cost op -> (Seconds, [UsingHardware]) totalCost (CPUCost s) = (s, [UsingCPU]) raiseCostPower :: Cost c -> Entropy e -> Cost c -raiseCostPower c (Entropy e) = adjustCost c (* 2^e) +raiseCostPower c (Entropy e) = mapCost (* 2^e) c -adjustCost :: Cost c -> (Seconds -> Seconds) -> Cost c -adjustCost (CPUCost s) f = CPUCost (f s) +mapCost :: (Integer -> Integer) -> Cost op -> Cost op +mapCost f (CPUCost (Seconds n)) = CPUCost (Seconds (f n)) + +showCostMinutes :: Cost op -> String +showCostMinutes (CPUCost (Seconds n)) + | n < 61 = "1 minute" + | otherwise = show (n `div` 60) ++ " minutes" castCost :: Cost a -> Cost b castCost (CPUCost s) = CPUCost s |