GitHunt
DE

deepeshpatel/jnumbertools

JNumberTools is an open-source Java library for solving complex problems in combinatorics and number theory. Whether you're a researcher, developer, or student, this library offers a comprehensive set of APIs to efficiently handle a wide range of mathematical tasks, from basic to advanced combinatorial computations

JNumberTools

JNumberTools

JNumberTools is an open-source Java library that tames massive combinatorial problems in big data pipelines, delivering scalable permutations, combinations, Cartesian products, and rankings. Integrated with Apache Spark, Flink, and Hadoop for batch and stream processing, it outperforms libraries like Apache Commons and Guava with constrained generation and lexicographical sampling. From synthetic data generation to cybersecurity, bioinformatics, and software testing, JNumberTools empowers data engineers, developers, and researchers to solve real-world challenges efficiently.

Key Features:

  1. Versatile applications in machine learning, cryptography, testing, and optimization, with production-ready performance.
  2. Stream-based APIs for constrained permutations, combinations, and Cartesian products, optimized for distributed pipelines.
  3. Lexicographical sampling and ranking for efficient exploration of large combinatorial spaces.
  4. Seamless integration with Spark, Flink, and Hadoop for big data workflows.

Latest Version

The latest release of the library is available on GitHub.
It is available through The Maven Central Repository here.
Add the following section to your configuration(pom/gradle etc) file.

<dependency>
    <groupId>io.github.deepeshpatel</groupId>
    <artifactId>jnumbertools</artifactId>
    <version>3.0.1</version>
</dependency>

Gradle

implementation 'io.github.deepeshpatel:jnumbertools:3.0.1'

SBT

libraryDependencies += "io.github.deepeshpatel" % "jnumbertools" % "3.0.1"

Performance

  • BigInteger Support: Handle indices up to 10^100 and beyond
  • Memory Efficient: Stream-based generation for massive datasets
  • Big Data Ready: Native integration with Apache Spark, Flink, Hadoop
  • Optimized Algorithms: Efficient lexicographical generation and ranking

License
Stars

Currently Available Algorithms

  1. Permutations: 23 different types of permutations
  2. Combinations: 15 different types of combinations
  3. Set/subset generations: 7 different types available
  4. Cartesian Product: 4 different types of products
  5. Ranking of permutations & combinations: 7 different types of rankings
  6. Number system algorithms: 3 different types for combinatorics
  7. Math Functions

Languages

Java98.9%HTML1.1%

Contributors

GNU General Public License v3.0
Created July 12, 2021
Updated March 9, 2026
deepeshpatel/jnumbertools | GitHunt