RcppAlgos

Tools for Combinatorics and Computational Mathematics

Provides optimized functions implemented in C++ with 'Rcpp' for solving problems in combinatorics and computational mathematics. There are combination/permutations function that are both flexible as well as efficient with respect to speed and memory. There are optional constraint parameters that when utilized, generate all combinations/ permutations of a vector meeting specific criteria (e.g. finding all combinations such that the sum is less than a bound). These functions are capable of generating specific combinations/permutations (e.g. retrieve only the 50th lexicographical permutation of 5 elements choose 3) by utilizing the bounds arguments. This sets up nicely for parallelization and allows for fast generation of combinations/ permutations beyond 2^31 - 1 results as chunks are generated independently. All combinatorial functions are capable of handling multisets as well. Additionally, there are several highly efficient number theoretic functions that are useful for problems common in computational mathematics. These include various sieving functions that can quickly generate the following: prime numbers, number of coprime elements, number of divisors, prime factorizations, and complete factorizations. Some of these functions make use of the fast integer division library 'libdivide' by <http://ridiculousfish.com>. The primeSieve function is based on the segmented sieve of Eratosthenes implementation by Kim Walisch. It is capable of generating all primes less than a billion in just over 1 second. It can also quickly generate prime numbers over a range (e.g. primeSieve(10^13, 10^13+10^9)). There are stand-alone vectorized functions for general factoring (e.g. all divisors of number), primality testing, as well as prime factoring via Pollard's rho algorithm. Finally, there is a prime counting function that implements a simple variation of Legendre's formula based on the algorithm by Kim Walisch. It is capable of returning the number of primes below a trillion in under 0.5 seconds.

Total

3,164

Last month

634

Last week

407

Average per day

21

Daily downloads

Total downloads

Description file content

Package
RcppAlgos
Version
2.0.2
Title
Tools for Combinatorics and Computational Mathematics
Description
Provides optimized functions implemented in C++ with 'Rcpp' for solving problems in combinatorics and computational mathematics. There are combination/permutations function that are both flexible as well as efficient with respect to speed and memory. There are optional constraint parameters that when utilized, generate all combinations/ permutations of a vector meeting specific criteria (e.g. finding all combinations such that the sum is less than a bound). These functions are capable of generating specific combinations/permutations (e.g. retrieve only the 50th lexicographical permutation of 5 elements choose 3) by utilizing the bounds arguments. This sets up nicely for parallelization and allows for fast generation of combinations/ permutations beyond 2^31 - 1 results as chunks are generated independently. All combinatorial functions are capable of handling multisets as well. Additionally, there are several highly efficient number theoretic functions that are useful for problems common in computational mathematics. These include various sieving functions that can quickly generate the following: prime numbers, number of coprime elements, number of divisors, prime factorizations, and complete factorizations. Some of these functions make use of the fast integer division library 'libdivide' by . The primeSieve function is based on the segmented sieve of Eratosthenes implementation by Kim Walisch. It is capable of generating all primes less than a billion in just over 1 second. It can also quickly generate prime numbers over a range (e.g. primeSieve(10^13, 10^13+10^9)). There are stand-alone vectorized functions for general factoring (e.g. all divisors of number), primality testing, as well as prime factoring via Pollard's rho algorithm. Finally, there is a prime counting function that implements a simple variation of Legendre's formula based on the algorithm by Kim Walisch. It is capable of returning the number of primes below a trillion in under 0.5 seconds.
URL
BugReports
https://github.com/jwood000/RcppAlgos/issues
Imports
Rcpp (>= 0.12.8)
LinkingTo
Rcpp
Suggests
testthat, gmp (>= 0.5-1), numbers (>= 0.6-6), bigIntegerAlgos, parallel
License
GPL (>= 2)
LazyData
TRUE
NeedsCompilation
yes
Author
Joseph Wood
Maintainer
Joseph Wood
Encoding
UTF-8
RoxygenNote
6.0.1
Packaged
2018-06-14 12:30:31 UTC; josephwood
Repository
CRAN
Date/Publication
2018-06-14 14:00:02 UTC

install.packages('RcppAlgos')

2.0.2

7 days ago

https://github.com/jwood000/RcppAlgos

Joseph Wood

GPL (>= 2)

Imports

Rcpp (>= 0.12.8)

Suggests

testthat, gmp (>= 0.5-1), numbers (>= 0.6-6), bigIntegerAlgos, parallel

Discussions