[Rcpp-devel] sourceCpp with RcppEigen?

Dirk Eddelbuettel edd at debian.org
Mon Oct 10 16:30:31 CEST 2022


On 10 October 2022 at 09:16, Dirk Eddelbuettel wrote:
| 
| On 10 October 2022 at 14:02, Sparapani, Rodney wrote:
| | I’m wondering what it would take to make RcppEigen functions
| | work wth sourceCpp?  Please let me know.  Thanks
| 
| The standard one line: add    `// [[Rcpp::depends(RcppEigen)]]`

I.e. here is (verbatim) what README.md has:



### Examples

A few examples are over at the [Rcpp Gallery](https://gallery.rcpp.org/tags/eigen/). A simple one is

```c++
#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](https://gallery.rcpp.org/articles/eigen-eigenvalues/) for details.


Dirk

-- 
dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org


More information about the Rcpp-devel mailing list