ultra-mega-enumerator
Version:
Ultra Mega Enumerator is a lightweight library designed to enumerate various combinatorial objects.
31 lines (30 loc) • 1.44 kB
TypeScript
import { Combination } from ".";
/**
* The {@code ImmutableCombination} class represents a combination of elements that cannot
* be modified after creation. It encapsulates an instance of the {@code Combination} class,
* providing an immutable interface for handling set operations relevant to combinatorial
* structures in various contexts, including music theory.
*/
export declare class ImmutableCombination {
protected readonly combination: Combination;
protected constructor(combination: Combination);
static fromCombination(c: Combination): ImmutableCombination;
static fromBinarySequence(seq: boolean[]): ImmutableCombination;
static createWithSize(n: number): ImmutableCombination;
static createWithSizeAndSet(n: number, set: Set<number>): ImmutableCombination;
getN(): number;
getK(): number;
combinationString(): string;
getIntervalVector(): number[];
rotate(t: number): ImmutableCombination;
intersect(c: ImmutableCombination): ImmutableCombination;
minus(c: ImmutableCombination): ImmutableCombination;
static merge(a: ImmutableCombination, b: ImmutableCombination): ImmutableCombination;
mergeWith(c: ImmutableCombination): ImmutableCombination;
symmetricDifference(y: ImmutableCombination): ImmutableCombination;
get(bitIndex: number): boolean;
isEmpty(): boolean;
toString(): string;
asSequence(): number[];
equals(obj: any): boolean;
}