| 1 |
===================================== |
|---|
| 2 |
Package "Bit::Vector" Version 6.3 |
|---|
| 3 |
===================================== |
|---|
| 4 |
|
|---|
| 5 |
|
|---|
| 6 |
Copyright (c) 1995 - 2002 by Steffen Beyer. |
|---|
| 7 |
All rights reserved. |
|---|
| 8 |
|
|---|
| 9 |
|
|---|
| 10 |
Credits: |
|---|
| 11 |
-------- |
|---|
| 12 |
|
|---|
| 13 |
Many thanks to Andreas Koenig <upload@franz.ww.tu-berlin.de> for his |
|---|
| 14 |
efforts as upload-manager for the CPAN, his patience, and lots of good |
|---|
| 15 |
advice and suggestions! Thank you for doing such a tremendous (and time- |
|---|
| 16 |
consuming) job!! |
|---|
| 17 |
|
|---|
| 18 |
Also many thanks to David Jenkins <jenkins@sdm.de> for reviewing the |
|---|
| 19 |
first version of the README file and the man page. |
|---|
| 20 |
|
|---|
| 21 |
Many thanks to Jarkko Hietaniemi <Jarkko.Hietaniemi@hut.fi> for his |
|---|
| 22 |
suggestions while I was developing the first release of this package! |
|---|
| 23 |
|
|---|
| 24 |
Many thanks also to the people of the perl5-porters <perl5-porters@nicoh.com> |
|---|
| 25 |
mailing list, specifically: |
|---|
| 26 |
|
|---|
| 27 |
Andreas Koenig <andreas.koenig@mind.de> |
|---|
| 28 |
Tim Bunce <Tim.Bunce@ig.co.uk> |
|---|
| 29 |
Jarkko Hietaniemi <Jarkko.Hietaniemi@hut.fi> |
|---|
| 30 |
Felix Gallo <fsg@coriolan.amicus.com> |
|---|
| 31 |
Mark A Biggar <mab@wdl.loral.com> |
|---|
| 32 |
Nick Ing-Simmons <nik@tiuk.ti.com> |
|---|
| 33 |
John Macdonald <jmm@elegant.com> |
|---|
| 34 |
|
|---|
| 35 |
for discussing and clarifying the naming and other issues of this package! |
|---|
| 36 |
|
|---|
| 37 |
Also many thanks to David Thompson <dlt@dewey.csun.edu> for reporting a |
|---|
| 38 |
problem he encountered concerning the inclusion of the Perl distribution |
|---|
| 39 |
("Unable to find include file ...") and for suggesting a solution for this |
|---|
| 40 |
problem. (That's the most pleasant kind of problem report, of course! ;-) ) |
|---|
| 41 |
|
|---|
| 42 |
Many thanks to Rob Johnson <rjohnson@apple.com> for an improved algorithm |
|---|
| 43 |
for computing binomials with always integer intermediate results (and |
|---|
| 44 |
numbers never getting too big)! |
|---|
| 45 |
|
|---|
| 46 |
Thanks to Banchong Harangsri <bjtong@cse.unsw.edu.au> for reporting the |
|---|
| 47 |
problem of the version 1.1 of this module with Perl 5.002! |
|---|
| 48 |
|
|---|
| 49 |
Special thanks to Dean Roehrich <roehrich@cray.com> for his assistance |
|---|
| 50 |
in trying to find the cause of and a remedy for the above problem! |
|---|
| 51 |
|
|---|
| 52 |
Many thanks to Andreas Koenig for notifying me of the alternative for the |
|---|
| 53 |
directory structure using the "lib" subdirectory and a way to use "confess" |
|---|
| 54 |
in an XSUB via "perl_eval_sv". |
|---|
| 55 |
|
|---|
| 56 |
Many special thanks to Larry Schwimmer <rosebud@cyclone.stanford.edu> for |
|---|
| 57 |
reporting the bug related to 64 bit machines and finding where an implicit |
|---|
| 58 |
assumption of 32 bit integers was hidden, and for testing the new version |
|---|
| 59 |
on his machine! |
|---|
| 60 |
|
|---|
| 61 |
Many thanks to Ralf S. Engelschall <rse@engelschall.com> for suggesting |
|---|
| 62 |
the four new methods "Size()", "Empty_Interval()", "Fill_Interval()" and |
|---|
| 63 |
"Flip_Interval()", implemented in version 3.0 of the "Set::IntegerFast" |
|---|
| 64 |
module (and also in the "Set::IntegerRange" module)! |
|---|
| 65 |
|
|---|
| 66 |
Also many thanks to Ralf Engelschall for the many good suggestions that |
|---|
| 67 |
went into version 4.0 of this package (concerning many different aspects)! |
|---|
| 68 |
|
|---|
| 69 |
Many thanks to Stas Bekman <sbekman@iil.intel.com> for raising the question |
|---|
| 70 |
of bitwise shift and rotation operations in Perl, which gave me the idea to |
|---|
| 71 |
implement such shift registers with arbitrary size, which in turn and with |
|---|
| 72 |
time gave me the idea of implementing a "Bit::Vector" base class capable of |
|---|
| 73 |
this along with already existing functionality (for sets and boolean matrices). |
|---|
| 74 |
|
|---|
| 75 |
Also many thanks to Jon Orwant <orwant@media.mit.edu> and Tim Bunce |
|---|
| 76 |
<Tim.Bunce@ig.co.uk> for their suggestions and comments concerning my |
|---|
| 77 |
first attempts at writing a module for bitwise shift and rotate operations |
|---|
| 78 |
in Perl, which eventually went into version 4.0 of this module! |
|---|
| 79 |
|
|---|
| 80 |
Many thanks to Brian S. Julin <bri@calyx.net> for sharing his ideas, his |
|---|
| 81 |
questions and the code of his "Bit::File" module with me, which inspired |
|---|
| 82 |
me to write the routines to access arbitrary chunks of bits. |
|---|
| 83 |
|
|---|
| 84 |
Many thanks to Hau-Yung Chen <hchen@oda-tech.com> for suggesting the |
|---|
| 85 |
string conversion routines to convert to/from binary representation |
|---|
| 86 |
and the possibility to concatenate bit vectors. |
|---|
| 87 |
|
|---|
| 88 |
Many thanks to Jarkko Hietaniemi <Jarkko.Hietaniemi@hut.fi> for suggesting |
|---|
| 89 |
the implementation of the transpose of a matrix in C for better performance. |
|---|
| 90 |
The transpose can be used in finding the strongly connected components of |
|---|
| 91 |
a graph. |
|---|
| 92 |
|
|---|
| 93 |
Many thanks go to Daniel Koch <dkoch@amcity.com> for suggesting the |
|---|
| 94 |
"Index_List_Store()" and "Index_List_Read()" methods! |
|---|
| 95 |
|
|---|
| 96 |
Many thanks again to Hau-Yung Chen <hchen@oda-tech.com> for suggesting |
|---|
| 97 |
a way for speeding up the conversion to decimal in "to_Dec()" (by dividing |
|---|
| 98 |
the bit vector through the largest possible power of ten that will fit into |
|---|
| 99 |
a machine word and then breaking down the rest using only machine words, |
|---|
| 100 |
which is faster than repeatedly dividing the whole bit vector by ten). |
|---|
| 101 |
According to my measurements, this resulted in an 8-fold speed increase. |
|---|
| 102 |
|
|---|
| 103 |
Many thanks go to Krzysztof Koczyjan <krzysztofk@rocketmail.com> for |
|---|
| 104 |
suggesting and extensively benchmarking a more efficient method for |
|---|
| 105 |
bit counting in the method "Norm()", which was adopted in version 5.2. |
|---|
| 106 |
|
|---|
| 107 |
Many thanks again to Krzysztof Koczyjan <krzysztofk@rocketmail.com> for |
|---|
| 108 |
an additional improvement of the method "Norm()", which was adopted in |
|---|
| 109 |
version 5.3. |
|---|
| 110 |
|
|---|
| 111 |
Many thanks to Bryan Bayerdorffer <bryan.bayerdorffer@analog.com> for |
|---|
| 112 |
notifying me of the bug in the "Divide()" method, which was immediately |
|---|
| 113 |
fixed in version 5.4. |
|---|
| 114 |
|
|---|
| 115 |
Many thanks to Rob W. Koeling <koeling@let.rug.nl> for reporting and to |
|---|
| 116 |
Paul J. Schinder <schinder@pobox.com> for reporting and helping to investigate |
|---|
| 117 |
the error of the failed tests 96-131 of test script "t/01________new.t" under |
|---|
| 118 |
HP-UX 10! This was fixed in version 5.5. |
|---|
| 119 |
|
|---|
| 120 |
Many thanks to the "CPAN testers" (http://www.connect.net/gbarr/cpan-test/) |
|---|
| 121 |
in general and to Jarkko Hietaniemi <jhi@iki.fi> in particular for testing |
|---|
| 122 |
this module and for reporting the compiler warning which occurred on line |
|---|
| 123 |
2067 of "BitVector.c" with the native "cc" compiler under Digital Unix, |
|---|
| 124 |
which has been fixed in version 5.6. |
|---|
| 125 |
|
|---|
| 126 |
Also many thanks to Matt Knecht <hex@voicenet.com> for pushing me hard |
|---|
| 127 |
enough ;-) to suppress those annoying leading zeros in the output from |
|---|
| 128 |
"to_Hex()" in version 5.6! |
|---|
| 129 |
|
|---|
| 130 |
Many thanks to Roland Titze <Roland.Titze@ks.sel.alcatel.de> and |
|---|
| 131 |
to Andrew Brown <alloneword@dial.pipex.com> for pointing out the |
|---|
| 132 |
misspelling of "whether" (was: wether) throughout my documentation, |
|---|
| 133 |
corrected in version 5.8. |
|---|
| 134 |
|
|---|
| 135 |
Thanks also go to Steve Tolkin <steve.tolkin@fmr.com> for suggesting that |
|---|
| 136 |
I should emphasize in the README.txt file that the reading of the INSTALL.txt |
|---|
| 137 |
file is important, especially if running Perl under Windows. :-) |
|---|
| 138 |
|
|---|
| 139 |
Many special thanks to Joshua N. Pritikin <joshua.pritikin@db.com> for |
|---|
| 140 |
sending in valuable patches to make this module ready for Perl 5.6.0 |
|---|
| 141 |
and to optimize the "strEQ" away from the typemap section in Vector.xs. |
|---|
| 142 |
|
|---|
| 143 |
Lots of thanks also to Yitzchak Scott-Thoennes <sthoenna@efn.org> for |
|---|
| 144 |
sending in a patch to make this module ready for Perl 5.6.0 and for |
|---|
| 145 |
extremely useful hints (and a patch) as to why the test suite had |
|---|
| 146 |
failures with Perl 5.6.0 all of a sudden. |
|---|
| 147 |
|
|---|
| 148 |
Many thanks to John Peacock <jpeacock@rowman.com> for reporting a |
|---|
| 149 |
problem with the VMS linker which is unable to differentiate case - |
|---|
| 150 |
in violation of the ANSI C standard - and for sending a patch to fix |
|---|
| 151 |
this problem. |
|---|
| 152 |
|
|---|
| 153 |
Many thanks to Tom Oelke <toelke@mipos2.intel.com> for reporting a |
|---|
| 154 |
problem with test "t/01________new.t" when Perl was built to use |
|---|
| 155 |
64 bit integers and for suggesting two possible fixes. The second |
|---|
| 156 |
one (adding "use integer;" at the top of the script) was adopted |
|---|
| 157 |
in version 6.2. |
|---|
| 158 |
|
|---|
| 159 |
Many thanks to Clint Olsen <clint@0lsen.net> for his many interesting |
|---|
| 160 |
questions and suggestions, one of which led to my writing the new |
|---|
| 161 |
example file "examples/test.c" in version 6.2. |
|---|
| 162 |
|
|---|
| 163 |
Many thanks to Tels <tels@bloodgate.com> for his criticism of "GCD()" |
|---|
| 164 |
and the documentation (with respect to common method name aliases |
|---|
| 165 |
such as Or, And, Xor, etc.). Both weaknesses have been fixed in |
|---|
| 166 |
version 6.2. |
|---|
| 167 |
|
|---|
| 168 |
Many thanks to Mike Swieton <swietonm@student.gvsu.edu> (and many other |
|---|
| 169 |
people in the past) for sending in a patch so that ToolBox.h will compile |
|---|
| 170 |
with C++ compilers. |
|---|
| 171 |
|
|---|
| 172 |
|
|---|