Hi, I think R_orderVector() can be improved by calling orderVector1() if possible. In a problem we had, this gave us a run time improvement factor of 4.... so my hope is that this can be included. Below is the suggested change, I'm just not 100% sure if the test "CDR(arglist) == R_NilValue" is good...
Cheers, Marius void R_orderVector(int *indx, // must be pre-allocated to length >= n int n, SEXP arglist, // <- e.g. Rf_lang2(x,y) Rboolean nalast, Rboolean decreasing) { // idx[] <- 0:(n-1) : for(int i = 0; i < n; i++) indx[i] = i; if(CDR(arglist) == R_NilValue) { orderVector1(indx, n, CAR(arglist), nalast, decreasing, R_NilValue); } else { orderVector(indx, n, arglist, nalast, decreasing, listgreater); } return; } ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel