C# Class BitsetsNET.BitsetContainer

Inheritance: Container
Afficher le fichier Open project: BitSetsNet/BitSetsNet Class Usage Examples

Méthodes publiques

Свойство Type Description
Bitmap long[]
Cardinality int

Protected Properties

Свойство Type Description
MAX_CAPACITY int

Méthodes publiques

Méthode 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

Méthodes protégées

Méthode Description
ComputeCardinality ( ) : void

Recomputes the cardinality of the bitmap.

Method Details

Add() public méthode

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

Add() public méthode

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
Résultat Container

And() public méthode

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
Résultat Container

And() public méthode

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
Résultat Container

AndNot() public méthode

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

AndNot() public méthode

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

BitsetContainer() public méthode

public BitsetContainer ( ) : System
Résultat System

BitsetContainer() public méthode

public BitsetContainer ( int cardinality, long bitmap ) : System
cardinality int
bitmap long
Résultat System

Clone() public méthode

Creates a deep copy of this bitset container.
public Clone ( ) : Container
Résultat Container

ComputeCardinality() protected méthode

Recomputes the cardinality of the bitmap.
protected ComputeCardinality ( ) : void
Résultat void

Contains() public méthode

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

Deserialize() public static méthode

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
Résultat BitsetContainer

Equals() public méthode

public Equals ( Object o ) : bool
o Object
Résultat bool

FillArray() public méthode

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

FillLeastSignificant16bits() public méthode

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
Résultat void

Flip() public méthode

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
Résultat Container

GetCardinality() public méthode

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

GetEnumerator() public méthode

public GetEnumerator ( ) : IEnumerator
Résultat IEnumerator

GetHashCode() public méthode

public GetHashCode ( ) : int
Résultat int

IAdd() public méthode

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
Résultat Container

IAnd() public méthode

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
Résultat Container

IAnd() public méthode

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
Résultat Container

IAndNot() public méthode

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
Résultat Container

IAndNot() public méthode

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
Résultat Container

INot() public méthode

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)
Résultat Container

IOr() public méthode

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
Résultat Container

IOr() public méthode

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
Résultat Container

Intersects() public méthode

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

Intersects() public méthode

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

LoadData() public méthode

public LoadData ( ArrayContainer arrayContainer ) : void
arrayContainer ArrayContainer
Résultat void

Or() public méthode

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
Résultat Container

Or() public méthode

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
Résultat Container

Remove() public méthode

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

Remove() public méthode

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)
Résultat Container

Select() public méthode

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

Serialize() public méthode

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.
Résultat void

ToArrayContainer() public méthode

Copies the data to an array container
public ToArrayContainer ( ) : ArrayContainer
Résultat ArrayContainer

Property Details

Bitmap public_oe property

public long[] Bitmap
Résultat long[]

Cardinality public_oe property

public int Cardinality
Résultat int

MAX_CAPACITY protected_oe static_oe property

protected static int MAX_CAPACITY
Résultat int