RcppAlgos
High Performance Tools for Combinatorics and Computational Mathematics
Provides optimized functions and flexible combinatorial iterators implemented in C++ for solving problems in combinatorics and computational mathematics. Utilizes the RMatrix class from 'RcppParallel' for thread safety. There are combination/permutation functions with constraint parameters that allow for generation of all results of a vector meeting specific criteria (e.g. generating integer partitions/compositions or finding all combinations such that the sum is between two bounds). Capable of generating specific combinations/permutations (e.g. retrieve only the nth lexicographical result) which sets up nicely for parallelization as well as random sampling. Gmp support permits exploration where the total number of results is large (e.g. comboSample(10000, 500, n = 4)). Additionally, there are several high performance number theoretic functions that are useful for problems common in computational mathematics. Some of these functions make use of the fast integer division library 'libdivide'. The primeSieve function is based on the segmented sieve of Eratosthenes implementation by Kim Walisch. It is also efficient for large numbers by using the cache friendly improvements originally developed by Tomás Oliveira. Finally, there is a prime counting function that implements Legendre's formula based on the work of Kim Walisch.
- GitHub
- https://gmplib.org/
- GitHub
- https://libdivide.com
- GitHub
- https://ridiculousfish.com/
- https://sweet.ua.pt/tos/software/prime_sieve.html
- File a bug report
- RcppAlgos results
- RcppAlgos.pdf
- Version2.8.5
- R versionunknown
- LicenseGPL-2
- LicenseGPL-3
- Needs compilation?Yes
- Last release10/11/2024
Documentation
- VignetteConstraints, Partitions, and Compositions
- Vignettesource
- VignetteCombinatorial Sampling and Ranking
- Vignettesource
- VignetteCombinatorial Iterators in RcppAlgos
- Vignettesource
- VignetteComputational Mathematics Overview
- Vignettesource
- VignetteCombination and Permutation Basics
- Vignettesource
- VignetteHigh Performance Benchmarks
- Vignettesource
- VignetteCartesian Products and Partitions of Groups
- Vignettesource
- VignetteAttacking Problems Related to the Subset Sum Problem
- Vignettesource
- MaterialREADME
- MaterialNEWS
- In ViewsNumericalMathematics
Team
Joseph Wood
Insights
Last 30 days
Last 365 days
The following line graph shows the downloads per day. You can hover over the graph to see the exact number of downloads per day.
Data provided by CRAN
Binaries
Dependencies
- Imports2 packages
- Suggests6 packages
- Linking To1 package
- Reverse Depends1 package
- Reverse Imports9 packages
- Reverse Suggests2 packages