Re: [Rd] array indexes in C

2006-11-21 Thread Benjamin Tyner
Hin-Tak & Tamas, For example, see what I've done in http://www.stat.purdue.edu/~btyner/postage_0.1-1.tar.gz I am by no means a C guru but it works with my compiler. The relevant lines are (in postage.c:) void postage(int *lambda, int *D, int *tau, int r[*tau][*D]) { (in postage.R:) r <-

Re: [Rd] array indexes in C

2006-11-19 Thread Tamas K Papp
Hi Ben, Thanks for your answer. I looked at the status of VLA on the GCC homepage and it appears to be "broken". [1] Do you think that the code below still works? Or are you using a different compliler? Thanks, Tamas [1] http://gcc.gnu.org/c99status.html On Sun, Nov 19, 2006 at 09:55:17AM -

[Rd] array indexes in C

2006-11-19 Thread Benjamin Tyner
Tamas, You could write convenience functions, but I have used the C99 mechanism for variable length arrays with no problems calling from R. One thing you have to keep in mind though is that (as far as I know) the dimensions must be passed before the array reference. So for example, r <- .C("fo

[Rd] array indexes in C

2006-11-18 Thread Tamas K Papp
I am passing (numeric) arrays to a C function, called with .C. To the best of my knowledge, I can do this in R by passing it as a vector (with as.vector) to the .C call. However, it would be useful to access the array as an array inside C, ie not have to calculate how array indices (i,j,k) map to