Skip to content
Prev 10239 / 10988 Next

[Rcpp-devel] trying to insert a number as first element of already existing vector

Le 10/12/2018 ? 13:04, Jan van der Laan a ?crit?:
Yep.
Few more percents of mean cpu time can be saved by using "const &" trick :

// [[Rcpp::export]]
NumericVector mybar5(const NumericVector &x, const NumericVector &y) {
    NumericVector result(x.size() + y.size());
    std::memcpy(result.begin(), x.begin(), x.size()*sizeof(double));
    std::memcpy(result.begin()+x.size(), y.begin(), 
y.size()*sizeof(double));
    return result;
}

# output
Unit: microseconds
                       expr     min       lq     mean   median       uq 
     max
       c(testelem, testvec) 258.343 338.3110 418.0047 343.4450 378.7850 
3077.347
   mybar(testvec, testelem) 352.699 366.8770 498.3948 374.6635 450.4420 
3046.408
  mybar2(testvec, testelem) 334.820 348.3685 425.0098 354.7240 366.5270 
3024.128
  mybar3(testvec, testelem) 233.689 244.8640 315.7256 247.5180 255.0955 
2945.068
  mybar4(testvec, testelem) 232.083 241.9655 340.0751 245.0035 252.8260 
2934.312
  mybar5(testvec, testelem) 150.787 242.7685 285.4264 245.9465 254.1880 
2049.493

Serguei.