UNPKG

fignumbers

Version:

A comprehensive TypeScript library for generating figurate numbers across multiple dimensions

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