C# Class BitsetsNET.BitsetContainer

Inheritance: Container
Show file Open project: BitSetsNet/BitSetsNet Class Usage Examples

Public Properties

Property Type Description
Bitmap long[]
Cardinality int

Protected Properties

Property Type Description
MAX_CAPACITY int

Public Methods

Method Description
Add ( ushort x ) : Container

Add a short to the container. May generate a new container.

Add ( ushort rangeStart, ushort rangeEnd ) : Container

Add to the current bitmap all integers in [rangeStart,rangeEnd).

And ( ArrayContainer x ) : Container

Computes the bitwise AND of this container with another (intersection). This container as well as the provided container are left unaffected.

And ( BitsetContainer x ) : Container

Computes the bitwise AND of this container with another (intersection). This container as well as the provided container are left unaffected.

AndNot ( ArrayContainer x ) : Container

Returns the elements of this BitsetContainer that are not in the ArrayContainer.

AndNot ( BitsetContainer x ) : Container

Returns the elements of this BitsetContainer that are not in the other BitsetContainer.

BitsetContainer ( ) : System
BitsetContainer ( int cardinality, long bitmap ) : System
Clone ( ) : Container

Creates a deep copy of this bitset container.

Contains ( ushort x ) : bool

Checks whether the container contains the provided value.

Deserialize ( BinaryReader reader, int cardinality ) : BitsetContainer

Deserialize a container from binary format, as written by the Serialize method minus the first 32 bits giving the cardinality.

Equals ( Object o ) : bool
FillArray ( ushort array ) : void

Fill the array with set bits.

FillLeastSignificant16bits ( int x, int i, int mask ) : void

Fill the least significant 16 bits of the integer array, starting at index i, with the short values from this container. The caller is responsible to allocate enough room. The most significant 16 bits of each integer are given by the most significant bits of the provided mask.

Flip ( ushort i ) : Container

Add a short to the container if it is not present, otherwise remove it. May generate a new container.

GetCardinality ( ) : int

Computes the distinct number of short values in the container. Can be expected to run in constant time.

GetEnumerator ( ) : IEnumerator
GetHashCode ( ) : int
IAdd ( ushort begin, ushort end ) : Container

Add all shorts in [begin,end) using an unsigned interpretation. May generate a new container.

IAnd ( ArrayContainer other ) : Container

Performs an "in-place" intersection with an ArrayContainer. Since no in-place operation is actually possible, this method defaults to calling ArrayContainer's and() method with this as input.

IAnd ( BitsetContainer other ) : Container

Performs an intersection with another BitsetContainer. Depending on the cardinality of the result, this will either modify the container in place or return a new ArrayContainer.

IAndNot ( ArrayContainer x ) : Container

Returns the elements of this BitsetContainer that are not in the ArrayContainer by modifying the current container in place.

IAndNot ( BitsetContainer x ) : Container

Returns the elements of this BitsetContainer that are not in the other BitsetContainer. Depending on the cardinality of the result, this will either modify the container in place or return a new ArrayContainer.

INot ( int rangeStart, int rangeEnd ) : Container

Computes the in-place bitwise NOT of this container (complement). Only those bits within the range are affected.The current container is generally modified.May generate a new container.

IOr ( ArrayContainer x ) : Container

Computes the in-place bitwise OR of this container with another (union). The current container is generally modified, whereas the provided container(x) is unaffected.May generate a new container.

IOr ( BitsetContainer x ) : Container

Computes the in-place bitwise OR of this container with another (union). The current container is generally modified, whereas the provided container(x) is unaffected.May generate a new container.

Intersects ( ArrayContainer x ) : bool

Returns true if the current container intersects the other container.

Intersects ( BitsetContainer x ) : bool

Returns true if the current container intersects the other container.

LoadData ( ArrayContainer arrayContainer ) : void
Or ( ArrayContainer x ) : Container

Computes the bitwise OR of this container with another (union). This container as well as the provided container are left unaffected.

Or ( BitsetContainer x ) : Container

