The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
Eigen is
a C++ template library for linear algebra: matrices, vectors, numerical
solvers and related algorithms. It supports dense and sparse matrices on
integer, floating point and complex numbers, decompositions of such
matrices, and solutions of linear systems. Its performance on many
algorithms is comparable with some of the best implementations based on
Lapack
and level-3 BLAS
.
RcppEigen provides an interface from R to and from Eigen by using the facilities offered by the Rcpp package for seamless R and C++ integration.
A few examples are over at the Rcpp Gallery. A simple one is
#include <RcppEigen.h>
// [[Rcpp::depends(RcppEigen)]]
using Eigen::Map; // 'maps' rather than copies
using Eigen::MatrixXd; // variable size matrix, double precision
using Eigen::VectorXd; // variable size vector, double precision
using Eigen::SelfAdjointEigenSolver; // one of the eigenvalue solvers
// [[Rcpp::export]]
(Map<MatrixXd> M) {
VectorXd getEigenValues<MatrixXd> es(M);
SelfAdjointEigenSolverreturn es.eigenvalues();
}
which can be turned into a function callable from R via a simple
sourceCpp("eigenExample.cpp")
due to the two Rcpp directives to use headers from the RcppEigen
package, and to export the getEigenValues()
function – but
read the
full post for details.
The package is mature and under active development, following the Eigen release cycle.
The package contains a pdf vignette which is a pre-print of the paper by Bates and Eddelbuettel in JSS (2013, v52i05).
Douglas Bates, Dirk Eddelbuettel, Romain Francois, and Yixuan Qiu
GPL (>= 2)
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.