factor



> 	(C1) factor(x^2+1,%i^2+1);
> 	Error: Caught fatal error [memory may be damaged]

Factor requires its second argument to be an irredicible univariate
polynomial.  It does not check this, and usually gives a fatal error if
it is not.  See bugreport #792852 (August 2003).

https://sourceforge.net/tracker/index.php?func=detail&aid=792862&group_i
d=4933&atid=104933.

Perhaps the original implementor was afraid that checking the
characteristic polynomial for irreducibility was an unnecessary
overhead.  But I suspect that factoring it is much faster than
calculating its splitting field.

See the bug list for various other limitations and bugs in factor.

By the way, I am surprised that GCL doesn't have enough error-checking
to avoid fatal errors like this.  (Or can it be turned on somehow?)  For
the vast majority of our users, it is far more important that errors be
"clean" than that they gain 10% in speed by suppressing checks.  And one
of the advantages of Lisp over C is precisely that we *can* do the
necessary checks.

      -s

maxima 5.9.0 gcl 2.5.0 mingw32 Windows2000