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