[R] How to get correct integration in C for step function?

Lynette fuyaonv at hotmail.com
Mon Jan 22 00:24:13 CET 2007


Dear all,

I am using Rdqags in C to realize the integration. It seems for the 
continous C function I can get correct results. However, for step functions, 
the results are not correct. For example, the following one, when integrated 
from 0 to 1 gives 1 instead of the correct 1.5

void func( double *x, int n, void *ex )
{
 int i;

 for(i=0;i<n;i++) { x[i]=( ((x>=1/4)&&(x<=3/4)) ? 2:1 ) ; }
        return;
 }

while the following one when integrated from 0 to 1 gives the correct 
0.7853983

void func( double *x, int n, void *ex )
{
 int i;

 for(i=0;i<n;i++) { x[i]= pow(1-x[i]*x[i],.5); }
        return;
 }

Please advise the problems. Thanks a lot.

Best,
Lynette



More information about the R-help mailing list