fignumbers
Version:
A comprehensive TypeScript library for generating figurate numbers across multiple dimensions
24 lines • 864 B
JavaScript
import { binomialCoeff, factorialIter, risingFactorial, } from "../utils/helpersMultidimensionalFigNumbers.js";
export class KDimensionalHyperOctahedronGenerator {
*generate({ step = 1n, k = 5n }) {
let delta = 1n;
while (true) {
let acc = 0n;
for (let i = 0n; i <= k - 1n; i++) {
acc += (binomialCoeff(k - 1n, i) * risingFactorial(delta - i, k)) / factorialIter(k);
}
yield acc;
delta += step;
}
}
}
export class KDimensionalHyperOctahedronSpecificGenerator {
constructor(k) {
this.baseGenerator = new KDimensionalHyperOctahedronGenerator();
this.k = k;
}
*generate({ step = 1n }) {
return yield* this.baseGenerator.generate({ step, k: this.k });
}
}
//# sourceMappingURL=KDimensionalHyperOctahedronGenerator.js.map