## RcppEigen:
Rcpp Integration for the Eigen Templated Linear Algebra Library

### Synopsis

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.

### Examples

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]]
VectorXd getEigenValues(Map<MatrixXd> M) {
SelfAdjointEigenSolver<MatrixXd> es(M);
return 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.

### Status

The package is mature and under active development, following the Eigen release cycle.

### Documentation

The package contains a pdf vignette which is a pre-print of the paper by Bates and
Eddelbuettel in JSS (2013, v52i05).

### Authors

Douglas Bates, Dirk Eddelbuettel, Romain Francois, and Yixuan Qiu

### License

GPL (>= 2)

Initially created: Thu Mar 11 11:14:31 CST 2010

Last modified: Sun May 26 10:09:44 CDT 2024