<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://dynamo.iro.umontreal.ca/wiki/skins/common/feed.css?270"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://dynamo.iro.umontreal.ca/wiki/index.php?title=Programming_language_shootout:_recursive&amp;feed=atom&amp;action=history</id>
		<title>Programming language shootout: recursive - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://dynamo.iro.umontreal.ca/wiki/index.php?title=Programming_language_shootout:_recursive&amp;feed=atom&amp;action=history"/>
		<link rel="alternate" type="text/html" href="http://dynamo.iro.umontreal.ca/wiki/index.php?title=Programming_language_shootout:_recursive&amp;action=history"/>
		<updated>2013-05-20T06:00:31Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.16.4</generator>

	<entry>
		<id>http://dynamo.iro.umontreal.ca/wiki/index.php?title=Programming_language_shootout:_recursive&amp;diff=72&amp;oldid=prev</id>
		<title>Bjlucier: correct link to alioth</title>
		<link rel="alternate" type="text/html" href="http://dynamo.iro.umontreal.ca/wiki/index.php?title=Programming_language_shootout:_recursive&amp;diff=72&amp;oldid=prev"/>
				<updated>2008-02-22T22:03:46Z</updated>
		
		<summary type="html">&lt;p&gt;correct link to alioth&lt;/p&gt;
