[PDD] Add docs for the Parrot_PMC_push_* and Parrot_PMC_pop_* functions
[parrot.git] / examples / shootout / harmonic.pir
blob69e35c10761caf153a46edb34c3a661c8f08faa8
1 # Copyright (C) 2005-2009, Parrot Foundation.
2 # $Id$
4 =head1 NAME
6 examples/shootout/harmonic.pir - Partial sum of Harmonic series
8 =head1 SYNOPSIS
10     % ./parrot examples/shootout/harmonic.pir -R jit 10000000
12 =head1 DESCRIPTION
14 Seemed to be deprecated, no longer found on shootout site (Karl),
15 so could not find an expected output file.
17 Translated from C code by Greg Buchholz into PIR
18 by Peter Baylies <pbaylies@gmail.com>.
20 The C code is at:
21    The Great Computer Language Shootout
22    http://shootout.alioth.debian.org/
24 =cut
26 .sub 'main' :main
27         .param pmc argv
28         .local int argc
29         .local int n
30         .local num i, sum
31         i = 1
32         sum = 0
33         argc = argv
34         n = 10000000
35         if argc <= 1 goto NREDO
36         $S0 = argv[1]
37         n = $S0
38 NREDO:  $N1 = 1 / i
39         sum += $N1
40         inc i
41         dec n
42         if n goto NREDO
44         $P0 = new 'FixedFloatArray'
45         $P0 = 1
46         $P0[0] = sum
47         $S0 = sprintf "%.9f\n", $P0
48         print $S0
49         end
50 .end
52 # Local Variables:
53 #   mode: pir
54 #   fill-column: 100
55 # End:
56 # vim: expandtab shiftwidth=4 ft=pir: