Bump version to 0.18 and touch up Changes
[Math-GSL.git] / examples / benchmark / sort
blob10edf8fa550450a6320a56ad7b15d973e67901c4
1 #!/usr/bin/perl -w
2 use strict;
3 use Math::GSL::Sort qw/:all/;
4 use Math::GSL::RNG qw/:all/;
5 use Benchmark qw/:all/;
6 use Data::Dumper;
8 my $count = shift || 1000;
9 my $length = shift || 5000;
10 my $rng = Math::GSL::RNG->new;
11 my @data1 = map { (-1)**$_ * $rng->get } (1..$length);
12 my @data2 = map { (-1)**$_ * int(rand(2**30)) } (1..$length);
13 my @stuff;
15 print "Benchmarking for Math::GSL::RNG data\n";
16 timethese($count, {
17 'perl sort ' => sub { @stuff = sort { $a <=> $b } @data1 },
18 'Math::GSL sort' => sub { @stuff = gsl_sort(\@data1,1,$#data1+1) },
19 });
21 print "Benchmarking for rand() data\n";
22 timethese($count, {
23 'perl sort ' => sub { @stuff = sort { $a <=> $b } @data2 },
24 'Math::GSL sort' => sub { @stuff = gsl_sort(\@data2,1,$#data2+1) },
25 });