[Rcpp-devel] r crashed
Aileen Lin
aileenshanhong.lin at gmail.com
Thu Jan 31 03:22:06 CET 2013
Hi there,
Thanks for replies for my earlier enquiries.
I had an error message: 'R encoutered a fatal error. This session was
terminated'.
My code is here:
//[[Rcpp::depends("RcppArmadillo")]]
#include <Rcpp.h>
#include <vector>
#include <iostream>
using namespace std;
using std::vector;
using namespace Rcpp;
typedef vector<vector<vector<double > > > array3d;
//[[Rcpp::export]]
array3d systematic_composite(NumericMatrix cdx, NumericMatrix idx,
NumericMatrix cs_compvar){
array3d arraysc;
int d1 = cdx.ncol();
int d2 = idx.ncol();
int d3 = cdx.nrow();
arraysc.resize(d1);
for (int i=0; i<d1; ++i){
arraysc[i].resize(d2);
for (int j=0; j<d2; ++j){
arraysc[i][j].resize(d3);
}
}
for (int i=0; i<d1; ++i){
for (int j=0; j<d2; ++j){
for (int k=0; k<d3; ++k){
arraysc[i][j][k] = (cdx(k,i) + idx(k,j))/sqrt(cs_compvar(i,j));
}
}
}
return arraysc;
}
//[[Rcpp::export]]
NumericVector wrap_sim1(NumericMatrix cdx, NumericMatrix idx,
NumericMatrix cs_compvar, NumericMatrix pf_agg,
NumericVector noise, int w_pdlgd){
int d1 = pf_agg.nrow();
int d2 = cdx.nrow();
double ci=0, di=0;
double core_temp = 0, grp_avgpd_temp = 0, lgd_temp = 0;
double w_circle = sqrt(1-w_pdlgd*w_pdlgd);
NumericVector lln_temp(d2);
NumericVector lln_sum(d2);
for (int i=0; i<d2; ++i) lln_sum(i) = 0;
array3d corex = systematic_composite(cdx, idx, cs_compvar);
for (int j=0; j<d1; ++j){
ci = pf_agg(j, 0);
di = pf_agg(j, 1);
for (int k=0; k<d2; ++k){
core_temp = corex[ci][di][k];
grp_avgpd_temp = Rcpp::stats::pnorm_0(
(pf_agg(j, 7)- pf_agg(j, 8) * core_temp)/pf_agg(j, 9),
1,0);
lgd_temp = exp(
pf_agg(j,4) + pf_agg(j,5) *(
w_pdlgd *core_temp + noise(k) * w_circle)
);
lln_temp(k) = pf_agg(j, 6) * grp_avgpd_temp * lgd_temp;
lln_sum(k) = lln_sum(k) + lln_temp(k);
}
}
return lln_sum;
}
###########################
>R:
system.time(x <- wrap_sim1(cdx[,], idx[,], csx[,], pfagg_expand, noise1,
-0.42))
cdx is a big matrix 100K*7
idx is a big matrix 100k*14
csx is a big matrix 7*14
pfagg_expand is a matrix 2323*10
They are all numerical.
in this case, my R program crashes. if I replace pfagg_expand with
pfagg_expand[c(2,3),] in my R command, it works fine. Any idea what is
going on? Thank you.
--
Aileen L.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20130131/a2c1b13e/attachment.html>
More information about the Rcpp-devel
mailing list