Permalink
Browse files

[examples] Add benchmark for sorting FixedFloatArrays

  • Loading branch information...
1 parent 3f65128 commit aeb9015a68f5e96c85f03d0e8a41f262687f505e @leto leto committed Jan 15, 2013
Showing with 56 additions and 0 deletions.
  1. +1 −0 MANIFEST
  2. +55 −0 examples/benchmarks/sort_ffa.pir
View
@@ -507,6 +507,7 @@ examples/benchmarks/primes2_i.pir [examples]
examples/benchmarks/primes_i.pasm [examples]
examples/benchmarks/rand.pir [examples]
examples/benchmarks/sort.pir [examples]
+examples/benchmarks/sort_ffa.pir [examples]
examples/benchmarks/stress.pasm [examples]
examples/benchmarks/stress.pl [examples]
examples/benchmarks/stress.rb [examples]
@@ -0,0 +1,55 @@
+# Copyright (C) 2013, Parrot Foundation.
+
+=head1 NAME
+
+examples/benchmarks/sort_ffa.pir - Sort an FixedFloatArray of N floats
+
+=head1 SYNOPSIS
+
+ % time ./parrot examples/benchmarks/sort_ffa.pir
+
+=head1 DESCRIPTION
+
+Sorts an FixedFloatArray of N random integers using builtin sort
+function for FixedFloatArray. The argument N is specified from the
+command line.
+
+=cut
+
+.loadlib 'math_ops'
+
+.sub main :main
+ .param pmc argv
+ .local int N, i, j
+
+ N = argv[1]
+ if N < 1 goto USE_DEFAULT_SIZE
+ goto USE_DEFINED_SIZE
+
+USE_DEFAULT_SIZE:
+ N = 10000
+
+USE_DEFINED_SIZE:
+ $P0 = new ['FixedFloatArray'], N
+ i = 0
+ j = 0
+
+LOOP:
+ j = rand 0, N
+ $P0[i] = j
+ inc i
+ if i < N goto LOOP
+
+ $P0.'sort'()
+
+.end
+
+
+=cut
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
+

0 comments on commit aeb9015

Please sign in to comment.