Peter Dalgaard BSA wrote:
Here's a model that does (seem to) work:
dyn.load("runif.so");.C("select_rand",runif); .C("unif_rand",3.3)
[[1]]
...
with
double select_rand(void * f)
{
func = f;
}
I'm not sure I see the point of the separate select_rand -- you can just pass runif as an argument to unif_rand. The original example needed to use the global variable because a C routine for finding a zero of a C function was being used and the C function whose root was to be found needed to get at the S/R function that it was fronting for. The global variable is needed to pass this info (since you don't have C closures). Here there isn't any need that I can see, but maybe I've missed something (wouldn't be the first time :-)).
Luke Tierney University of Minnesota Phone: 612-625-7843 School of Statistics Fax: 612-624-8868 206 Church Street email: luke@stat.umn.edu Minneapolis, MN 55455 USA WWW: http://www.stat.umn.edu =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-