UNPKG

ultra-mega-enumerator

Version:

Ultra Mega Enumerator is a lightweight library designed to enumerate various combinatorial objects.

27 lines 1.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CompositionEnumeration = void 0; const AbstractEnumeration_1 = require("./AbstractEnumeration"); const Composition_1 = require("./../objects/Composition"); const BitSetEnumeration_1 = require("./BitSetEnumeration"); class CompositionEnumeration extends AbstractEnumeration_1.AbstractEnumeration { constructor(n) { super(); if (n < 1) { throw new Error("Invalid argument: n must be at least 1."); } this.be = new BitSetEnumeration_1.BitSetEnumeration(n - 1); this.n = n; } nextElement() { if (!this.hasMoreElements()) { throw new Error("No such element"); } return Composition_1.Composition.compositionFromBitSet(this.be.nextElement()); } hasMoreElements() { return this.be.hasMoreElements(); } } exports.CompositionEnumeration = CompositionEnumeration; //# sourceMappingURL=CompositionEnumeration.js.map