From 9006dbf097ef7acd612a2c4463fe942165478a79 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 12 Dec 2006 16:17:54 +0000 Subject: [PATCH] More warning fixes and some code rejigging --- utils/nofib-analyse/Main.hs | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/utils/nofib-analyse/Main.hs b/utils/nofib-analyse/Main.hs index accb325..ae99907 100644 --- a/utils/nofib-analyse/Main.hs +++ b/utils/nofib-analyse/Main.hs @@ -582,10 +582,10 @@ calc_result rts get_maybe_a get_stat result_ok (prog,base_r) = base_stat = get_stat base_r just_result Nothing s = RunFailed s - just_result (Just a) s = toBox a + just_result (Just a) _ = toBox a - percentage Nothing s base = RunFailed s - percentage (Just a) s base = Percentage + percentage Nothing s _ = RunFailed s + percentage (Just a) _ base = Percentage (convert_to_percentage base a) ----------------------------------------------------------------------------- -- Calculating geometric means and standard deviations @@ -658,22 +658,23 @@ class Num a => Result a where -- We assume an Int is a size, and print it in kilobytes. instance Result Int where - convert_to_percentage 0 size = 100 - convert_to_percentage base size = (fromIntegral size / fromIntegral base) * 100 + convert_to_percentage 0 _ = 100 + convert_to_percentage base size + = (fromIntegral size / fromIntegral base) * 100 - toBox = BoxInt + toBox = BoxInt instance Result Integer where - convert_to_percentage 0 size = 100 - convert_to_percentage base size = (fromInteger size / fromInteger base) * 100 - toBox = BoxInteger - + convert_to_percentage 0 _ = 100 + convert_to_percentage base size + = (fromInteger size / fromInteger base) * 100 + toBox = BoxInteger instance Result Float where - convert_to_percentage 0.0 size = 100.0 - convert_to_percentage base size = size / base * 100 + convert_to_percentage 0.0 _ = 100.0 + convert_to_percentage base size = size / base * 100 - toBox = BoxFloat + toBox = BoxFloat -- ----------------------------------------------------------------------------- -- BoxValues @@ -689,20 +690,16 @@ data BoxValue showBox :: BoxValue -> String showBox (RunFailed stat) = show_stat stat -showBox (Percentage f) = show_pcntage f +showBox (Percentage f) = printf "%+.1f%%" (f-100) showBox (BoxFloat f) = printf "%.2f" f showBox (BoxInt n) = show (n `div` 1024) ++ "k" showBox (BoxInteger n) = show (n `div` 1024) ++ "k" showBox (BoxString s) = s -instance Show BoxValue where { show = showBox } - -show_pcntage n = show_float_signed (n-100) ++ "%" - -show_float_signed n - | n >= 0 = printf "+%.1f" n - | otherwise = printf "%.1f" n +instance Show BoxValue where + show = showBox +show_stat :: Status -> String show_stat Success = "(no result)" show_stat WrongStdout = "(stdout)" show_stat WrongStderr = "(stderr)" -- 1.7.10.4