Math-Prime-Util-GMP
view release on metacpan or search on metacpan
w = 0.9898045358731312e-1 * log(k1);
} else {
k1 = 1.0 / (1.0 + log(1.0 + x));
k2 = 1.0 / k1;
k3 = log(k2);
w = k2-1-k3+(1+k3+(-1/2+(1/2)*k3*k3 +(-1/6+(-1+(-1/2+
(1/3) * k3) * k3) * k3) * k1) * k1) * k1;
}
/* Improve the FP estimate using two simple Halley iterations. */
if (x >= -0.36728) {
if (w != 0) w = (w/(1.0+w)) * (1.0+log(x/w));
if (w != 0) w = (w/(1.0+w)) * (1.0+log(x/w));
if (isnan(w)) w = DBL_EPSILON;
}
/* Result is over 15 digits, 16 when x > 0 */
return w;
}
t/28-rand.t view on Meta::CPAN
my $bits_on = 0;
my $bits_off = 0;
my $iter = 0;
for (1 .. 6400) {
$iter++;
my $v = irand64;
$bits_on |= $v;
$bits_off |= (~$v);
last if ~$bits_on == 0 && ~$bits_off == 0;
}
is( ~$bits_on, 0, "irand64 all bits on in $iter iterations" );
is( ~$bits_off, 0, "irand64 all bits off in $iter iterations" );
}
########
{
my $mask = 0;
my $v;
for (1..1024) {
$v = drand;
last if $v >= 1;
( run in 2.489 seconds using v1.01-cache-2.11-cpan-71847e10f99 )