Algorithm-BinarySearch-Vec
view release on metacpan or search on metacpan
Revision history for Perl module Algorithm::BinarySearch::Vec
v0.08 Thu, 01 Sep 2016 12:09:31 +0200 moocow
* ensure $Config{use64bitint} before setting HAVE_QUAD
- should fix weird errors on e.g. 32-bit freebsd without perl -use64bitint compile-time option
- compare cpantesters results
~ WITH -use64bitint: http://www.cpantesters.org/cpan/report/749d41d2-6a1e-11e6-8807-814d1da4c10f
~ WITHOUT -use64bitint: http://www.cpantesters.org/cpan/report/228a2396-6a47-11e6-8807-814d1da4c10f
v0.07 Mon, 18 Apr 2016 16:42:44 +0200 moocow
* added support for nbits==64; indices are still always 32-bit
- for batch vector-wise search variants we'll need xs sub variants to ensure compatibility
* added set operations vunion(), vintersect(), vsetdiff()
- intersect & setdiff optimized for merging a small set $a with a large one $b, independent of argument order: O($Na * log $Nb)
* re-worked tests to use Test::More
* added Changes (fixes RT #80502)
* tweaked 'use vars' line in t/01_ini.t (perl 5.6.2 choked)
- see http://www.cpantesters.org/cpan/report/67845932-1927-11e2-8c89-c5fec1a37597
v0.04 2012-10-17 moocow
* fixed vXbsearch_lb() for ilo==imin with v[ilo]<key
* added test for ilo==imin with v[ilo]<key
* updated docs
v0.03 2012-10-10 moocow
* fixed consistency errors
* updated docs
v0.02 2012-10-09 moocow
* added vv* functions (vec-wise search, returns 32-bit index-vec)
* renamed to top-level Algorithm::BinarySearch::Vec
* cleaned up for cpan release
* added README, docs
* got tests working
v0.01 2012-10-08 moocow
# Preloaded methods go here.
#require Algorithm::BinarySearch::Vec::XS::Whatever;
# Autoload methods go after =cut, and are processed by the autosplit program.
##======================================================================
## Exports
##======================================================================
no warnings 'portable'; ##-- avoid "Bit vector size > 32 non-portable" errors for native quads
our $HAVE_QUAD = ($Config::Config{use64bitint} ##-- avoid errors with xs U64TYPE but no perl-side 64bit ints (e.g. freebsd w/o -use64bitint perl config option)
&&
($HAVE_XS ? Algorithm::BinarySearch::Vec::XS::HAVE_QUAD() : $Config::Config{d_quad})
);
our $KEY_NOT_FOUND = $HAVE_XS ? Algorithm::BinarySearch::Vec::XS::KEY_NOT_FOUND() : 0xffffffff;
#our $KEY_NOT_FOUND = $HAVE_XS ? Algorithm::BinarySearch::Vec::XS::KEY_NOT_FOUND() : ($HAVE_QUAD ? 0xffffffffffffffff : 0xffffffff);
our (%EXPORT_TAGS, @EXPORT_OK, @EXPORT);
BEGIN {
%EXPORT_TAGS =
(
( run in 0.667 second using v1.01-cache-2.11-cpan-65fba6d93b7 )