[Rcpp-devel] call R internal adist function from Rcpp

contact AG STUDY contact at ag-study.com
Mon Dec 30 19:26:44 CET 2013

I need to call R adist function over a big vector, many times.
Internally , adist is calling
in src/main/agrep.c. So wonder If I can call the c function adist_full
directly from my c++ code.

My workaround is to give adist as a Function parameter. here my code:
#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::export]]
List call_adist(CharacterVector y, Function f,int tol=16) {
    std::vector<std::vector<int> > out;
    std::vector<std::string> input = as<std::vector<std::string> >(y);
    for (std::vector<std::string>::iterator it = input.begin() ; it !=
input.end(); ++it){
      //  can I change f call by adist_full(*it,y,costs,false)?
        std::vector<int> res = as<std::vector<int> >(f(*it,y));

    return Rcpp::wrap(out);
Then I call it like :


But this is less efficient than lapply(vv,adist).

Happy New Year!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20131230/8218b21b/attachment.html>

More information about the Rcpp-devel mailing list