Algorithm-BinarySearch-Vec
view release on metacpan or search on metacpan
our (%EXPORT_TAGS, @EXPORT_OK, @EXPORT);
BEGIN {
%EXPORT_TAGS =
(
api => [qw( vbsearch vbsearch_lb vbsearch_ub),
qw(vabsearch vabsearch_lb vabsearch_ub),
qw(vvbsearch vvbsearch_lb vvbsearch_ub),
qw(vunion vintersect vsetdiff),
],
const => [qw($HAVE_QUAD $KEY_NOT_FOUND)],
debug => [qw(vget vset vec2array)],
);
$EXPORT_TAGS{all} = [map {@$_} @EXPORT_TAGS{qw(api const debug)}];
$EXPORT_TAGS{default} = [map {@$_} @EXPORT_TAGS{qw(api const)}];
@EXPORT_OK = @{$EXPORT_TAGS{all}};
@EXPORT = @{$EXPORT_TAGS{default}};
}
##======================================================================
## Debug wrappers
##--------------------------------------------------------------
## $val = vget($vec,$i,$nbits)
vec($cv,$ci++,$nbits) = $aval if ($aval != vec($$bvr,$bi,$nbits));
$blo = $bi;
}
$cv .= substr($$avr, $ai*$nbits/8);
return $cv;
}
##======================================================================
## delegate: attempt to delegate to XS module
foreach my $func (map {@$_} @EXPORT_TAGS{qw(api debug)}) {
no warnings 'redefine';
if ($HAVE_XS && Algorithm::BinarySearch::Vec::XS->can($func)) {
eval "\*$func = \\&Algorithm::BinarySearch::Vec::XS::$func;";
} elsif (__PACKAGE__->can("_$func")) {
eval "\*$func = \\&_$func;";
}
}
1; ##-- be happy
=over 4
=item $KEY_NOT_FOUND
Constant returned by search functions indicating that the requested key
was not found, or the requested bound is not within the data vector.
=back
=item :debug
Exports debugging subs for the XS module (vget(), vset()).
=item :all
Exports everything available.
=back
=cut
##======================================================================
( run in 0.444 second using v1.01-cache-2.11-cpan-49f99fa48dc )