<div dir="ltr">Hi, I am afraid the example you provided is not a reproducible example.<div><br></div><div>First, we don't know the content of ge-model.h. Second, we don't know which input will trigger the fault.</div><div><br></div><div>Please provide a reproducible example if you really want to get help.</div><div><br></div><div>Best,</div><div><br></div><div>KK</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jul 1, 2017 at 11:06 AM, 井澤 毅 <span dir="ltr"><<a href="mailto:a-izawa@mail.ecc.u-tokyo.ac.jp" target="_blank">a-izawa@mail.ecc.u-tokyo.ac.jp</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div class="m_8471227266221235016moz-text-flowed" style="font-family:-moz-fixed;font-size:14px" lang="x-unicode">Dear
<a class="m_8471227266221235016moz-txt-link-abbreviated" href="mailto:rcpp-devel@lists.r-forge.r-project.org" target="_blank">rcpp-devel@lists.r-forge.r-<wbr>project.org</a>,
<br>
<br>
Sorry for bothering you much, but do me a favor please. Please
help me some.
<br>
<br>
I am just a molecular biologist working on plants. Thus, I am
still a newcomer in this field.
<br>
<br>
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.
<br>
<br>
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.
<br>
<br>
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.
<br>
<br>
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.
<br>
<br>
Please give me an advice, please. Of course, I can give you more
information on the C++ script in details if you need.
<br>
<br>
Best regards,
<br>
<br>
Takeshi <br>
<br>
<br>
<br>
</div>
ge-r.cpp<br>
<br>
#ifndef __R__
<div class="m_8471227266221235016moz-text-plain" style="font-family:-moz-fixed;font-size:14px" lang="x-unicode">
<pre>#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)<wbr>]]
// [[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_<wbr>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_<wbr>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_<wbr>acc,Model._obs._n_group, Model._obs._n_out_date);
Model.out_res_2=cube(Model.n_<wbr>acc,Model._obs._n_group, Model._obs._n_out_date);
Model.out_res_clock=cube(<wbr>Model.n_acc,Model._obs._n_<wbr>group, Model._obs._n_out_date);
Model.out_res_dev=cube(Model.<wbr>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_<wbr>acc);
Model.simulate(0,Model.n_acc-<wbr>1,true);
cout << "simulation complete.\n";
fflush(stdout);
cout << size(Model.out_y)<<".\n"<< Model.out_y[0]<<".\n"<<Model.<wbr>out_y[1]<<".\n"<<Model.out_y[<wbr>2]<<".\n";
Rcpp::List out = Rcpp::List::create(
Rcpp::Named("out_y")=Model.<wbr>out_y,
Rcpp::Named("out_res_1")=<wbr>Model.out_res_1,
Rcpp::Named("out_res_2")=<wbr>Model.out_res_2,
Rcpp::Named("out_res_clock")=<wbr>Model.out_res_clock,
Rcpp::Named("out_res_dev")=<wbr>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);
}
}
</pre>
</div>
</div>
<br>______________________________<wbr>_________________<br>
Rcpp-devel mailing list<br>
<a href="mailto:Rcpp-devel@lists.r-forge.r-project.org">Rcpp-devel@lists.r-forge.r-<wbr>project.org</a><br>
<a href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel" rel="noreferrer" target="_blank">https://lists.r-forge.r-<wbr>project.org/cgi-bin/mailman/<wbr>listinfo/rcpp-devel</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Qiang Kou<div><a href="mailto:qkou@umail.iu.edu" target="_blank">qkou@umail.iu.edu</a><br><div>School of Informatics and Computing, Indiana University</div><div><br></div></div></div></div>
</div>