big float arithmetic & mgrp



>>>>> "Barton" == Barton Willis <willisb at unk.edu> writes:

    Barton> I noticed that big float arithmetic often calls
    Barton> 'mgrp' -- unnecessarily, I think. An example:

    Barton> (%i1) (6.5b0 + %i*3.4b0) * (3.4b0 + 5.6b0*%i);
    1> (MGRP ((BIGFLOAT SIMP 56) 50440315826549555 3)
    Barton>            ((BIGFLOAT SIMP 56) 61248954932238746 2))
    Barton>   <1 (MGRP T)
    Barton> (%o1) (3.4B0*%i+6.5B0)*(5.6B0*%i+3.4B0)

    Barton> Replacing the big floats with doubles, the call to
    Barton> mgrp doesn't happen. I'm too lazy to figure out

mgrp isn't called for doubles, but great is, which handles doubles
itself and calls mgrp for bigfloats.

    Barton> what is going on. But if anybody knows, I'd like
    Barton> to know why Maxima calls mgrp.

I don't understand why the comparison needs to be done, but it's in
timesin (src/simp.lisp), which is part of the simplifier for
multiplication.  I don't understand what timesin really does.

Ray