bind stack overflow factoring 7th degree poly



In fact5 (defined in factor.lisp), I see a magic number in the condition
(> algcont 6). Changing this to ((> algcont 1066) allows factor to
finish. I wonder if the intent of (> algcont 6) was to keep factor from
running a long time. Maybe the whole test (> algcont xxx) could be
eliminated. If not, should the (return 'splitcase)) should be changed to
an error?

(%i5) load("C:/maximacvs/maxima/src/factor.lisp")$
(%i6)
156*x^7+4808*x^6-182041*x^5-1266489*x^4+43104271*x^3+29839285*x^2-2542327662*x+7826952672;

(%o6)
156*x^7+4808*x^6-182041*x^5-1266489*x^4+43104271*x^3+29839285*x^2-2542327662*x+7826952672

(%i7) factor(%);
(%o7) (x-16)*(x+14)*(x+49)*(2*x-11)*(2*x+21)*(3*x-49)*(13*x-63)
(%i8)


  nextp(setq lchar1 (cdr lchar1))
     (cond ((null lchar1)
     (cond ((not (zerop lmin)) (go out))
    (t (merror "Factor ran out of primes."))))
    ((> algcont 1066)
     (cond ((ziredup minpoly*)(setq trl* tr)(setq modulus nil)
     (return 'splitcase))
    (t (merror "The minimal poly must be irreducible over the
     integers.")))))
     (go test)


Barton