Statistics::SparseVector - Perl5 extension for representing and manipulating sparse binary and integer vectors
use Statistics::SparseVector; # methods that create new bitvectors $vec = Statistics::SparseVector->new($n); $vec2 = $vec1->Clone(); $vec = Statistics::SparseVector->new_Enum($n, $s); $vec = Statistics::SparseVector->new_Bin($n, $s); $vec = Statistics::SparseVector->new_Int($n, $s); # miscellaneous $vec2->Substitute_Vector($vec1, $of22, $len2, $off1, $len1); $vec->insert_column($pos, $val); $vec->delete_column($pos); $vec->Size(); $vec->to_Enum(); $vec->to_Bin($sep); $vec->Fill(); $vec->Empty(); $vec->increment(); $n = $vec->Norm(); @list = $vec->indices(); # manipulation on the bit level $vec->Bit_Off($i); $vec->Bit_On($i); $vec->Inc($i); $vec->bit_flip($i); $vec->bit_test($i); # overloaded operators # increment $vec++; # stringify "$vec"
This module implements sparse bitvectors. Several methods for manipulating bitvectors are implemented.
new
$vec = Statistics::BitVector->new($n);
A bitvector of length $n is created. All bits are zero.
$n
Clone
$clone = $vec->Clone();
A copy of $vec is returned.
$vec
new_Enum
$vec = Statistics::BitVector->new_Enum($enumstring, $n);
A new vector of length $n is created from the comma-separated list of in $enumstring.
$enumstring
new_Bin
$vec = Statistics::BitVector->new_Bin($n, $string);
A new vector of length $n is created from bitstring $string.
$string
new_Int
$vec = Statistics::BitVector->new_Int($n, $intlist);
A new vector of length $n is created from whitespace-separated list of integers $intlist.
$intlist
Substitute_Vector
$vec2->Substitute_Vector($vec1, $off2, $len2, $off1, $len1);
$len2 contiguous bits in target vector $vec2 starting from $off2 are replaced by $len1 contiguous bits from source vector $vec1 starting at bit $off1. If $off2 equals the length of $vec2 the bits from $vec1 are appended. If $len1 is zero the $len2 bits from $vec2 are deleted.
$len2
$vec2
$off2
$len1
$vec1
$off1
delete_column
$vec->delete_column($i);
Delete position $i, the other elements are shifted as necessary.
$i
insert_column
$vec->insert_column($i, $val);
Insert a vector element at position $i with value $val.
$val
Fill
$vec->Fill();
All bits of $vec are set to one.
Empty
$vec->Empty();
All bits of $vec are set to zero.
increment
$vec->increment(); $vec++;
The integer value of the bitvector is increased by one.
Bit_Off
$vec->Bit_Off($i);
Bit $i is set to zero.
Bit_On
$vec->Bit_On($i);
Bit $i is set to one.
Inc
$vec->Inc($i);
The integer at position $i is increased by one.
bit_flip
$vec->bit_flip($i);
Bit $i is flipped.
bit_test
$vec->bit_test($i);
Returns 1 if bit $i is one, 0 otherwise.
1
0
Size
$n = $vec->Size();
Returns the size of the vector.
to_Enum
$enumstring = $vec->to_Enum();
Returns a comma-separated list of bits that are set.
indices
Returns an array of indices of bits that are set.
to_Bin
$bitstring = $vec->to_Bin($sep);
Returns a string of bits separated by $sep; bits should be read from left to right
$sep
Norm
Returns the number of set bits.
++
$vec++;
Same as method increment.
$string = "$vec";
Data::Dumper wants to stringify vectors. Probably because Statistics::SparseVector is an overloaded package it expects double quotes to be overloaded as well.
Data::Dumper
Statistics::SparseVector
Internally sparse vectors are represented by hashes.
Only a few methods from Bit::Vector are implemented. Maybe new ones will follow in the future.
Method Substitute_Vector is not thorougly debugged.
Version 0.2.
perl(1), Statistics::MaxEntropy(3), Statistics::ME.wrapper.pl(3), Statistics::Candidates(3).
Statistics::MaxEntropy comes with ABSOLUTELY NO WARRANTY and may be copied only under the terms of the GNU Library General Public License (version 2, or later), which may be found in the distribution.
Statistics::MaxEntropy
To install Statistics::MaxEntropy, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Statistics::MaxEntropy
CPAN shell
perl -MCPAN -e shell install Statistics::MaxEntropy
For more information on module installation, please visit the detailed CPAN module installation guide.