微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。