gcd problem



>>>>> "Fabrizio" == Fabrizio Caruso <caruso at dm.unipi.it> writes:

    Fabrizio> Hi,
    Fabrizio> Again I found a problem in the modular computation
    Fabrizio> but this time it is related to the gcd
    Fabrizio> and it should be unrelated to the problem 
    Fabrizio> related to factorization:

    >> modulus:1234567891;
    Fabrizio>  				  1234567891
    >> gcd(x^2+x+1,x^1234567890-1);
    Fabrizio> Maxima encountered a Lisp error:

I see this with cmucl too.  I think the problem is that 1234567891 is
not a fixnum, and a lot of the polynomial stuff, especially related to
the exponents, assumes the exponent is a fixnum.

With GCL, this isn't a problem because it just truncates the
operations into a fixnum (producing erroneous results without
warning), but other lisps produce an error.

I think we should just get rid of the f+, f-, f* macros/functions.
Well, actually redefine them so they don't assert that the operands
and results are fixnums.

Perhaps things will run a little slower, but machines are hundreds
(thousands?) of times faster now than when maxima was originally
written.

Ray