SSJ
3.3.1
Stochastic Simulation in Java
|
This class implements vectors of bits and the operations needed to use them. More...
Public Member Functions | |
BitVector (int length) | |
Creates a new BitVector of length length with all its bits set to 0. More... | |
BitVector (int[] vect, int length) | |
Creates a new BitVector of length length using the data in vect . More... | |
BitVector (int[] vect) | |
Creates a new BitVector using the data in vect . More... | |
BitVector (BitVector that) | |
Creates a copy of the BitVector that . More... | |
Object | clone () |
Creates a copy of the BitVector . More... | |
boolean | equals (BitVector that) |
Verifies if two BitVector ’s have the same length and the same data. More... | |
int | size () |
Returns the length of the BitVector . More... | |
void | enlarge (int size, boolean filling) |
Resizes the BitVector so that its length is equal to size . More... | |
void | enlarge (int size) |
Resizes the BitVector so that its length is equal to size . More... | |
boolean | getBool (int pos) |
Gives the value of the bit in position pos . More... | |
void | setBool (int pos, boolean value) |
Sets the value of the bit in position pos . More... | |
int | getInt (int pos) |
Returns an int containing all the bits in the interval \([\mathtt{pos} \times32, \mathtt{pos} \times32 + 31]\). More... | |
String | toString () |
Returns a string containing all the bits of the BitVector , starting with the highest order bit and finishing with the lowest order bit. More... | |
BitVector | not () |
Returns a BitVector which is the result of the not operator on the current BitVector . More... | |
BitVector | selfNot () |
Applies the not operator on the current BitVector and returns it. More... | |
BitVector | xor (BitVector that) |
Returns a BitVector which is the result of the xor operator applied on this and that . More... | |
BitVector | selfXor (BitVector that) |
Applies the xor operator on this with that . More... | |
BitVector | and (BitVector that) |
Returns a BitVector which is the result of the and operator with both the this and that BitVector ’s. More... | |
BitVector | selfAnd (BitVector that) |
Applies the and operator on this with that . More... | |
BitVector | or (BitVector that) |
Returns a BitVector which is the result of the or operator with both the this and that BitVector ’s. More... | |
BitVector | selfOr (BitVector that) |
Applies the or operator on this with that . More... | |
BitVector | shift (int j) |
Returns a BitVector equal to the original with all the bits shifted j positions to the right if j is positive, and shifted j positions to the left if j is negative. More... | |
BitVector | selfShift (int j) |
Shift all the bits of the current BitVector j positions to the right if j is positive, and j positions to the left if j is negative. More... | |
boolean | scalarProduct (BitVector that) |
Returns the scalar product of two BitVector ’s modulo 2. More... | |
Static Package Attributes | |
static final long | serialVersionUID = -3448233092524725148L |
This class implements vectors of bits and the operations needed to use them.
The vectors can be of arbitrary length. The operations provided are all the binary operations available to the int
and long
primitive types in Java.
All bit operations are present in two forms: a normal form and a self
form. The normal form returns a newly created object containing the result, while the self
form puts the result in the calling object (this
). The return value of the self
form is the calling object itself. This is done to allow easier manipulation of the results, making it possible to chain operations.
BitVector | ( | int | length | ) |
BitVector | ( | int [] | vect, |
int | length | ||
) |
Creates a new BitVector
of length length
using the data in vect
.
Component vect[0]
makes the 32 lowest order bits, with vect[1]
being the 32 next lowest order bits, and so on. The normal bit order is then used to fill the 32 bits (the first bit is the lowest order bit and the last bit is largest order bit). Note that the sign bit is used as the largest order bit.
vect | the bits data |
length | the length of the vector |
IllegalArgumentException | when the length of vect is not compatible with the length provided |
BitVector | ( | int [] | vect | ) |
Returns a BitVector
which is the result of the and
operator with both the this
and that
BitVector
’s.
The and
operator is equivalent to the &
operator in Java. Only bits which are set to 1 in both this
and that
are set to 1 in the result, all the others are set to 0.
that | the second operand to the and operator |
and
operation void enlarge | ( | int | size, |
boolean | filling | ||
) |
void enlarge | ( | int | size | ) |
boolean equals | ( | BitVector | that | ) |
boolean getBool | ( | int | pos | ) |
Gives the value of the bit in position pos
.
If the value is 1, returns true
; otherwise, returns false
.
pos | the position of the checked bit |
ArrayIndexOutOfBoundsException | if pos is outside the range of the BitVector |
int getInt | ( | int | pos | ) |
Returns an int
containing all the bits in the interval \([\mathtt{pos} \times32, \mathtt{pos} \times32 + 31]\).
pos | the selected position |
ArrayIndexOutOfBoundsException | if pos is outside the range of the BitVector |
BitVector not | ( | ) |
Returns a BitVector
which is the result of the or
operator with both the this
and that
BitVector
’s.
The or
operator is equivalent to the |
operator in Java. Only bits which are set to 0 in both this
and that
are set to to 0 in the result, all the others are set to 1.
that | the second operand to the or operator |
or
operation boolean scalarProduct | ( | BitVector | that | ) |
Returns the scalar product of two BitVector
’s modulo 2.
It returns true
if there is an odd number of bits with a value of 1 in the result of the and
operator applied on this
and that
, and returns false
otherwise.
that | the other BitVector with which to do the scalar product |
Applies the and
operator on this
with that
.
Stores the result in this
and returns it.
that | the second operand to the and operator |
this
BitVector selfNot | ( | ) |
Applies the or
operator on this
with that
.
Stores the result in this
and returns it.
that | the second operand to the or operator |
this
BitVector selfShift | ( | int | j | ) |
Shift all the bits of the current BitVector
j
positions to the right if j
is positive, and j
positions to the left if j
is negative.
The new bits that appears to the left or to the rigth are set to 0. Returns this
.
j | the size of the shift |
this
Applies the xor
operator on this
with that
.
Stores the result in this
and returns it.
that | the second operand to the xor operator |
this
void setBool | ( | int | pos, |
boolean | value | ||
) |
Sets the value of the bit in position pos
.
If value
is equal to true
, sets it to 1; otherwise, sets it to 0.
pos | the position of the bit to modify |
value | the new value of the bit as a boolean |
ArrayIndexOutOfBoundsException | if pos is outside the range of the BitVector |
BitVector shift | ( | int | j | ) |
Returns a BitVector
equal to the original with all the bits shifted j
positions to the right if j
is positive, and shifted j
positions to the left if j
is negative.
The new bits that appears to the left or to the right are set to 0. If j
is positive, this operation is equivalent to the >>>
operator in Java, otherwise, it is equivalent to the <<
operator.
j | the size of the shift |
BitVector
String toString | ( | ) |
Returns a BitVector
which is the result of the xor
operator applied on this
and that
.
The xor
operator is equivalent to the ^
operator in Java. All bits which were set to 0 in one of the vector and to 1 in the other vector are set to 1. The others are set to 0. This is equivalent to the addition in modulo 2 arithmetic.
that | the second operand to the xor operator |
xor
operation