(FILECREATED "28-Aug-86 14:23:43" {QV}<PEDERSEN>LISP>TEST-BOXED-FLOAT.;1 7301
changes to: (VARS TESTFLOATCOMS TEST-BOXED-FLOATCOMS BOXED-FLOAT-BENCHMARK-SUITE)
(FNS RUN-FLOAT-BENCHMARKS RUN-BOXED-FLOAT-BENCHMARKS PRINT-BOXED-FLOAT-BENCHMARK
TEST.FABS TEST.FDIFFERENCE TEST.FGREATERP TEST.FMAX TEST.FMIN TEST.FMINUS
TEST.FPLUS TEST.FQUOTIENT TEST.FTIMES TEST.FIX TEST.FEMPTYLOOP)
(FILES UNBOXEDOPS)
previous date: "20-Aug-86 18:19:21" {QV}<PEDERSEN>LISP>TESTFLOAT.;5)
(* Copyright (c) 1986 by Xerox Corporation. All rights reserved.)
(PRETTYCOMPRINT TEST-BOXED-FLOATCOMS)
(RPAQQ TEST-BOXED-FLOATCOMS ((FNS PRINT-BOXED-FLOAT-BENCHMARK RUN-BOXED-FLOAT-BENCHMARKS TEST.FABS
TEST.FDIFFERENCE TEST.FEMPTYLOOP TEST.FGREATERP TEST.FIX TEST.FMAX
TEST.FMIN TEST.FMINUS TEST.FPLUS TEST.FQUOTIENT TEST.FTIMES)
(VARS BOXED-FLOAT-BENCHMARK-SUITE)))
(DEFINEQ
(PRINT-BOXED-FLOAT-BENCHMARK
(LAMBDA (F N) (* jop: "20-Aug-86 17:09")
(LET ((TESTFN (PACK* (QUOTE TEST.)
F)))
(PRINTOUT T T "***************" %, F %, "Benchmark ******************" T T)
(PRINTOUT T T T "Starting the" %, F %, "run (TIMEALL (" TESTFN %, N ")" T T)
(SETQ VALUE (TIMEALL (APPLY* TESTFN N)))
(PRINTOUT T "Value is" %, VALUE T T)
(FRPTQ 10 (RECLAIM))
(PRINTOUT T T "Repeating the TIMEALL" T T)
(SETQ VALUE (TIMEALL (APPLY* TESTFN N)))
(PRINTOUT T "Value is" %, VALUE T T)
(FRPTQ 10 (RECLAIM))
(PRINTOUT T T F %, "Finished" T T))))
(RUN-BOXED-FLOAT-BENCHMARKS
(LAMBDA (BENCHMARKS) (* jop: "31-Mar-86 16:54")
(* * BENCHMARKS should be a list of the desired Benchmarks)
(DECLARE (GLOBALVARS BOXED-FLOAT-BENCHMARK-SUITE))
(if (NULL BENCHMARKS)
then (SETQ BENCHMARKS BOXED-FLOAT-BENCHMARK-SUITE))
(RESETLST (LET ((DRIBBLE.FILE (PACKFILENAME (QUOTE HOST)
(QUOTE DSK)
(QUOTE NAME)
(PACK* MAKESYSNAME "-" (MACHINETYPE)
"-BOXEDFLOAT")
(QUOTE EXTENSION)
(QUOTE BENCHMARKS)))
VALUE)
(DECLARE (SPECVARS VALUE))
(RESETSAVE NIL (QUOTE (TERPRI)))
(RESETSAVE *PRINT-ARRAY* T)
(RESETSAVE NIL (LIST (QUOTE PRIN1)
(CONCAT "Benchmark Results in " DRIBBLE.FILE)))
(RESETSAVE (DRIBBLE DRIBBLE.FILE))
(MOVD (QUOTE PAGEFULLFN)
(QUOTE PAGEFULLFN.SAVE))
(RESETSAVE NIL (QUOTE (MOVD PAGEFULLFN.SAVE PAGEFULLFN)))
(MOVD (QUOTE NILL)
(QUOTE PAGEFULLFN))
(printout T T "MACHINETYPE = " (MACHINETYPE)
T)
(printout T T "MAKESYSNAME = " MAKESYSNAME T)
(printout T T "MAKESYSDATE = " MAKESYSDATE T)
(printout T T "DATE = " (DATE)
T)
(printout T T "USERNAME = " (USERNAME)
T T)
(for BM in BENCHMARKS do (PRINT-BOXED-FLOAT-BENCHMARK (CAR BM)
(CADR BM)))
(PRINTOUT T "Finished benchmarking" T T)))))
(TEST.FABS
(LAMBDA (N) (* jop: "20-Aug-86 17:15")
(bind (X ← 1.0) for I from 1 to N do (SETQ RESULT (FABS X)) finally (RETURN RESULT))))
(TEST.FDIFFERENCE
(LAMBDA (N) (* jop: "20-Aug-86 17:12")
(bind (X ← 1.0)
(RESULT ← 0.0) for I from 1 to N do (SETQ RESULT (FDIFFERENCE RESULT X))
finally (RETURN RESULT))))
(TEST.FEMPTYLOOP
(LAMBDA (N) (* jop: "20-Aug-86 18:16")
(for I from 1 to N do NIL)))
(TEST.FGREATERP
(LAMBDA (N) (* jop: "20-Aug-86 16:49")
(bind (X ← 2.0)
(Y ← 1.0)
RESULT for I from 1 to N do (SETQ RESULT (FGREATERP X Y)) finally (RETURN RESULT))))
(TEST.FIX
(LAMBDA (N) (* jop: "20-Aug-86 17:11")
(bind (X ← 1.0)
RESULT for I from 1 to N do (SETQ RESULT (FIX X)) finally (RETURN RESULT))))
(TEST.FMAX
(LAMBDA (N) (* jop: "20-Aug-86 17:16")
(bind (X ← 1.0)
(Y ← 2.0)
(RESULT ← 0.0) for I from 1 to N do (SETQ RESULT (FMAX X Y)) finally (RETURN RESULT))))
(TEST.FMIN
(LAMBDA (N) (* jop: "20-Aug-86 17:15")
(bind (X ← 1.0)
(Y ← 2.0)
(RESULT ← 0.0) for I from 1 to N do (SETQ RESULT (FMIN X Y)) finally (RETURN RESULT))))
(TEST.FMINUS
(LAMBDA (N) (* jop: "20-Aug-86 17:18")
(bind (X ← 1.0)
(RESULT ← 0.0) for I from 1 to N do (SETQ RESULT (FMINUS X)) finally (RETURN RESULT))))
(TEST.FPLUS
(LAMBDA (N) (* jop: "20-Aug-86 17:13")
(bind (X ← 1.0)
(RESULT ← 0.0) for I from 1 to N do (SETQ RESULT (FPLUS RESULT X))
finally (RETURN RESULT))))
(TEST.FQUOTIENT
(LAMBDA (N) (* jop: "20-Aug-86 17:13")
(bind (X ← .99999)
(RESULT ← 1.0) for I from 1 to N do (SETQ RESULT (FQUOTIENT RESULT X))
finally (RETURN RESULT))))
(TEST.FTIMES
(LAMBDA (N) (* jop: "20-Aug-86 17:13")
(bind (X ← 1.0001)
(RESULT ← 1.0) for I from 1 to N do (SETQ RESULT (FTIMES RESULT X))
finally (RETURN RESULT))))
)
(RPAQQ BOXED-FLOAT-BENCHMARK-SUITE ((FEMPTYLOOP 10000)
(FPLUS 10000)
(FDIFFERENCE 10000)
(FTIMES 10000)
(FQUOTIENT 10000)
(FGREATERP 10000)
(FABS 10000)
(FMINUS 10000)
(FIX 10000)
(FMAX 10000)
(FMIN 10000)))
(PUTPROPS TEST-BOXED-FLOAT COPYRIGHT ("Xerox Corporation" 1986))
(DECLARE: DONTCOPY
(FILEMAP (NIL (1054 6641 (PRINT-BOXED-FLOAT-BENCHMARK 1064 . 1783) (RUN-BOXED-FLOAT-BENCHMARKS 1785 .
3823) (TEST.FABS 3825 . 4050) (TEST.FDIFFERENCE 4052 . 4330) (TEST.FEMPTYLOOP 4332 . 4497) (
TEST.FGREATERP 4499 . 4773) (TEST.FIX 4775 . 5015) (TEST.FMAX 5017 . 5289) (TEST.FMIN 5291 . 5563) (
TEST.FMINUS 5565 . 5819) (TEST.FPLUS 5821 . 6087) (TEST.FQUOTIENT 6089 . 6366) (TEST.FTIMES 6368 .
6639)))))
STOP