<P>Note that a fatal ``division by zero error'' will occur if any of the two
numbers is equal to zero.</P>
<P>Note also that this method regards its two arguments as <STRONG>SIGNED</STRONG> but
that it actually uses the <STRONG>ABSOLUTE VALUE</STRONG> of its two arguments internally,
i.e., the <STRONG>RESULT</STRONG> of this method will <STRONG>ALWAYS</STRONG> be <STRONG>POSITIVE</STRONG>.</P>
<P></P>
<LI>
<CODE>$vector->Block_Store($buffer);</CODE>
<P>This method allows you to load the contents of a given bit vector in
one go.</P>
<P>This is useful when you store the contents of a bit vector in a file,
for instance (using method ``<CODE>Block_Read()</CODE>''), and when you want to
restore the previously saved bit vector.</P>
<P>For this, ``<CODE>$buffer</CODE>'' <STRONG>MUST</STRONG> be a string (<STRONG>NO</STRONG> automatic conversion
from numeric to string is provided here as would normally in Perl!)
containing the bit vector in ``low order byte first'' order.</P>
<P>If the given string is shorter than what is needed to completely fill
the given bit vector, the remaining (most significant) bytes of the
bit vector are filled with zeros, i.e., the previous contents of the
bit vector are always erased completely.</P>
<P>If the given string is longer than what is needed to completely fill
the given bit vector, the superfluous bytes are simply ignored.</P>
<P>See <A HREF="../../../lib/Pod/perlfunc.html#sysread">sysread in the perlfunc manpage</A> for how to read in the contents of ``<CODE>$buffer</CODE>''
from a file prior to passing it to this method.</P>
<P></P>
<LI>
<CODE>$buffer = $vector->Block_Read();</CODE>
<P>This method allows you to export the contents of a given bit vector in
one block.</P>
<P>This is useful when you want to save the contents of a bit vector for
later, for instance in a file.</P>
<P>The advantage of this method is that it allows you to do so in the
compactest possible format, in binary.</P>
<P>The method returns a Perl string which contains an exact copy of the
contents of the given bit vector in ``low order byte first'' order.</P>
<P>See <A HREF="../../../lib/Pod/perlfunc.html#syswrite">syswrite in the perlfunc manpage</A> for how to write the data from this string
to a file.</P>
<P></P>
<LI>
<CODE>$size = $vector->Word_Size();</CODE>
<P>Each bit vector is internally organized as an array of machine words.</P>
<P>The methods whose names begin with ``Word_'' allow you to access this
internal array of machine words.</P>
<P>Note that because the size of a machine word may vary from system to
system, these methods are inherently <STRONG>MACHINE-DEPENDENT</STRONG>!</P>
<P>Therefore, <STRONG>DO NOT USE</STRONG> these methods unless you are absolutely certain
that portability of your code is not an issue!</P>
<P>You have been warned!</P>
<P>To be machine-independent, use the methods whose names begin with ``<CODE>Chunk_</CODE>''
instead, with chunks sizes no greater than 32 bits.</P>
<P>The method ``<CODE>Word_Size()</CODE>'' returns the number of machine words that the
internal array of words of the given bit vector contains.</P>
<P>This is similar in function to the term ``<A HREF="../../../lib/Pod/perlfunc.html#item_scalar"><CODE>scalar(@array)</CODE></A>'' for a Perl array.</P>
<P></P>
<LI>
<CODE>$vector->Word_Store($offset,$word);</CODE>
<P>This method allows you to store a given value ``<CODE>$word</CODE>'' at a given
position ``<CODE>$offset</CODE>'' in the internal array of words of the given
bit vector.</P>
<P>Note that ``<CODE>$offset</CODE>'' must lie in the permitted range between ``<CODE>0</CODE>''
and ``<CODE>$vector->Word_Size()-1</CODE>'', or a fatal ``offset out of range''
error will occur.</P>
<P>This method is similar in function to the expression
``<CODE>$array[$offset] = $word;</CODE>'' for a Perl array.</P>
<P></P>
<LI>
<CODE>$word = $vector->Word_Read($offset);</CODE>
<P>This method allows you to access the value of a given machine word
at position ``<CODE>$offset</CODE>'' in the internal array of words of the given
bit vector.</P>
<P>Note that ``<CODE>$offset</CODE>'' must lie in the permitted range between ``<CODE>0</CODE>''
and ``<CODE>$vector->Word_Size()-1</CODE>'', or a fatal ``offset out of range''
error will occur.</P>
<P>This method is similar in function to the expression
``<CODE>$word = $array[$offset];</CODE>'' for a Perl array.</P>
<P></P>
<LI>
<CODE>$vector->Word_List_Store(@words);</CODE>
<P>This method allows you to store a list of values ``<CODE>@words</CODE>'' in the
internal array of machine words of the given bit vector.</P>
<P>Thereby the <STRONG>LEFTMOST</STRONG> value in the list (``<CODE>$words[0]</CODE>'') is stored
in the <STRONG>LEAST</STRONG> significant word of the internal array of words (the
one with offset ``<CODE>0</CODE>''), the next value from the list (``<CODE>$words[1]</CODE>'')
is stored in the word with offset ``<CODE>1</CODE>'', and so on, as intuitively
expected.</P>
<P>If the list ``<CODE>@words</CODE>'' contains fewer elements than the internal
array of words of the given bit vector contains machine words,
the remaining (most significant) words are filled with zeros.</P>
<P>If the list ``<CODE>@words</CODE>'' contains more elements than the internal
array of words of the given bit vector contains machine words,
the superfluous values are simply ignored.</P>
<P>This method is comparable in function to the expression
``<CODE>@array = @words;</CODE>'' for a Perl array.</P>
<P></P>
<LI>
<CODE>@words = $vector->Word_List_Read();</CODE>
<P>This method allows you to retrieve the internal array of machine
words of the given bit vector all at once.</P>
<P>Thereby the <STRONG>LEFTMOST</STRONG> value in the returned list (``<CODE>$words[0]</CODE>'')
is the <STRONG>LEAST</STRONG> significant word from the given bit vector, and the
<STRONG>RIGHTMOST</STRONG> value in the returned list (``<CODE>$words[$#words]</CODE>'') is
the <STRONG>MOST</STRONG> significant word of the given bit vector.</P>
<P>This method is similar in function to the expression
``<CODE>@words = @array;</CODE>'' for a Perl array.</P>