ultra-mega-enumerator
Version:
Ultra Mega Enumerator is a lightweight library designed to enumerate various combinatorial objects.
36 lines (35 loc) • 1.21 kB
TypeScript
export declare class BitSet {
protected bits: Set<number>;
protected n: number;
constructor(n: number);
getTrueBits(): Set<number>;
compareTo(other: BitSet): number;
size(): number;
getBitSetAsBooleanArray(): boolean[];
get(bitIndex: number): boolean;
set(bitIndex: number, value?: boolean): void;
clear(bitIndex: number): void;
flip(bitIndex: number): void;
nextSetBit(fromIndex: number): number;
nextClearBit(fromIndex: number): number;
previousSetBit(fromIndex: number): number;
previousClearBit(fromIndex: number): number;
toBitString(): string;
toString(): string;
cardinality(): number;
and(bitSet: BitSet): void;
or(bitSet: BitSet): void;
xor(bitSet: BitSet): void;
equals(obj: any): boolean;
copy(): BitSet;
getBitSetAsNumberArray(): number[];
rotate(t: number): BitSet;
union(other: BitSet): BitSet;
intersection(other: BitSet): BitSet;
minus(other: BitSet): BitSet;
static bitSetFromNumberArray(bitArray: number[]): BitSet;
static fromBitString(bitString: string): BitSet;
intersects(bitSet: BitSet): boolean;
isEmpty(): boolean;
resize(newSize: number): void;
}