[R] rgamma function
Thomas Lumley
tlumley at uw.edu
Sun Jul 15 23:29:16 CEST 2012
On Fri, Jul 13, 2012 at 7:55 PM, Chandler Zuo <zuo at stat.wisc.edu> wrote:
> Hi,
>
> Has anyone encountered the problem of rgamma function in C? The following
> simplified program always dies for me, and I wonder if anyone can tell me
> the reason.
>
> #include <Rmath.h>
> #include <time.h>
> #include <Rinternals.h>
>
> SEXP generateGamma ()
> {
> srand(time(NULL));
> return (rgamma(5000,1));
> }
rgamma doesn't return an SEXP, it returns a double. Also, the srand()
call is pointless.
> Has anyone encountered a similar problem before? Is there another way of
> generating Gamma random variable in C?
>
> P.S. I have no problem compiling and loading this function in R.
Strange. You should get compiler warnings that the return type is
incompatible. I get
foo.c: In function ‘generateGamma’:
foo.c:7: warning: implicit declaration of function ‘srand’
foo.c:8: error: incompatible types in return
I thought the ANSI standard actually *required* a diagnostic for the
incompatible return types.
-thomas
--
Thomas Lumley
Professor of Biostatistics
University of Auckland
More information about the R-help
mailing list