The R Project SVN R

Rev

Rev 77685 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 77685 Rev 87946
Line 49... Line 49...
49
 
49
 
50
    double u, t = -bd0(n/2.,(n+1)/2.) + stirlerr((n+1)/2.) - stirlerr(n/2.),
50
    double u, t = -bd0(n/2.,(n+1)/2.) + stirlerr((n+1)/2.) - stirlerr(n/2.),
51
	x2n = x*x/n, // in  [0, Inf]
51
	x2n = x*x/n, // in  [0, Inf]
52
	ax = 0., // <- -Wpedantic
52
	ax = 0., // <- -Wpedantic
53
	l_x2n; // := log(sqrt(1 + x2n)) = log(1 + x2n)/2
53
	l_x2n; // := log(sqrt(1 + x2n)) = log(1 + x2n)/2
54
    Rboolean lrg_x2n =  (x2n > 1./DBL_EPSILON);
54
    bool lrg_x2n =  (x2n > 1./DBL_EPSILON);
55
    if (lrg_x2n) { // large x^2/n :
55
    if (lrg_x2n) { // large x^2/n :
56
	ax = fabs(x);
56
	ax = fabs(x);
57
	l_x2n = log(ax) - log(n)/2.; // = log(x2n)/2 = 1/2 * log(x^2 / n)
57
	l_x2n = log(ax) - log(n)/2.; // = log(x2n)/2 = 1/2 * log(x^2 / n)
58
	u = //  log(1 + x2n) * n/2 =  n * log(1 + x2n)/2 =
58
	u = //  log(1 + x2n) * n/2 =  n * log(1 + x2n)/2 =
59
	    n * l_x2n;
59
	    n * l_x2n;