Thank you very much for the answer. As a general principle, when and why should I register the counters? Should I do the same in matrices or other parameters that I pass and alter in the main body of the C function?
Thanks again, - b. --- Paul Roebuck <[EMAIL PROTECTED]> schrieb: > 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 > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel