degenerate let forms
[bpt/guile.git] / benchmark-suite / benchmarks / r6rs-arithmetic.bm
1 ;;; -*- mode: scheme; coding: utf-8; -*-
2 ;;; R6RS-specific arithmetic benchmarks
3 ;;;
4 ;;; Copyright (C) 2011, 2012 Free Software Foundation, Inc.
5 ;;;
6 ;;; This library is free software; you can redistribute it and/or
7 ;;; modify it under the terms of the GNU Lesser General Public
8 ;;; License as published by the Free Software Foundation; either
9 ;;; version 3 of the License, or (at your option) any later version.
10 ;;;
11 ;;; This library is distributed in the hope that it will be useful,
12 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
13 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 ;;; Lesser General Public License for more details.
15 ;;;
16 ;;; You should have received a copy of the GNU Lesser General Public
17 ;;; License along with this library. If not, see
18 ;;; <http://www.gnu.org/licenses/>.
19
20 (define-module (benchmarks r6rs-arithmetic)
21 #:use-module (benchmark-suite lib)
22 #:use-module (rnrs arithmetic fixnums))
23
24 \f
25 (with-benchmark-prefix "fixnum"
26
27 (benchmark "fixnum? [yes]" #e1e7
28 (fixnum? 10000))
29
30 (let ((n (+ most-positive-fixnum 100)))
31 (benchmark "fixnum? [no]" #e1e7
32 (fixnum? n)))
33
34 (benchmark "fxxor [2]" #e1e7
35 (fxxor 3 8)))