Algorithm-SpiralSearch
view release on metacpan or search on metacpan
lib/Algorithm/SpiralSearch.pm view on Meta::CPAN
'$lower_boundy,$upper_boundy,$iterations,$function,' .
"'MAX|MIN')";
my ($lbx, $ubx, $lby, $uby, $iters, $f, $max_or_min) = @_;
croak 'A valid input/output funtion reference must be passed in'
unless $f =~ /CODE/;
croak 'Two or more iterations are required : ' if $iters < 2;
croak 'Upper boundary on first parameter must be non-zero : ' if $ubx == 0.0;
croak 'Upper boundary on second parameter must be non-zero : '
if $uby == 0.0;
croak 'Final parameter must be set to MAX or MIN : '
unless $max_or_min =~ /MAX|MIN/i;
# Set the initial start points to half the distances of the search space
# extrema.
my $x_init = ($ubx - $lbx) / 2;
my $y_init = ($uby - $lby) / 2;
( run in 1.136 second using v1.01-cache-2.11-cpan-39bf76dae61 )