Show bug7.c syntax highlighted
float pfKnuthEx28(unsigned int p, precision d)
{
register float res;
precision k = ((precision) 0) ;
(void) ( d ) ;
if (p == 2) {
if ((!podd( d )) ) {
(*( &k ) = phalf(d) ) ;
if ((!podd( k )) ) {
res = 2.0/3.0 + pfKnuthEx28(2,k)/2.0;
} else {
res = 1.0/3.0;
}
} else {
(*( &k ) = phalf(d) ) ;
if (podd(k)) {
res = 1.0/3.0;
} else {
if (podd(phalf(k))) {
res = 2.0/3.0;
} else {
res = 4.0/3.0;
}
}
}
} else {
(*( &k ) = utop(p) ) ;
if (pcmp(( ppowmod(d, phalf(psub(k, pone)), k) ), ( pone )) == 0) {
res = (float) (p+p) / (((float) p)*p-1.0);
} else {
res = 0.0;
}
}
(( k ) = 0 ) ;
(( d ) = 0 ) ;
if (debug > 1) {
fprintf((&__iob[1]) , "f(%u,", p);
fprintf((&__iob[1]) , "d) = %9.7f\n", res);
}
return res;
}
See more files for this project here