[Rd] Problem with rnorm ?

Prof Brian Ripley ripley at stats.ox.ac.uk
Sat May 12 13:27:33 CEST 2007

1) You are linking an executable against -lR.  You can't do that as here,
for R is never initialized (and I very much doubt you will be able to 
give a reference that recommended you to do that).  You need to link 
against standalone libRmath, or start up R properly if you really need R.

2) The arguments to rnorm() are doubles, not integers: did you not get a 
warning?  I would expect automatic conversion to occur, but it is better 
to get this right.

On Fri, 11 May 2007, Tong Wang wrote:

> Hi,
>    I couldn't get the rnorm() work right in C, for example, the following code produce strange results.
> #include <stdio.h>
> #include <Rmath.h>
> int main(void){
>  double x[3];
>  for(int i=0;i<3;i++)  x[i]=rnorm(0,1);
>  printf("%lf,%lf,%lf",x[0],x[1],x[2]);
>  return 0;
> }
> output :   -8.773321,-8.773321,-8.773321
> compiling script:   gcc -std=gnu99  -Wall -IC:/PROGRA~1/R/R-24~1.1/include test.c -LC:/PROGRA~1/R/R-24~1.1/bin -lR -o test
> Could someone tell me what's wrong with my code ? Thanks a lot.
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

More information about the R-devel mailing list