>>>>> "Markus" == Markus Schmidberger <[EMAIL PROTECTED]> >>>>> on Fri, 19 Jan 2007 15:02:31 +0100 writes:
Markus> Hello, Markus> I try to write an extension in C, to get a faster functions. Markus> Therefore I have to add an element (vector) to a vector. The command in Markus> R is very simple: x = c(x,a) aka x <- c(x,a) see that's why you'd probably rather stick with R a bit longer, and profile [-> help(Rprof)] your code and try to speedup quite a bit before thinking about using C ... Markus> But in C I have the problem to reallocate my vector for getting more Markus> space. Everything I tried, I get a "Segmentation fault". Markus> So, how can I combine two vectors in C and give the result back to R Markus> (return(x))? and you have a copy of "Writing R Extensions" right in front of you, electronically at least, I mean? To return the new vector via C's return() you'd definitely need to work with .Call() {which is a good thing but really not for C-beginners}, and that needs a bit time of reading the above manual "from cover to cover". Note that you probably should start with (5.8) on .Call. I'm also tending to recommend even starting to peek into R's own C source, notably the header files (src/include/...), and maybe src/main/* in order to see how R objects ("SEXP"s) are handled, how you add names(), dimnames() etc internally.. Hoping that helps, Martin Maechler, ETH Zurich Markus> Thanks Markus> Markus Schmidberger Markus> -- Markus> Dipl.-Tech. Math. Markus Schmidberger ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.