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.