Computes the bitwise OR of this container with another (union). This container as well as the provided container are left unaffected.

Remove ( ushort x ) : Container

Remove specified short from this container. May create a new container.

Remove ( ushort begin, ushort end ) : Container

Remove shorts in [begin,end) using an unsigned interpretation. May generate a new container.

Select ( int j ) : ushort

Return the jth value of the container.

Serialize ( BinaryWriter writer ) : void

Serialize this container in a binary format.

The format of the serialization is the cardinality of this container as a 32-bit integer, followed by the bit array. The cardinality is used in deserialization to distinguish BitsetContainers from ArrayContainers.

ToArrayContainer ( ) : ArrayContainer

Copies the data to an array container

Protected Methods

Method Description
ComputeCardinality ( ) : void

Recomputes the cardinality of the bitmap.

Method Details

Add() public method

Add a short to the container. May generate a new container.
public Add ( ushort x ) : Container
x ushort short to be added
return Container

Add() public method

Add to the current bitmap all integers in [rangeStart,rangeEnd).
public Add ( ushort rangeStart, ushort rangeEnd ) : Container
rangeStart ushort inclusive beginning of range
rangeEnd ushort exclusive ending of range
return Container

And() public method

Computes the bitwise AND of this container with another (intersection). This container as well as the provided container are left unaffected.
public And ( ArrayContainer x ) : Container
x ArrayContainer Other container
return Container

And() public method

Computes the bitwise AND of this container with another (intersection). This container as well as the provided container are left unaffected.
public And ( BitsetContainer x ) : Container
x BitsetContainer Other container
return Container

AndNot() public method

Returns the elements of this BitsetContainer that are not in the ArrayContainer.
public AndNot ( ArrayContainer x ) : Container
x ArrayContainer the ArrayContainer to compare against
return Container

AndNot() public method

Returns the elements of this BitsetContainer that are not in the other BitsetContainer.
public AndNot ( BitsetContainer x ) : Container
x BitsetContainer the other BitsetContainer
return Container

BitsetContainer() public method

public BitsetContainer ( ) : System
return System

BitsetContainer() public method

public BitsetContainer ( int cardinality, long bitmap ) : System
cardinality int
bitmap long
return System

Clone() public method

Creates a deep copy of this bitset container.
public Clone ( ) : Container
return Container

ComputeCardinality() protected method

Recomputes the cardinality of the bitmap.
protected ComputeCardinality ( ) : void
return void

Contains() public method

Checks whether the container contains the provided value.
public Contains ( ushort x ) : bool
x ushort Value to check
return bool

Deserialize() public static method

Deserialize a container from binary format, as written by the Serialize method minus the first 32 bits giving the cardinality.
public static Deserialize ( BinaryReader reader, int cardinality ) : BitsetContainer
reader System.IO.BinaryReader The reader to deserialize from.
cardinality int
return BitsetContainer

Equals() public method

public Equals ( Object o ) : bool
o Object
return bool

FillArray() public method

Fill the array with set bits.
public FillArray ( ushort array ) : void
array ushort Container (should be sufficiently large)
return void

FillLeastSignificant16bits() public method

Fill the least significant 16 bits of the integer array, starting at index i, with the short values from this container. The caller is responsible to allocate enough room. The most significant 16 bits of each integer are given by the most significant bits of the provided mask.
public FillLeastSignificant16bits ( int x, int i, int mask ) : void
x int Provided array
i int Starting index
mask int Indicates most significant bits
return void

Flip() public method

Add a short to the container if it is not present, otherwise remove it. May generate a new container.
public Flip ( ushort i ) : Container
i ushort short to be added
return Container

GetCardinality() public method

Computes the distinct number of short values in the container. Can be expected to run in constant time.
public GetCardinality ( ) : int
return int

GetEnumerator() public method

public GetEnumerator ( ) : IEnumerator
return IEnumerator

GetHashCode() public method

public GetHashCode ( ) : int
return int

IAdd() public method

