UNPKG

fignumbers

Version:

A comprehensive TypeScript library for generating figurate numbers across multiple dimensions

30 lines 1.02 kB
import { binomialCoeff } from "../utils/helpersMultidimensionalFigNumbers.js"; const exteriorInteriorDoubleSummation = (k, n) => { let acc = 0n; for (let j = 1n; j <= n - 1n; j++) { for (let i = 0n; i <= k - 1n; i++) { acc += 2n ** (1n + i) * binomialCoeff(k, 1n + i) * binomialCoeff(j, i); } } return 2n * k + acc + 1n; }; export class KDimensionalCenteredHyperOctahedronGenerator { *generate({ step = 1n, k = 5n }) { let delta = 1n; yield 1n; while (true) { yield exteriorInteriorDoubleSummation(k, delta); delta += step; } } } export class KDimensionalCenteredHyperOctahedronSpecificGenerator { constructor(k) { this.baseGenerator = new KDimensionalCenteredHyperOctahedronGenerator(); this.k = k; } *generate({ step = 1n }) { return yield* this.baseGenerator.generate({ step, k: this.k }); } } //# sourceMappingURL=KDimensionalCenteredHyperOctahedronGenerator.js.map