&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 22:03, 22 February 2008&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;This is a Gambit implementation of the [http://shootout.alioth.debian.org/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;gp4&lt;/del&gt;/benchmark.php?test=recursive&amp;amp;lang=all recursive] benchmark of the [[Programming language shootout|Computer Language Benchmarks Game]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;This is a Gambit implementation of the [http://shootout.alioth.debian.org/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;gp4sandbox&lt;/ins&gt;/benchmark.php?test=recursive&amp;amp;lang=all recursive] benchmark of the [[Programming language shootout|Computer Language Benchmarks Game]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==The program==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==The program==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Bjlucier</name></author>	</entry>

	<entry>
		<id>http://dynamo.iro.umontreal.ca/wiki/index.php?title=Programming_language_shootout:_recursive&amp;diff=58&amp;oldid=prev</id>
		<title>Bjlucier: Add recursive benchmark from alioth</title>
		<link rel="alternate" type="text/html" href="http://dynamo.iro.umontreal.ca/wiki/index.php?title=Programming_language_shootout:_recursive&amp;diff=58&amp;oldid=prev"/>
				<updated>2008-02-22T21:32:15Z</updated>
		
		<summary type="html">&lt;p&gt;Add recursive benchmark from alioth&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This is a Gambit implementation of the [http://shootout.alioth.debian.org/gp4/benchmark.php?test=recursive&amp;amp;lang=all recursive] benchmark of the [[Programming language shootout|Computer Language Benchmarks Game]].&lt;br /&gt;
&lt;br /&gt;
==The program==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!gsi-script&lt;br /&gt;
&lt;br /&gt;
;; The Computer Language Benchmarks Game&lt;br /&gt;
;; http://shootout.alioth.debian.org/&lt;br /&gt;
;;&lt;br /&gt;
;; Derived by Bradley Lucier from the Ikarus variant&lt;br /&gt;
;; derived by Michael D. Adams from the MzScheme variant&lt;br /&gt;
&lt;br /&gt;
(declare (standard-bindings)(extended-bindings)(block)(not safe))&lt;br /&gt;
&lt;br /&gt;
;; -------------------------------&lt;br /&gt;
&lt;br /&gt;
(define (ack m n)&lt;br /&gt;
  (cond ((fxzero? m) (fx+ n 1))&lt;br /&gt;
        ((fxzero? n) (ack (fx- m 1) 1))&lt;br /&gt;
        (else (ack (fx- m 1) (ack m (fx- n 1))))))&lt;br /&gt;
&lt;br /&gt;
;; --------------&lt;br /&gt;
&lt;br /&gt;
(define (fib n)&lt;br /&gt;
  (cond ((fx&amp;lt; n 2) 1)&lt;br /&gt;
        (else (fx+ (fib (fx- n 2)) (fib (fx- n 1))))))&lt;br /&gt;
&lt;br /&gt;
(define (fibflt n)&lt;br /&gt;
  (cond ((fl&amp;lt; n 2.0) 1.0)&lt;br /&gt;
        (else (fl+ (fibflt (fl- n 2.0)) (fibflt (fl- n 1.0))))))&lt;br /&gt;
&lt;br /&gt;
;; --------------&lt;br /&gt;
&lt;br /&gt;
(define (tak x y z)&lt;br /&gt;
  (cond ((not (fx&amp;lt; y x)) z)&lt;br /&gt;
        (else (tak (tak (fx- x 1) y z) (tak (fx- y 1) z x) (tak (fx- z 1) x y)))))&lt;br /&gt;
&lt;br /&gt;
(define (takflt x y z)&lt;br /&gt;
  (cond ((not (fl&amp;lt; y x)) z)&lt;br /&gt;
        (else (takflt (takflt (fl- x 1.0) y z) (takflt (fl- y 1.0) z x) (takflt (fl- z 1.0) x y)))))&lt;br /&gt;
&lt;br /&gt;
;; -------------------------------&lt;br /&gt;
&lt;br /&gt;
;;; Boiler-plate for formatting floating point values&lt;br /&gt;
(define (roundto digits n)&lt;br /&gt;
  (let* ([e (expt 10 digits)]&lt;br /&gt;
         [num (round (abs (* e (inexact-&amp;gt;exact n))))]&lt;br /&gt;
         [str (number-&amp;gt;string (remainder num e))])&lt;br /&gt;
    (string-append&lt;br /&gt;
     (if (negative? n) &amp;quot;-&amp;quot; &amp;quot;&amp;quot;)&lt;br /&gt;
     (number-&amp;gt;string (quotient num e))&lt;br /&gt;
     &amp;quot;.&amp;quot;&lt;br /&gt;
     (make-string (- digits (string-length str)) #\0)&lt;br /&gt;
     str)))&lt;br /&gt;
&lt;br /&gt;
(define (main . args)&lt;br /&gt;
  (let ((n (string-&amp;gt;number (car args))))&lt;br /&gt;
&lt;br /&gt;
    (display &amp;quot;Ack(3,&amp;quot;) (display n) (display &amp;quot;): &amp;quot;) (display (ack 3 n)) (newline)&lt;br /&gt;
&lt;br /&gt;
    (display &amp;quot;Fib(&amp;quot;) (display (roundto 1 (+ 27.0 n))) (display &amp;quot;): &amp;quot;)&lt;br /&gt;
    (display (roundto 1 (fibflt (+ 27.0 n)))) (newline)&lt;br /&gt;
&lt;br /&gt;
    (set! n (- n 1))&lt;br /&gt;
&lt;br /&gt;
    (display &amp;quot;Tak(&amp;quot;) (display (* n 3))&lt;br /&gt;
    (display &amp;quot;,&amp;quot;) (display (* n 2))&lt;br /&gt;
    (display &amp;quot;,&amp;quot;) (display n) (display &amp;quot;): &amp;quot;)&lt;br /&gt;
    (display (tak (* n 3) (* n 2) n)) (newline)&lt;br /&gt;
&lt;br /&gt;
    (display &amp;quot;Fib(3): &amp;quot;) (display (fib 3)) (newline)&lt;br /&gt;
&lt;br /&gt;
    (display &amp;quot;Tak(3.0,2.0,1.0): &amp;quot;) (display (roundto 1 (takflt 3.0 2.0 1.0)))&lt;br /&gt;
    (newline)))&lt;br /&gt;
&lt;br /&gt;
;; -------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Compiling==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gsc recursive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Running==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gsi -:m10000 recursive 11&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here we give a minimum heap of 10MB.&lt;/div&gt;</summary>
		<author><name>Bjlucier</name></author>	</entry>

	</feed>