Package Exports
- ultra-mega-enumerator
Readme
Ultra Mega Enumerator 1.0.4
Ultra Mega Enumerator is a lightweight library designed to enumerate various combinatorial objects. Its goal is to provide efficient tools for generating combinations, permutations, compositions, partitions, and more.
Table of Contents
Overview
Combinatorial enumeration is a fundamental aspect of discrete mathematics and computer science. The Ultra Mega Enumerator library offers a collection of classes for generating and handling different types of combinatorial structures, making it a valuable resource for researchers, students, and developers working with these concepts.
Installation
You can install the Enumerati library via npm. To do so, run the following command in your terminal:
npm install ultra-mega-enumerator
Alternatively, if you are using Yarn as your package manager, you can install it with:
yarn add ultra-mega-enumerator
Usage
Once installed, you can import and use Ultra Mega Enumerator in your JavaScript or TypeScript project as follows:
import { CombinationEnumeration } from 'ultra-mega-enumerator';
// Example usage
for(let e of new CombinationEnumeration(7,4){
//...
}
The Numbers class contains static counting functions such as factorial, binomial, bell and catalan.
Make sure you have the required dependencies installed if you're using TypeScript:
npm install --save-dev typescript @types/node
or
yarn add --dev typescript @types/node
Enumerations
The library includes the following enumeration classes located in the enumerations/ directory:
- AbstractEnumeration: Base class for all enumerations implementing Iterable.
- BitSetEnumeration: Enumerate bit sets.
- CombinationEnumeration: Enumerate combinations.
- CompositionEnumeration: Enumerate compositions.
- DyckWordEnumeration: Enumerate Dyck words.
- FixedSetPartitionEnumeration: Enumerate fixed-size set partitions.
- KCompositionEnumeration: Enumerate k-compositions.
- KPermutationEnumeration: Enumerate k-permutations.
- MixedRadixEnumeration: Enumerate mixed radix systems or cartesian product of integers.
- NGoodPathEnumeration: Enumerate N-good paths.
- NonCrossingPartitionEnumeration: Enumerate non-crossing partitions.
- PermutationEnumeration: Enumerate permutations.
- SetPartitionEnumeration: Enumerate set partitions.
- WeakCompositionEnumeration: Enumerate weak compositions.
- WeakOrderEnumeration: Enumerate weak orders.
- WordEnumeration: Enumerate words over an alphabet.
- WordPermutationEnumeration: Enumerate permutations of words.
Objects
The library also provides the following combinatorial objects in the objects/ directory:
- BitSet: A representation of a set using bits.
- Combination: A representation of a mathematical combination.
- Composition: A representation of a mathematical composition.
Contributing
Contributions are welcome! If you have suggestions for improvements or new enumerators, please submit a pull request or open an issue.
Fork the repository. Create a new branch (git checkout -b feature-branch). Make your changes and commit them (git commit -m 'Add new feature'). Push to the branch (git push origin feature-branch). Open a pull request.
License
This project is licensed under the MIT License. See the LICENSE file for details.