RcppAlgos: High Performance Tools for Combinatorics and Computational Mathematics

Provides optimized functions and flexible iterators implemented in C++ for solving problems in combinatorics and computational mathematics. Handles various combinatorial objects including combinations, permutations, integer partitions and compositions, Cartestion products, unordered Cartesian products, and partition of groups. Utilizes the RMatrix class from 'RcppParallel' for thread safety. The combination and permutation functions contain constraint parameters that allow for generation of all results of a vector meeting specific criteria (e.g. finding all combinations such that the sum is between two bounds). Capable of ranking/unranking combinatorial objects efficiently (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.

Version: 2.9.1
Imports: gmp, methods
LinkingTo: cpp11
Suggests: testthat, partitions, microbenchmark, knitr, RcppBigIntAlgos, rmarkdown
Published: 2025-01-27
DOI: 10.32614/CRAN.package.RcppAlgos
Author: Joseph Wood [aut, cre]
Maintainer: Joseph Wood <jwood000 at gmail.com>
BugReports: https://github.com/jwood000/RcppAlgos/issues
License: GPL-2 | GPL-3 [expanded from: GPL (≥ 2)]
URL: https://github.com/jwood000/RcppAlgos, https://gmplib.org/, https://github.com/kimwalisch/primesieve, https://libdivide.com, https://github.com/kimwalisch/primecount, https://ridiculousfish.com/, https://sweet.ua.pt/tos/software/prime_sieve.html
NeedsCompilation: yes
SystemRequirements: gmp (>= 4.2.3)
Materials: README NEWS
In views: NumericalMathematics
CRAN checks: RcppAlgos results [issues need fixing before 2025-02-11]

Documentation:

Reference manual: RcppAlgos.pdf
Vignettes: Constraints, Partitions, and Compositions (source)
Combinatorial Sampling and Ranking (source)
Combinatorial Iterators in RcppAlgos (source)
Computational Mathematics Overview (source)
Combination and Permutation Basics (source)
High Performance Benchmarks (source)
Cartesian Products and Partitions of Groups (source)
Attacking Problems Related to the Subset Sum Problem (source)

Downloads:

Package source: RcppAlgos_2.9.1.tar.gz
Windows binaries: r-devel: RcppAlgos_2.8.5.zip, r-release: RcppAlgos_2.8.5.zip, r-oldrel: RcppAlgos_2.9.1.zip
macOS binaries: r-release (arm64): RcppAlgos_2.9.1.tgz, r-oldrel (arm64): RcppAlgos_2.8.5.tgz, r-release (x86_64): RcppAlgos_2.8.5.tgz, r-oldrel (x86_64): RcppAlgos_2.8.5.tgz
Old sources: RcppAlgos archive

Reverse dependencies:

Reverse depends: SMAD
Reverse imports: BayesCPclust, ccpsyc, epinetr, IDSL.UFAx, janus, mvSUSY, Rtropical, STraTUS, surveyvoi, TML
Reverse suggests: mvMAPIT, RcppBigIntAlgos

Linking:

Please use the canonical form https://CRAN.R-project.org/package=RcppAlgos to link to this page.