Я попытался написать простую функцию в cpp, которую я могу использовать в rcpp, например:
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
inline static double calc(double a, double b, double c){
return a - b + c;
}
// [[Rcpp::export]]
void other_function() {
double res = calc(1.00, 0.00, 3.00); // no error
NumericVector resV;
resV[0] = calc(1.00, 0.00, 3.00); // Floating point exception
Rcout << res; // Floating point exception
}
Но каждый раз, когда я пытаюсь получить доступ к результату функции calc (), я получаю Исключение с плавающей запятой .
Если я только получу R-файл и вызову функцию res () из консоли, все будет в порядке:
source("myscript.R")
calc(1.00,0.00,3.00)
>> 4.00
Что я уже пробовал:
UPDATE:
Каждый раз, когда я пытаюсь вызвать other_function () в другой функции, я получаю следующее сообщение:
Floating point exception
Например:
void another_function() {
other_function(); // produce Floating point exception
}
Если я вызываю other_function () напрямую в R, все в порядке!
Также этот код (спасибо snake_style) не работал для меня:
NumericVector resV = NumericVector::create(progressionC(1.00, 0.00, 3.00));
решаемые
Я решил проблему , просто переустановив пакет Rcpp. Я не знаю, почему я получил эту ошибку ... в любом случае, теперь она работает.