/* see 0 div 0 comment */
d2
= d2
- d1
* floor(f
/d1
);
/* should check rational d2 here */
f
= log((1.+f
)/(1.-f
))/2.;
f
= atan2(sqrt(1.-f
*f
), f
);
f
= atan2(f
, sqrt(1.-f
*f
));
if(f
< -maxexp
|| f
> maxexp
)
if(f
< -maxexp
|| f
> maxexp
)
f
= gamma(d2
+1.) - gamma(d1
+1.) - gamma(d2
-d1
+1.);
d
= floor(d
+ thread
.fuzz
);
d
= ceil(d
- thread
.fuzz
);
f
= (rand()/(32768.*32768.*2.)) * d
;
d
= floor(f
) + thread
.iorg
;