Modified some of the untyped shootout benchmarks to be closer to the

typed versions.
This commit is contained in:
Vincent St-Amour 2010-06-11 11:30:09 -04:00
parent 7f3db138e7
commit 3e0446d774
3 changed files with 7 additions and 6 deletions

View File

@ -33,7 +33,7 @@
(else (mlength L1))))) (else (mlength L1)))))
(define (main args) (define (main args)
(let ((result #f)) (let ((result 0))
(let loop ((counter (if (= (vector-length args) 0) (let loop ((counter (if (= (vector-length args) 0)
1 1
(string->number (vector-ref args 0))))) (string->number (vector-ref args 0)))))

View File

@ -3,7 +3,8 @@
#lang racket/base #lang racket/base
(require (only-in mzlib/list sort) (require (only-in mzlib/list sort)
(only-in mzlib/string real->decimal-string)) (only-in mzlib/string real->decimal-string)
racket/flonum)
(define (to-str n) (real->decimal-string n 6)) (define (to-str n) (real->decimal-string n 6))
@ -29,15 +30,15 @@
(begin (begin
(set! deviation (- (car nums) mean)) (set! deviation (- (car nums) mean))
(set! average_deviation (+ average_deviation (abs deviation))) (set! average_deviation (+ average_deviation (abs deviation)))
(set! variance (+ variance (expt deviation 2.0))) (set! variance (+ variance (expt deviation 2)))
(set! skew (+ skew (expt deviation 3.0))) (set! skew (+ skew (expt deviation 3)))
(set! kurtosis (+ kurtosis (expt deviation 4))) (set! kurtosis (+ kurtosis (expt deviation 4)))
(loop (cdr nums))) (loop (cdr nums)))
#t)) #t))
(set! average_deviation (/ average_deviation (exact->inexact n))) (set! average_deviation (/ average_deviation (exact->inexact n)))
(set! variance (/ variance (- n 1))) (set! variance (/ variance (- n 1)))
(set! standard_deviation (sqrt variance)) (set! standard_deviation (flsqrt variance))
(cond ((> variance 0.0) (cond ((> variance 0.0)
(set! skew (/ skew (* n variance standard_deviation))) (set! skew (/ skew (* n variance standard_deviation)))

View File

@ -26,7 +26,7 @@ Correct output N = 1000 is
(define +pi+ 3.141592653589793) (define +pi+ 3.141592653589793)
(define +days-per-year+ 365.24) (define +days-per-year+ 365.24)
(define +solar-mass+ (* 4 +pi+ +pi+)) (define +solar-mass+ (* 4.0 +pi+ +pi+))
(define +dt+ 0.01) (define +dt+ 0.01)