ultra-mega-enumerator
Version:
Ultra Mega Enumerator is a lightweight library designed to enumerate various combinatorial objects.
100 lines (99 loc) • 3.06 kB
TypeScript
export declare enum Operation {
Add = "Add",
Subtract = "Subtract",
Multiply = "Multiply",
Divide = "Divide",
X = "X",
Y = "Y",
Power = "Power",
Log = "Log",
Min = "Min",
Max = "Max",
Modulo = "Modulo",
Bounce = "Bounce",
Distance = "Distance",
And = "And",
Nand = "Nand",
Or = "Or",
Nor = "Nor",
Implication = "Implication",
ReverseImplication = "ReverseImplication",
Xor = "Xor",
Xnor = "Xnor",
ShiftBits = "ShiftBits",
ProjectBits = "ProjectBits",
LCM = "LCM",
GCD = "GCD",
Equal = "Equal",
NotEqual = "NotEqual",
LessThan = "LessThan",
LessThanOrEqual = "LessThanOrEqual",
GreaterThan = "GreaterThan",
GreaterThanOrEqual = "GreaterThanOrEqual",
Binomial = "Binomial",
ExpandBits = "ExpandBits",
ExpandBitsFill = "ExpandBitsFill",
CantorIntervalBinaryNumber = "CantorIntervalBinaryNumber",
PermuteBits = "PermuteBits",
HardThreshold = "HardThreshold",
RandInt = "RandInt",
IterateBetween = "IterateBetween",
Bits = "Bits",
Trits = "Trits",
TritAnd = "TritAnd",
TritNand = "TritNand",
TritOr = "TritOr",
TritNor = "TritNor",
TritCons = "TritCons",
TritNcons = "TritNcons",
TritAny = "TritAny",
TritNany = "TritNany",
TritMul = "TritMul",
TritNmul = "TritNmul",
TritSum = "TritSum",
TritNsum = "TritNsum"
}
export declare enum Combiner {
Product = "Product",
SwappedProduct = "SwappedProduct",
Divisive = "Divisive",
Convolution = "Convolution",
Triangular = "Triangular",
SwappedTriangular = "SwappedTriangular",
Recycle = "Recycle",
Apply = "Apply",
MixedRadix = "Mixed Radix"
}
export declare class Sequence {
private items;
constructor(...items: number[]);
toString(): string;
add(item: number): void;
size(): number;
get(index: number): number | undefined;
set(index: number, value: number): void;
concat(n: number[]): number[];
toArray(): number[];
signs(): Sequence;
isNatural(): boolean;
difference(): Sequence;
cyclicalDifference(): Sequence;
antidifference(k: number): Sequence;
cyclicalAntidifference(k: number): Sequence;
getSymmetries(): number[];
static parse(s: string): Sequence;
getMean(): number;
sum(): number;
getMin(): number;
getMax(): number;
rotate(n: number): Sequence;
static fromArray(arr: number[]): Sequence;
frequencyMap(): Map<number, number>;
static genRnd(length: number, amp: number, sum: number, maxAmp: number, exclude0: boolean): Sequence;
private static calculateIntervalVector;
static calcIntervalVector(input: boolean[]): Sequence;
static calcIntervalVectorBitSet(input: boolean[], n: number): Sequence;
static calcIntervalVectorDistinct(sequence: Sequence): Map<number, Sequence>;
static calcIntervalVectorInts(input: number[]): Map<number, Sequence>;
static combine(combiner: Combiner, operation: Operation, x: Sequence, y: Sequence): Sequence;
}