Hi, professor, I think the problem is in ge-r. cpp, you forgot to call *initialize*.
The error has nothing to do with Rcpp. Best, KK On Tue, Jul 4, 2017 at 2:45 AM, 井澤 毅 <a-iz...@mail.ecc.u-tokyo.ac.jp> wrote: > Sorry, I forgot the attached file. > On 2017/07/04 18:43, 井澤 毅 wrote: > > Dear KK, > > Thanks for your kind reply. > > I am afraid that one of the input file is very heavy, this time but I am > sending a ZIP file including all. > > Please make v30 package using install.simulate_R_1.r and then > install.simulate_R_2.r. Then, try ge-r_test.r, please. > > To make the v30 package, we need ge-r.cpp, ge-model.cpp, ge-model.h, > ge-obs.cpp, ge-obs.h, ge-range.h. > > As the input file, we need var.mat.all matrix data in R and > obs.Os01g0182600_g1.nc file in the directry. > > Then, you will see the error I have been suffering from for a month. > > The obs.Os01g0182600_g1.nc file is a file containing environmental > fluctuation data. > > Best, > > Takeshi > > On 2017/07/04 5:40, Qiang Kou wrote: > > 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-projec >> t.org/cgi-bin/mailman/listinfo/rcpp-devel > > -- > Qiang Kou > q...@umail.iu.edu > School of Informatics and Computing, Indiana University > > -- 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