<?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:_partial_sums&amp;feed=atom&amp;action=history</id>
		<title>Programming language shootout: partial sums - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://dynamo.iro.umontreal.ca/wiki/index.php?title=Programming_language_shootout:_partial_sums&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:_partial_sums&amp;action=history"/>
		<updated>2013-05-18T20:44:45Z</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:_partial_sums&amp;diff=70&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:_partial_sums&amp;diff=70&amp;oldid=prev"/>
				<updated>2008-02-22T22:01:43Z</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:01, 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=partialsums&amp;amp;lang=all partial-sums] 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=partialsums&amp;amp;lang=all partial-sums] 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:_partial_sums&amp;diff=56&amp;oldid=prev</id>
		<title>Bjlucier: Add alioth partial-sums benchmark</title>
		<link rel="alternate" type="text/html" href="http://dynamo.iro.umontreal.ca/wiki/index.php?title=Programming_language_shootout:_partial_sums&amp;diff=56&amp;oldid=prev"/>
				<updated>2008-02-22T21:20:03Z</updated>
		
		<summary type="html">&lt;p&gt;Add alioth partial-sums benchmark&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=partialsums&amp;amp;lang=all partial-sums] 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 Chicken variant&lt;br /&gt;
&lt;br /&gt;
(declare (standard-bindings)(extended-bindings)(block)(not safe))&lt;br /&gt;
&lt;br /&gt;
;;; Stupid 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 (exact-&amp;gt;inexact (string-&amp;gt;number (car args)))]&lt;br /&gt;
        [fl2/3 (fl/ 2.0 3.0)]&lt;br /&gt;
        [format-result&lt;br /&gt;
         (lambda (str n)&lt;br /&gt;
           (display (roundto 9 n))&lt;br /&gt;
           (display str))])&lt;br /&gt;
    (let ((sums (f64vector 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0&lt;br /&gt;
			   1.0 1.0)))&lt;br /&gt;
      (let loop ()&lt;br /&gt;
	&lt;br /&gt;
	(define-macro (with-sums . body)&lt;br /&gt;
	  `(let ((s0 (f64vector-ref sums 0))&lt;br /&gt;
		 (s1 (f64vector-ref sums 1))&lt;br /&gt;
		 (s2 (f64vector-ref sums 2))&lt;br /&gt;
		 (s3 (f64vector-ref sums 3))&lt;br /&gt;
		 (s4 (f64vector-ref sums 4))&lt;br /&gt;
		 (s5 (f64vector-ref sums 5))&lt;br /&gt;
		 (s6 (f64vector-ref sums 6))&lt;br /&gt;
		 (s7 (f64vector-ref sums 7))&lt;br /&gt;
		 (s8 (f64vector-ref sums 8))&lt;br /&gt;
		 (d  (f64vector-ref sums 9))&lt;br /&gt;
		 (alt (f64vector-ref sums 10)))&lt;br /&gt;
	     ,@body))&lt;br /&gt;
	&lt;br /&gt;
	(define (s0-set! val) (f64vector-set! sums 0 val))&lt;br /&gt;
	(define (s1-set! val) (f64vector-set! sums 1 val))&lt;br /&gt;
	(define (s2-set! val) (f64vector-set! sums 2 val))&lt;br /&gt;
	(define (s3-set! val) (f64vector-set! sums 3 val))&lt;br /&gt;
	(define (s4-set! val) (f64vector-set! sums 4 val))&lt;br /&gt;
	(define (s5-set! val) (f64vector-set! sums 5 val))&lt;br /&gt;
	(define (s6-set! val) (f64vector-set! sums 6 val))&lt;br /&gt;
	(define (s7-set! val) (f64vector-set! sums 7 val))&lt;br /&gt;
	(define (s8-set! val) (f64vector-set! sums 8 val))&lt;br /&gt;
	(define (d-set! val) (f64vector-set! sums 9 val))&lt;br /&gt;
	(define (alt-set! val) (f64vector-set! sums 10 val))&lt;br /&gt;
	&lt;br /&gt;
	(if (with-sums (fl&amp;gt; d n))&lt;br /&gt;
	    (with-sums&lt;br /&gt;
	     (format-result &amp;quot;\t(2/3)^k\n&amp;quot; s0)&lt;br /&gt;
	     (format-result &amp;quot;\tk^-0.5\n&amp;quot; s1)&lt;br /&gt;
	     (format-result &amp;quot;\t1/k(k+1)\n&amp;quot; s2)&lt;br /&gt;
	     (format-result &amp;quot;\tFlint Hills\n&amp;quot; s3)&lt;br /&gt;
	     (format-result &amp;quot;\tCookson Hills\n&amp;quot; s4)&lt;br /&gt;
	     (format-result &amp;quot;\tHarmonic\n&amp;quot; s5)&lt;br /&gt;
	     (format-result &amp;quot;\tRiemann Zeta\n&amp;quot; s6)&lt;br /&gt;
	     (format-result &amp;quot;\tAlternating Harmonic\n&amp;quot; s7)&lt;br /&gt;
	     (format-result &amp;quot;\tGregory\n&amp;quot; s8))&lt;br /&gt;
	    &lt;br /&gt;
	    (with-sums&lt;br /&gt;
	     (let* ((d2 (fl* d d))&lt;br /&gt;
		    (d3 (fl* d2 d))&lt;br /&gt;
		    (ds (flsin d))&lt;br /&gt;
		    (dc (flcos d)))&lt;br /&gt;
	       (s0-set! (fl+ s0 (flexpt fl2/3 (fl- d 1.0))))&lt;br /&gt;
	       (s1-set! (fl+ s1 (fl/ 1.0 (flsqrt d))))&lt;br /&gt;
	       (s2-set! (fl+ s2 (fl/ 1.0 (fl* d (fl+ d 1.0)))))&lt;br /&gt;
	       (s3-set! (fl+ s3 (fl/ 1.0 (fl* d3 (fl* ds ds)))))&lt;br /&gt;
	       (s4-set! (fl+ s4 (fl/ 1.0 (fl* d3 (fl* dc dc)))))&lt;br /&gt;
	       (s5-set! (fl+ s5 (fl/ 1.0 d)))&lt;br /&gt;
	       (s6-set! (fl+ s6 (fl/ 1.0 d2)))&lt;br /&gt;
	       (s7-set! (fl+ s7 (fl/ alt d)))&lt;br /&gt;
	       (s8-set! (fl+ s8 (fl/ alt (fl- (fl* 2.0 d) 1.0))))&lt;br /&gt;
	       (d-set! (fl+ d 1.))&lt;br /&gt;
	       (alt-set! (fl- alt))&lt;br /&gt;
	       (loop))))))))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Compiling==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gsc partial-sums&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Running==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gsi partial-sums 2500000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bjlucier</name></author>	</entry>

	</feed>