Statistics::SparseVector - Perl5 extension for manipulating sparse bitvectors


Statistics-MaxEntropy documentation  | view source Contained in the Statistics-MaxEntropy distribution.

Index


NAME

Top

Statistics::SparseVector - Perl5 extension for manipulating sparse bitvectors

SYNOPSIS

Top

 use Statistics::SparseVector;

 # methods that create new bitvectors
 $vec = Statistics::SparseVector->new($n);
 $vec2 = $vec1->Clone();
 $vec = Statistics::SparseVector->new_Enum($s, $n);
 $vec = Statistics::SparseVector->new_Bin($s, $n);

 # miscellaneous
 $vec2->Substitute_Vector($vec1, $of22, $len2, $off1, $len1);
 $vec->Size();
 $vec->to_Enum();
 $vec->to_Bin();
 $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->bit_flip($i);
 $vec->bit_test($i);

 # overloaded operators
 # increment
 $vec++;
 # stringify
 "$vec"




DESCRIPTION

Top

This module implements sparse bitvectors. Several methods for manipulating bitvectors are implemented. On purpose the naming of the methods is identical to the Bit::Vector package by Stephen Beyer; if you find your vectors to be sparse (have little bits that are on) you can easily switch to a less memory consuming representation.

Creation of bitvectors

new
 $vec = Statistics::BitVector->new($n);

A bitvector of length $n is created. All bits are zero.

Clone
 $clone = $vec->Clone();

A copy of $vec is returned.

new_Enum
 $vec = Statistics::BitVector->new_Enum($enumstring, $n);

A new bitvector of length $n is created from the comma-separated list of in $enumstring.

new_Bin
 $vec = Statistics::BitVector->new_Bin($bitstring, $n);

A new bitvector of length $n is created from bitstring $bitstring.

Vector-wide manipulation of bits

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.

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.

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.

Miscellany

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();

Returns a bitstring; bits should be read from right to left.

Norm

Returns the number of set bits.

Overloaded operators

++
 $vec++;

Same as method increment.

Double quotes
 $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.

Remarks about the implementation

VERSION

Top

Version 0.1.

AUTHOR

Top

SEE ALSO

Top

perl(1), Bit::Vector(3), Statistics::MaxEntropy(3), Statistics::ME.wrapper.pl(3), Statistics::Candidates(3).

COPYRIGHT

Top


Statistics-MaxEntropy documentation  | view source Contained in the Statistics-MaxEntropy distribution.