Subject: | broot returns the root for the double of its argument |
I'm using Math::BigFloat v1.60 and perl v5.8.6. I think my Math::BigInt
is v1.89.
The following two lines differ only in whether the accuracy is 58 or
59, but the first one is off by 8%.
$ perl -e 'use Math::BigFloat; Math::BigFloat->accuracy(59);
print Math::BigFloat->new("100000000")->broot(9)->bstr() . "\n"'
8.3625103095037349083801453546335692516450843760136327287662
$ perl -e 'use Math::BigFloat; Math::BigFloat->accuracy(58);
print Math::BigFloat->new("100000000")->broot(9)->bstr() . "\n"'
7.742636826811270597266794515369692782143337437397447352914
In fact, the number computed by the first line is actually the ninth
root of 200,000,000. It's as if an extra factor of two is introduced
somehow.
All the accuracies above 59 also have the same problem. Below 58 seems
to be fine. It affects a large range of numbers, I picked 100,000,000
here because it's round. I don't know what roots it affects, but I do
get the same mysteriously 8% larger result if I do broot(3) twice in
succession.
Thanks for any help,
Jonathan Wellons