Bit::Vector is a (stand-alone) C library and an object-oriented Perl module (with overloaded operators) which allows you to handle bit vectors, sets (of integers), "big integer arithmetic" (e.g. for cryptography), and boolean matrices (all of arbitrary size) very efficiently.
| Tags | multimedia Graphics Sound/Audio Scientific/Engineering Mathematics Security Cryptography Software Development Code Generators Compilers Interpreters Libraries |
|---|---|
| Licenses | Artistic GPL LGPL |
| Operating Systems | OS Independent |
| Implementation | C Perl |
Recent releases


Release Notes: This release adds the prefix "BV_" to all global identifiers in "BitVector.c", "BitVector.h", and "Vector.xs".


Release Notes: This release fixes two minor bugs: one in GCD2() related to null-sized bitvectors (possible write outside of allocated buffer), and a sporadic one under MacOS (Darwin) related to the calculated number of bits in an unsigned long. It adds test cases for these issues.


Release Notes: This release fixes a potential problem with data exchange between systems of different endianness (by replacing Storable::freeze with Storable::nfreeze), adds more test cases for Storable, and adds a proof-of-concept example of how to freeze/thaw bit vectors with Data::Dumper (currently not recommendable though).


Release Notes: This release fixes a bug that caused Storable to not reconstruct nested data structures properly that contain several references to the same Bit::Vector object, fixes a potential problem with a hard-coded constant in BitVector.c, and updates the documentation.


Release Notes: This release automatically supports persistence (serialization) using "Storable". It fixes a glitch that made it thread-unsafe, fixes another one that made it leak memory, and fixes a problem with the Boolean C type in combination with Mac OS X.
Recent comments
17 May 2010 09:45
Why is this project tagged with multimedia, Graphics, Sound/Audio, Scientific/Engineering etc? It has absolutely nothing to do with those!
12 Oct 2004 02:38
Similar project
A similar project is "libBitvector", which implements arbitrary-sized vectors of zero and one flags (bit vectors or bit strings) that can be operated on with AND, OR, XOR, NOT, LSHIFT, and RSHIFT operators.
C++ template classes implementing a B+ tree key/data container in main memory.