ultra-mega-enumerator
Version:
Ultra Mega Enumerator is a lightweight library designed to enumerate various combinatorial objects.
83 lines (82 loc) • 2.56 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",
MaxZeroX = "MaxZeroX",
MinZeroX = "MinZeroX",
MaxZeroY = "MaxZeroY",
MinZeroY = "MinZeroY",
Modulo = "Modulo",
Bounce = "Bounce",
And = "And",
Or = "Or",
Xor = "Xor",
ShiftLeft = "ShiftLeft",
ShiftRight = "ShiftRight",
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"
}
export declare enum Combiner {
Product = "Product",
NegativeProduct = "NegativeProduct",
Convolution = "Convolution",
Triangular = "Triangular",
Recycle = "Recycle",
LCM = "LCM",
Apply = "Apply",
Reduce = "Reduce",
MixedRadix = "Mixed Radix",
Bits = "Bits",
Trits = "Trits"
}
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;
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;
}