Add all shorts in [begin,end) using an unsigned interpretation. May generate a new container.
public IAdd ( ushort begin, ushort end ) : Container
begin ushort Start of range
end ushort End of range
return Container

IAnd() public method

Performs an "in-place" intersection with an ArrayContainer. Since no in-place operation is actually possible, this method defaults to calling ArrayContainer's and() method with this as input.
public IAnd ( ArrayContainer other ) : Container
other ArrayContainer the ArrayContainer to intersect
return Container

IAnd() public method

Performs an intersection with another BitsetContainer. Depending on the cardinality of the result, this will either modify the container in place or return a new ArrayContainer.
public IAnd ( BitsetContainer other ) : Container
other BitsetContainer the other BitsetContainer to intersect
return Container

IAndNot() public method

Returns the elements of this BitsetContainer that are not in the ArrayContainer by modifying the current container in place.
public IAndNot ( ArrayContainer x ) : Container
x ArrayContainer the ArrayContainer to compare against
return Container

IAndNot() public method

Returns the elements of this BitsetContainer that are not in the other BitsetContainer. Depending on the cardinality of the result, this will either modify the container in place or return a new ArrayContainer.
public IAndNot ( BitsetContainer x ) : Container
x BitsetContainer the other BitsetContainer
return Container

INot() public method

Computes the in-place bitwise NOT of this container (complement). Only those bits within the range are affected.The current container is generally modified.May generate a new container.
public INot ( int rangeStart, int rangeEnd ) : Container
rangeStart int beginning of range (inclusive); 0 is beginning of this container.
rangeEnd int ending of range (exclusive)
return Container

IOr() public method

Computes the in-place bitwise OR of this container with another (union). The current container is generally modified, whereas the provided container(x) is unaffected.May generate a new container.
public IOr ( ArrayContainer x ) : Container
x ArrayContainer Other container
return Container

IOr() public method

Computes the in-place bitwise OR of this container with another (union). The current container is generally modified, whereas the provided container(x) is unaffected.May generate a new container.
public IOr ( BitsetContainer x ) : Container
x BitsetContainer Other container
return Container

Intersects() public method

Returns true if the current container intersects the other container.
public Intersects ( ArrayContainer x ) : bool
x ArrayContainer Other container
return bool

Intersects() public method

Returns true if the current container intersects the other container.
public Intersects ( BitsetContainer x ) : bool
x BitsetContainer Other container
return bool

LoadData() public method

public LoadData ( ArrayContainer arrayContainer ) : void
arrayContainer ArrayContainer
return void

Or() public method

Computes the bitwise OR of this container with another (union). This container as well as the provided container are left unaffected.
public Or ( ArrayContainer x ) : Container
x ArrayContainer Other container
return Container

Or() public method

Computes the bitwise OR of this container with another (union). This container as well as the provided container are left unaffected.
public Or ( BitsetContainer x ) : Container
x BitsetContainer Other container
return Container

Remove() public method

Remove specified short from this container. May create a new container.
public Remove ( ushort x ) : Container
x ushort Short to be removed
return Container

Remove() public method

Remove shorts in [begin,end) using an unsigned interpretation. May generate a new container.
public Remove ( ushort begin, ushort end ) : Container
begin ushort Start of range (inclusive)
end ushort End of range (exclusive)
return Container

Select() public method

Return the jth value of the container.
public Select ( int j ) : ushort
j int Index of the value
return ushort

Serialize() public method

Serialize this container in a binary format.
The format of the serialization is the cardinality of this container as a 32-bit integer, followed by the bit array. The cardinality is used in deserialization to distinguish BitsetContainers from ArrayContainers.
public Serialize ( BinaryWriter writer ) : void
writer System.IO.BinaryWriter The writer to which to serialize this container.
return void

ToArrayContainer() public method

Copies the data to an array container
public ToArrayContainer ( ) : ArrayContainer
return ArrayContainer

Property Details

Bitmap public property

public long[] Bitmap
return long[]

Cardinality public property

public int Cardinality
return int

MAX_CAPACITY protected static property

protected static int MAX_CAPACITY
return int