[R] Return value from a C program is different from the R console
Loïc Paulevé
loic.pauleve at irccyn.ec-nantes.fr
Tue Mar 24 23:36:22 CET 2009
Dear R-users,
I'm trying to call the qgamma function from a C program.
But I'm experiencing a strange issue: the value returned by the C function
seems to be different from the value returned by a R console.
I'm running on linux 2.6.27 (ubuntu), i686 arch; R version 2.7.1 (2008-06-23)
(shipped by ubuntu).
My C code:
#include <stdio.h>
#include <Rmath.h>
int main() {
double q, shape, scale, res;
q = 0.025;
shape = 50;
scale = 0.08;
res = qgamma(q, shape, scale, TRUE, FALSE);
printf("qgamma(%.5f, shape=%.5f, scale=%.5g, lower.tail=TRUE, log.p=FALSE)
= %.5f\n", q, shape, scale, res);
return 0;
}
Result :
qgamma(0.02500, shape=50.00000, scale=0.08, lower.tail=TRUE, log.p=FALSE) =
2.67178
When executing into R :
> qgamma(0.02500, shape=50.00000, scale=0.08, lower.tail=TRUE, log.p=FALSE)
[1] 2.968877
I dunno which value is the correct one, but I suspect a wrong usage of the
double type in my C code.
Any help?
Thanks!
Loïc
More information about the R-help
mailing list