// [[Rcpp::export(.cpp_convolve)]] Rcpp::NumericVector cpp_convolve(Rcpp::NumericVector xa, Rcpp::NumericVector xb) { int n_xa = xa.size(), n_xb = xb.size(); Rcpp::NumericVector xab(n_xa + n_xb - 1); typedef Rcpp::NumericVector::iterator vec_iterator; vec_iterator ia = xa.begin(), ib = xb.begin(); vec_iterator iab = xab.begin(); for (int i = 0; i < n_xa; i++) for (int j = 0; j < n_xb; j++) iab[i + j] += ia[i] * ib[j]; return xab; }
// [[Rcpp::export]] RcppExport SEXP convolve4cpp(SEXP a, SEXP b) { Rcpp::NumericVector xa(a), xb(b); int n_xa = xa.size(), n_xb = xb.size(); Rcpp::NumericVector xab(n_xa + n_xb - 1); typedef Rcpp::NumericVector::iterator vec_iterator; vec_iterator ia = xa.begin(), ib = xb.begin(); vec_iterator iab = xab.begin(); for (int i = 0; i < n_xa; i++) for (int j = 0; j < n_xb; j++) iab[i + j] += ia[i] * ib[j]; return xab; }
RcppExport SEXP convolve3cpp(SEXP a, SEXP b){ Rcpp::NumericVector xa(a); Rcpp::NumericVector xb(b); int n_xa = xa.size() ; int n_xb = xb.size() ; int nab = n_xa + n_xb - 1; Rcpp::NumericVector xab(nab); for (int i = 0; i < n_xa; i++) for (int j = 0; j < n_xb; j++) xab[i + j] += xa[i] * xb[j]; return xab ; }
// bond function value via quadrature double ATC_HardyKernel::bond(DENS_VEC& xa, DENS_VEC&xb, double lam1, double lam2) { DENS_VEC xab(nsd_), q(nsd_); double lamg; double bhsum=0.0; xab = xa - xb; for (int i = 0; i < line_ngauss; i++) { lamg=0.5*((lam2-lam1)*line_xg[i]+(lam2+lam1)); q = lamg*xab + xb; double locg_value=this->value(q); bhsum+=locg_value*line_wg[i]; } return 0.5*(lam2-lam1)*bhsum; }
RcppExport SEXP test_cpp(SEXP a, SEXP b) { Rcpp::NumericVector xa(a); Rcpp::NumericVector xb(b); // Rcpp::StringVector aaa = "deine mudder"; Rcpp::StringVector aaa = a; aaa.push_back("1") ; int n_xa = xa.size(), n_xb = xb.size(); int nab = n_xa + n_xb - 1; Rcpp::NumericVector xab(nab); for (int i = 0; i < n_xa; i++) for (int j = 0; j < n_xb; j++) xab[i + j] += xa[i] * xb[j]; return aaa ; return xab; }