Hi, I am afraid the example you provided is not a
reproducible example.
First, we don't know the content of ge-model.h. Second, we
don't know which input will trigger the fault.
Please provide a reproducible example if you really want to
get help.
Best,
KK
On Sat, Jul 1, 2017 at 11:06 AM, 井澤 毅
<a-iz...@mail.ecc.u-tokyo.ac.jp
<mailto:a-iz...@mail.ecc.u-tokyo.ac.jp>> wrote:
Dear rcpp-devel@lists.r-forge.r-project.org
<mailto:rcpp-devel@lists.r-forge.r-project.org>,
Sorry for bothering you much, but do me a favor please.
Please help me some.
I am just a molecular biologist working on plants.
Thus, I am still a newcomer in this field.
Recently, I have been working with a script using
RcppArmadillo, This has helped me a lot. However, after
updating the system in our institute, the script gives
me an error repeatedly. My former Postdoc wrote this
script. Thus, I did not know this inside much.
I have tried to fix it for more than a month, but now I
have no idea how to fix it. I would appreciate it very
much if you could help and give me your advice.
Please see an attached cpp file, termed ge-r.cpp. With
this cpp file and other ones, I have succeeded to
install a skeleton R package into R using your function
Rcpp.package.skeleton.
In this ge-r.cpp, there is one R function called
simulate_R() written. In this R fucntion, there are two
C++ functions, load() and simulate(), both are
described in other cpp files, called from C++ into R.
With cout function described in simulate_R(), I
confirmed these two function work in R thanks to
RcppArmadillo, however, it suddenly stops with an
error, address(nil) cause 'unknown' in R. It has
seemed to stop when it return (out) at the last in
ge-r.cpp. I do not know why it happens. Note that the
C++ script works normally after the update of the
system. Only this RcppArmadillo conversion from C++
function into a R function is deformed.
Please give me an advice, please. Of course, I can give
you more information on the C++ script in details if
you need.
Best regards,
Takeshi
ge-r.cpp
#ifndef __R__
#define __R__
#endif
#ifndef USE_OMP
#define USE_OMP
#endif
#include <RcppArmadillo.h>
#include "ge-model.h"
using namespace arma;
// input:
// parameter matrix: row for particle, col for parameter
// filename of observation
// output:
// simulation for regular time points: row for particle,
col for time, slice for term
// existing observation to corresponding regular time
points
// [[Rcpp::depends(RcppArmadillo)]]
// [[Rcpp::export]]
Rcpp::List simulate_R(const arma::mat& param_r, const char* fobs,
const int interval) {
try {
geModel Model;
Model.n_thread=omp_get_num_procs();
Model._param=param_r;
cout << "params set.\n";
cout << "filename of obs: "<< fobs << ".\n";
Model._obs.load(fobs);
cout << "obs loaded.\n";
Model.n_acc=Model._param.n_rows;
cout << "n_acc set to be " << Model.n_acc << ".\n";
Model._obs._out_interval = interval;
Model._obs._n_out_date = (Model._obs._n_date /
Model._obs._out_interval) + 1;
Model.out_y=cube(Model.n_acc, Model._obs._n_group,
Model._obs._n_out_date);
Model.out_res_1=cube(Model.n_acc,Model._obs._n_group,
Model._obs._n_out_date);
Model.out_res_2=cube(Model.n_acc,Model._obs._n_group,
Model._obs._n_out_date);
Model.out_res_clock=cube(Model.n_acc,Model._obs._n_group,
Model._obs._n_out_date);
Model.out_res_dev=cube(Model.n_acc,Model._obs._n_group,
Model._obs._n_out_date);
cout << "output matrix initialized.\n";
//necessary for simulate_obs
Model._distance=vec(Model.n_acc);
Model.simulate(0,Model.n_acc-1,true);
cout << "simulation complete.\n";
fflush(stdout);
cout << size(Model.out_y)<<".\n"<<
Model.out_y[0]<<".\n"<<Model.out_y[1]<<".\n"<<Model.out_y[2]<<".\n";
Rcpp::List out = Rcpp::List::create(
Rcpp::Named("out_y")=Model.out_y,
Rcpp::Named("out_res_1")=Model.out_res_1,
Rcpp::Named("out_res_2")=Model.out_res_2,
Rcpp::Named("out_res_clock")=Model.out_res_clock,
Rcpp::Named("out_res_dev")=Model.out_res_dev
);
cout << "List constructed.\n";
fflush(stdout);
return (out);
}
catch(char* e) {
cout << e << "\n";
exit(EXIT_FAILURE);
}
catch(...) {
cout << "Error\n";
exit(EXIT_FAILURE);
}
}
_______________________________________________
Rcpp-devel mailing list
Rcpp-devel@lists.r-forge.r-project.org
<mailto:Rcpp-devel@lists.r-forge.r-project.org>
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
<https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel>
--
Qiang Kou
q...@umail.iu.edu <mailto:q...@umail.iu.edu>
School of Informatics and Computing, Indiana University