On Mon, 9 May 2005, Zhijin Wu wrote:

Dear all,
I am trying to use the C code for "integrate" function ( that calls
Rdqagi and Rdqags) so that I can integrate a function defined in C,
instead of passing from R.
 Is there a way for doing this?

My unsuccessful attempt:
 I looked into the files (including integrate.c, Applic.h) and
1. modified the definition of
"integr_fn" by droping the environment "*ex",
       void integr_fn(double *x, int n)
and dropped all use of "ex" used in the code

2. defined my checker function f1 and the vectorizing function "Cintfn" in
place of "Rintfn"

         double f1(double x){ return(x);}
         static void Cintfn(double *x, int n)
          {
          int i;
          for(i = 0; i < n; i++)
          x[i] = f1(x[i]);
          return;
          }

3. Similar to  "call_dqags", I define a C function "my_call_dqags" that
has it's own parameters of "lower, upper"  and etc define in C, instead of
parsing from R. And I call
 Rdqags(Cintfn,
        &lower, &upper, &epsabs, &epsrel, &result,
        &abserr, &neval, &ier, &limit, &lenw, &last, iwork, work);
instead of
 Rdqags(Rintfn, (void*)&is,
          &lower, &upper, &epsabs, &epsrel, &result,
          &abserr, &neval, &ier, &limit, &lenw, &last, iwork, work);

I am not passing (void*)&is because I no longer have the "environment".

The code compiles fine with R CMD SHLIB. But it returns 5.3e-317 for my
checker function f(x)=x, integration interval (1,2).

Thanks for any hint!

1) This is the wrong list: please read the posting guide.

2) You cannot just leave out arguments in C calls, so it seems that you need help with C programming rather than R. If you include the appropriate headers this will be checked, so I guess you have not.

--
Brian D. Ripley,                  [EMAIL PROTECTED]
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

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to