I've notice a bunch of places in simp.lisp where there are tests to see if a
number k is zero or one, and someone added an extra consideration, namely,
is k equal to bigfloatzero or bigfloatone.
This test is not adequate, since if k was created at a lower or higher
fpprec than is currently the case, it could be a bigfloat one and not be
equal to bigfloatone.
If these tests were important, there are tests for these conditions (see the
bfloat defs), which could be used which are not especially slower than
equal.
I don't know if other people are using similar non-robust tests.
There seems to be some pretty questionable orderings of testing in some code
unless you suspect that much of the usage of maxima involves stuff like
bigfloats, and operators like mlabel and mbox, and that many expressions are
the literal constants like $%pi. This may not be really time consuming, but
if you try tracing "simplifya" e.g. ?trace(?simplifya);
It is kind of discouraging to see how repetitive and -almost always
pointless-the computation is. Of course it is not ALWAYS pointless, and
that's why it is called.
RJF