Skip to content

Commit

Permalink
Display time taken to compute solutions
Browse files Browse the repository at this point in the history
  • Loading branch information
killy971 committed Jan 13, 2015
1 parent bf6203b commit 208c965
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 5 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ Example for solving problem 72:
$ cabal run 72
Preprocessing executable 'problem' for project-euler-0.1.0.0...
303963552391
961.09 ms
```

# Notes
Expand Down
4 changes: 2 additions & 2 deletions project-euler.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@ source-repository head
executable problem
hs-source-dirs: src
main-is: Main.hs
build-depends: arithmoi, base, containers, digits, memoize, primes, NumberSieves
build-depends: arithmoi, base, clock, containers, digits, formatting, memoize, primes, NumberSieves
ghc-options: -Wall -Werror -O2
default-extensions: NumDecimals

test-suite test-all
hs-source-dirs: src, test
type: exitcode-stdio-1.0
main-is: TestAll.hs
build-depends: arithmoi, base, containers, digits, memoize, primes, NumberSieves, HUnit, Cabal >= 1.9.2
build-depends: arithmoi, base, clock, containers, digits, formatting, memoize, primes, NumberSieves, HUnit, Cabal >= 1.9.2
ghc-options: -Wall -Werror -O2
default-extensions: NumDecimals
16 changes: 13 additions & 3 deletions src/Main.hs
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
{-# LANGUAGE OverloadedStrings #-}

module Main where

import qualified Data.Map as M
import Formatting
import Formatting.Clock
import ProjectEuler.Problem001
import ProjectEuler.Problem002
import ProjectEuler.Problem004
Expand Down Expand Up @@ -41,6 +45,7 @@ import ProjectEuler.Problem214
import ProjectEuler.Problem225
import System.Environment (getArgs)
import System.Exit (exitSuccess)
import System.Clock

solutions :: M.Map Integer Integer
solutions = M.fromList [
Expand Down Expand Up @@ -92,9 +97,14 @@ main = do
case args of
["--help"] -> usage >> exitSuccess
["-h"] -> usage >> exitSuccess
[number] -> case solution (read number :: Integer) of
Just result -> print result
Nothing -> putStrLn "There is no solution yet for this problem"
[number] -> do
let n = read number :: Integer
start <- getTime Monotonic
case solution n of
Just result -> print result
Nothing -> putStrLn "There is no solution yet for this problem"
end <- getTime Monotonic
fprint (timeSpecs % "\n") start end
_ -> usage >> exitSuccess
where
usage = putStrLn "Usage: cabal run problem [number]"

0 comments on commit 208c965

Please sign in to comment.