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> wrote: > Dear 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 > https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel > -- Qiang Kou q...@umail.iu.edu School of Informatics and Computing, Indiana University
_______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel