#!/usr/bin/perl -w
use strict;
use warnings;
use Benchmark;
use Math::GSL::Vector;
use Math::GSL::RNG;
use List::Util qw/max min/;
my $rng = Math::GSL::RNG->new;
my $num = shift || 10000;
my @stuff = map { $rng->get() } (1..$num);
my $vector = Math::GSL::Vector->new([@stuff]);
my $runs = shift || 50_000;
timethese($runs, {
'min - List::Util ' => sub { min(@stuff) },
'min of Math::GSL vector ' => sub { $vector->min },
});
timethese($runs, {
'max - List::Util ' => sub { max(@stuff) },
'max of Math::GSL vector ' => sub { $vector->max },
});