Movatterモバイル変換


[0]ホーム

URL:


Dirk Eddelbuettel
RcppEigen:Rcpp Integration for the Eigen Templated Linear Algebra Library

Build StatusLicenseLicenseCRANDependenciesDebian packageLast Commit
DownloadsCRAN useBioConductor useStackOverflowJSS

Synopsis

Eigen is a C++ templatelibrary for linear algebra: matrices, vectors, numerical solvers andrelated algorithms. It supports dense and sparse matrices on integer,floating point and complex numbers, decompositions of such matrices, andsolutions of linear systems. Its performance on many algorithms iscomparable with some of the best implementations based onLapack and level-3BLAS.

RcppEigen provides an interface from R to and fromEigen by using the facilitiesoffered by theRcpp package forseamless R and C++ integration.

Examples

A few examples are over at theRcpp Gallery. A simpleone is

#include<RcppEigen.h>// [[Rcpp::depends(RcppEigen)]]using Eigen::Map;// 'maps' rather than copiesusing Eigen::MatrixXd;// variable size matrix, double precisionusing Eigen::VectorXd;// variable size vector, double precisionusing 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 RcppEigenpackage, and to export thegetEigenValues() function – butreadthefull post for details.

Status

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

Documentation

The package contains a pdf vignette which is a pre-print of thepaper by Bates andEddelbuettel 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


[8]
ページ先頭

©2009-2025 Movatter.jp