diff options
author | Bryan Newbold <bnewbold@robocracy.org> | 2017-02-20 00:05:26 -0800 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2017-02-20 00:05:26 -0800 |
commit | deda2c0fd8689349fea2a900199a76ff7ecb319e (patch) | |
tree | c9726d54a0806a9b0c75e6c82db8692aea0053cf /bench.scm | |
parent | 3278b75942bdbe706f7a0fba87729bb1e935b68b (diff) | |
download | scm-deda2c0fd8689349fea2a900199a76ff7ecb319e.tar.gz scm-deda2c0fd8689349fea2a900199a76ff7ecb319e.zip |
Import Upstream version 5d6upstream/5d6
Diffstat (limited to 'bench.scm')
-rw-r--r-- | bench.scm | 34 |
1 files changed, 17 insertions, 17 deletions
@@ -1,4 +1,4 @@ -;; Copyright (C) 1996, 1997 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 2001 Free Software Foundation, Inc. ;; ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -41,7 +41,7 @@ ;;;; "bench.scm", Scheme benchmark computing digits of pi. ;;; Author: Aubrey Jaffer. -(require (in-vicinity (implementation-vicinity) "pi.scm")) +(load (in-vicinity (implementation-vicinity) "pi.scm")) (require 'transcript) (define isqrt (cond ((provided? 'inexact) sqrt) @@ -51,16 +51,17 @@ (else quotient))) (define around (cond ((provided? 'inexact) - (lambda (x) - (cond ((>= 3000 (abs x) 3) (inexact->exact (round x))) + (lambda (x bnd) + (cond ((>= 99999 (abs x) bnd) (inexact->exact (round x))) + ((> (abs x) 99999) (round x)) (else x)))) - (else identity))) + (else (lambda (x bnd) x)))) (define (time-pi digits) (let ((start-time (get-internal-run-time))) (pi digits 4) (i/ (* 1000 (- (get-internal-run-time) start-time)) - internal-time-units-per-second))) + internal-time-units-per-second))) (define (benchmark . arg) (define file @@ -75,22 +76,21 @@ (let* ((avg (i/ (apply + tl) (length tl))) (dev (isqrt (i/ (apply + (map (lambda (x) (* (- x avg) (- x avg))) - tl)) + tl)) (length tl))))) (and file (transcript-on file)) (for-each display - (list digits " digits took " (around avg) " mSec +/- " - (around dev) " mSec.")) + (list digits " digits took " (around avg 99) + " +/- " (around dev 3) ".ms")) (newline) - (let ((scaled-avg (i/ (* (i/ (* avg 1000) digits) 1000) digits))) + (let ((scaled-avg (i/ (* (i/ (* avg 1000) digits) 1000) digits)) + (scaled-dev (i/ (* (i/ (* dev 1000) digits) 1000) digits))) (for-each display - (list " That is about " scaled-avg - " mSec/k-digit^2 +/- " - (around - (i/ (* 100 (i/ (* (i/ (* dev 1000) digits) - 1000) digits)) - scaled-avg)) - "%.")) + (list " That is about " + (around scaled-avg 99) + " +/- " + (around scaled-dev 3) + ".ms/(kB)^2")) (newline) (and file (transcript-off))) )))))) |