arma::SpMat<short> RcppArmadillo 函数中的输入

问题描述

我通过 RcppRcppArmadillo 等编写了一个 C++ 函数,它返回一个 arma::SpMat<short>,即一个稀疏矩阵。它在 R 环境中显示dgCMatrix

稍后,我想将返回的对象插入到另一个 C++ 函数中。但是,在尝试编译该函数时,编译器会抛出 1000 多行错误消息。您可以使用以下最小工作示例复制它们:

Rcpp::sourceCpp(code='
#include <iostream>
#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]

// Enable C++11 via this plugin (Rcpp 0.10.3 or later)
// [[Rcpp::plugins(cpp11)]]

using namespace Rcpp;
using namespace arma;

// [[Rcpp::export]]
arma::mat some_function(arma::SpMat<short> x,arma::mat y) {
  return y;
}')

问题似乎是矩阵的数据类型。当使用类型为 double 而不是类型为 short 的稀疏矩阵时,编译器不会抛出相应的错误

Rcpp::sourceCpp(code='
#include <iostream>
#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]

// Enable C++11 via this plugin (Rcpp 0.10.3 or later)
// [[Rcpp::plugins(cpp11)]]

using namespace Rcpp;
using namespace arma;

// [[Rcpp::export]]
arma::mat some_function(arma::sp_mat x,arma::mat y) {
  return y;
}')

我该如何解决这个问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)