The Ziggurat generator for normally distributed random numbers, originally proposed by Marsaglia and Tsang (2000, https://doi.org/10.18637/jss.v005.i08) has been improved upon a few times starting with Leong et al (2005, https://doi.org/10.18637/jss.v012.i07). This package provides an aggregation for comparing different implementations in order to provide a 'faster but good enough' alternative for use with R and C++ code.
The JSON format is ubiquitous for data interchange, and the simdjson library written by Daniel Lemire (and many contributors) provides a high-performance parser for these files which by relying on parallel SIMD instruction manages to parse these files as faster than disk speed. See the <doi:10.48550/arXiv.1902.08318> paper for more details about simdjson'. This package parses JSON from string, file, or remote URLs under a variety of settings.
This package provides a collection of libraries for numerical computing (numerical integration, optimization, etc.) and their integration with Rcpp.
This package provides the means to compile user-supplied C++ functions with Rcpp and retrieve an XPtr that can be passed to other C++ components.
In data science, it is a common practice to compute a series of columns (e.g. features) against a common response vector. Various metrics are provided with efficient computation implemented with Rcpp'.
This package provides header library and R functions to solve minimum cost bipartite matching problem using Huhn-Munkres algorithm (Hungarian algorithm; <https://en.wikipedia.org/wiki/Hungarian_algorithm>; Kuhn (1955) <doi:10.1002/nav.3800020109>).
The header-only modern C++ template library Magic Enum for static reflection of enums (to string, from string, iteration) is provided by this package. More information about the underlying library can be found at its repository at <https://github.com/Neargye/magic_enum>.
Armadillo is a templated C++ linear algebra library that aims towards a good balance between speed and ease of use. Integer, floating point and complex numbers are supported, as well as a subset of trigonometric and statistics functions. Various matrix decompositions are provided through optional integration with LAPACK and ATLAS libraries. This package includes the header files from the templated Armadillo library.
Converting ascii text into (floating-point) numeric values is a very common problem. The fast_float header-only C++ library by Daniel Lemire does it very well and very fast at up to or over to 1 gigabyte per second as described in more detail in <doi:10.1002/spe.2984>. fast_float is licensed under the Apache 2.0 license and provided here for use by other R packages via a simple LinkingTo: statement.
Ensmallen is a templated C++ mathematical optimization library (by the MLPACK team) that provides a simple set of abstractions for writing an objective function to optimize. Provided within are various standard and cutting-edge optimizers that include full-batch gradient descent techniques, small-batch techniques, gradient-free optimizers, and constrained optimization. The RcppEnsmallen package includes the header files from the Ensmallen library and pairs the appropriate header files from armadillo through the RcppArmadillo package. Therefore, users do not need to install Ensmallen nor Armadillo to use RcppEnsmallen'. Note that Ensmallen is licensed under 3-Clause BSD, Armadillo starting from 7.800.0 is licensed under Apache License 2, RcppArmadillo (the Rcpp bindings/bridge to Armadillo') is licensed under the GNU GPL version 2 or later. Thus, RcppEnsmallen is also licensed under similar terms. Note that Ensmallen requires a compiler that supports C++14 and Armadillo 10.8.2 or later.
QuantLib bindings are provided for R using Rcpp via an updated variant of the header-only Quantuccia project (put together initially by Peter Caspers) offering an essential subset of QuantLib (and now maintained separately for the calendaring subset). See the included file AUTHORS for a full list of contributors to both QuantLib and Quantuccia'. Note that this package provided an initial viability proof, current work is done (via approximately quarterly releases tracking QuantLib') in the smaller package qlcal which is generally preferred.
Features the multiple polynomial quadratic sieve (MPQS) algorithm for factoring large integers and a vectorized factoring function that returns the complete factorization of an integer. The MPQS is based off of the seminal work of Carl Pomerance (1984) <doi:10.1007/3-540-39757-4_17> along with the modification of multiple polynomials introduced by Peter Montgomery and J. Davis as outlined by Robert D. Silverman (1987) <doi:10.1090/S0025-5718-1987-0866119-8>. Utilizes the C library GMP (GNU Multiple Precision Arithmetic). For smaller integers, a simple Elliptic Curve algorithm is attempted followed by a constrained version of Pollard's rho algorithm. The Pollard's rho algorithm is the same algorithm used by the factorize function in the gmp package.
It provides functions for estimating parameters in linear spatial models with censored or missing responses using the Expectation-Maximization (EM), Stochastic Approximation EM (SAEM), and Monte Carlo EM (MCEM) algorithms. These methods are widely used to obtain maximum likelihood (ML) estimates in the presence of incomplete data. The EM algorithm computes ML estimates when a closed-form expression for the conditional expectation of the complete-data log-likelihood is available. The MCEM algorithm replaces this expectation with a Monte Carlo approximation based on independent simulations of the missing data. In contrast, the SAEM algorithm decomposes the E-step into simulation and stochastic approximation steps, improving computational efficiency in complex settings. In addition, the package provides standard error estimation based on the Louis method. It also includes functionality for spatial prediction at new locations. References used for this package: Galarza, C. E., Matos, L. A., Castro, L. M., & Lachos, V. H. (2022). Moments of the doubly truncated selection elliptical distributions with emphasis on the unified multivariate skew-t distribution. Journal of Multivariate Analysis, 189, 104944 <doi:10.1016/j.jmva.2021.104944>; Valeriano, K. A., Galarza, C. E., & Matos, L. A. (2023). Moments and random number generation for the truncated elliptical family of distributions. Statistics and Computing, 33(1), 32 <doi:10.1007/s11222-022-10200-4>.
An example package which shows use of NLopt functionality from C++ via Rcpp without requiring linking, and relying just on nloptr thanks to the exporting API added there by Jelmer Ypma. This package is a fully functioning, updated, and expanded version of the initial example by Julien Chiquet at <https://github.com/jchiquet/RcppArmadilloNLoptExample> also containing a large earlier pull request of mine.
This package provides a Minimal Example Package which demonstrates mlpack use via C++ Code from R.
This package provides a fast implementation of the greedy algorithm for the set cover problem using Rcpp'.
The Rcpp package contains a C++ library that facilitates the integration of R and C++ in various ways via a rich API. This API was preceded by an earlier version which has been deprecated since 2010 (but is still supported to provide backwards compatibility in the package RcppClassic'). This package RcppClassicExamples provides usage examples for the older, deprecated API. There is also a corresponding package RcppExamples with examples for the newer, current API which we strongly recommend as the basis for all new development.