Bug 2910001 lists an issue with slow conversion of bfloat inputs. Yes,
for bfloats with 1 million digits, the conversion from the input form to
a bfloat is slow.
This is caused by how maxima does the conversion. The example in the
report is 3.4b5000000. Maxima essentially compute 34/10*10^5000000.
This computation is pretty slow. The conversion to bfloat of that
rational number is quite fast.
I like this method because we get exactly one rounding operation and the
result is a close as possible to the actual input.
The only other way I can think of is to compute the result as
bfloat(34/10)*bfloat(10)^5000000. This is fast, but we get two rounding
operations (34/10) and the multiplication, and then whatever rounding we
get from computing 10^5000000. Perhaps this is acceptable.
Opinions?
Ray