On Tue, 21 Feb 2006, Bernd Kriegstein wrote: > I use the simplest of examples that somebody can think > of in order to generate a matrix of random numbers > from within C, calling appropriate R functions. The > concrete example is below: > [SNIP]
------ pico.c -------- #include <stdio.h> #include <stdlib.h> #include <math.h> #include <R.h> #include <Rmath.h> #define COLM(i,j,m) ((m * j) + i) void pico(double *y, int *n, int *m) { register int i; GetRNGstate(); for (i = 0; i < *n; i++) { register int j; for (j = 0; j < *m; j++) { y[COLM(i,j,*m)] = rnorm(0.0, 1.0); } } PutRNGstate(); } ------ pico.R -------- dyn.load("pico.so") n <- 10 m <- 5 ans <- .C("pico", as.double(matrix(0, n, m)), as.integer(n), as.integer(m)) str(ans[[1]]) ---------------------- $ R CMD SHLIB pico.c $ R --vanilla < pico.R ---------------------------------------------------------- SIGSIG -- signature too long (core dumped) ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel