編集:ラッピングのこのフォームを有効にするには
コードがRcppEigen
のDEVバージョンにマージされました。
devtools::install_github("RcppCore/RcppEigen")
オリジナル:経由してコピーをつかむこと自由に感じ
パーRcppEigenのunit testsとexporters、それlooks VectorXd/VectorXiが現在の設定エクスポートクラスを持っているだけであるかのように。
これは輸出者クラスに追加する必要があります。ここにはPR containing the fixがあります。 RowVectorXd
ので
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());}
} ;
Xの小数の行ベクトルとして与えられる:Matrix<double, 1, X>
。 Matrix docs