Edit:
код, чтобы включить эту форму упаковки были объединены в версии Dev из RcppEigen
. Вы можете получить копию с помощью:
devtools::install_github("RcppCore/RcppEigen")
Оригинал:
Per RcppEigen-х unit tests и exporters, он looks, как будто только VectorXd/VectorXi в настоящее время имеет класс экспорта установить.
Это необходимо добавить к классу экспортера. Вот PR containing the fix.
template<typename T>
class Exporter<Eigen::Map<Eigen::Matrix<T, 1, Eigen::Dynamic> > > {
typedef typename Eigen::Map<Eigen::Matrix<T, 1, Eigen::Dynamic> > OUT ;
const static int RTYPE = ::Rcpp::traits::r_sexptype_traits<T>::rtype ;
Rcpp::Vector<RTYPE> vec ;
public:
Exporter(SEXP x) : vec(x) {
if (TYPEOF(x) != RTYPE)
throw std::invalid_argument("Wrong R type for mapped vector");
}
OUT get() {return OUT(vec.begin(), vec.size());}
} ;
Поскольку RowVectorXd
задается как вектор-строка знаков после запятой X: Matrix<double, 1, X>
. См. Matrix docs