Dear Rcpp Experts, hopefully this question of mine is not too stupid.
Well, I am a greenhorn with Rcpp and my C/C++ expertise is quite dusty. I generated a new Rccp package and changed the hello_world function. The attached Rcpp Code stops working if I rename the method "rcpp_hello_world" to "conditionalProbabilityTables". The error I get is: "conditionalProbabilityTables" not available for .Call() for package "PhyloFun" I swear the only thing I changed was the function name. Hence my question: Are there any restrictions I am unaware of? I searched the web for "rcpp function name restrictions" and such, but could not find anythig related. The Rcpp Code I generated with Rcpp.package.skeleton( name="PhyloFun" ) // // Header File: // #ifndef _PhyloFun_pp_RCPP_HELLO_WORLD_H #define _PhyloFun_pp_RCPP_HELLO_WORLD_H #include <Rcpp.h> #ifdef _OPENMP #include <omp.h> #else #define omp_set_num_thread(x) 1 #endif RcppExport SEXP rcpp_hello_world( SEXP uniqueEdgeLengths, SEXP annos, SEXP stringifiedAnnotations, SEXP annotsMutationProbTableList, SEXP mutTblLengthColIndx, SEXP pMutColIndx, SEXP unknownAnnot, SEXP nThreads ) ; #endif // // CPP File // #include "rcpp_hello_world.h" // CharacterVector x = CharacterVector::create( "foo", "bar" ) ; // NumericVector y = NumericVector::create( 0.0, 1.0 ) ; // List z = List::create( x, y ) ; // // return z ; SEXP rcpp_hello_world( SEXP uniqueEdgeLengths, SEXP annos, SEXP stringifiedAnnotations, SEXP annotsMutationProbTableList, SEXP mutTblLengthColIndx, SEXP pMutColIndx, SEXP unknownAnnot, SEXP nThreads ){ using namespace Rcpp ; BEGIN_RCPP NumericVector numberThreads = NumericVector( nThreads ); omp_set_num_threads( numberThreads(0) ); NumericVector edgeLengths = NumericVector( uniqueEdgeLengths ); List cpts = List(); #pragma omp parallel for for ( int i = 0; i < edgeLengths.size(); i++ ) { // NumericVector cpt = conditionalProbabilityTable( edgeLengths( i ), // annos, stringifiedAnnotations, annotsMutationProbTableList, // mutTblLengthColIndx, pMutColIndx, unknownAnnot ); // Named cptListEntry = Named( edgeLengths( i ) ); // cptListEntry = cpt; NumericMatrix cpt = NumericMatrix( 1000, 1000 ); cpts.push_back( cpt ); } return( wrap( cpts ) ); END_RCPP } // // Makevars // PKG_CXXFLAGS="-fopenmp" PKG_LIBS=$(shell $(R_HOME)/bin/Rscript -e "Rcpp:::LdFlags()") $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) -fopenmp Help will be much appreciated! Cheers! _______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel