login  home  contents  what's new  discussion  bug reports help  links  subscribe  changes  refresh  edit

 Submitted by : (unknown) at: 2007-11-17T22:18:34-08:00 (11 years ago) Name : Axiom Version : default friCAS-20090114 Axiom-20050901 OpenAxiom-20091012 OpenAxiom-20110220 OpenAxiom-Release-141 Category : Axiom Aldor Interface Axiom Compiler Axiom Library Axiom Interpreter Axiom Documentation Axiom User Interface building Axiom from source lisp system MathAction Doyen CD Reduce Axiom on Windows Axiom on Linux Severity : critical serious normal minor wishlist Status : open closed rejected not reproducible fix proposed fixed somewhere duplicate need more info Optional subject :   Optional comment :

Consider the following:

fricas
q:FR POLY INT := (x-1)*(x^2+1) (1)
Type: Factored(Polynomial(Integer))
fricas
p:FR POLY INT := (x-1)*(2*x) (2)
Type: Factored(Polynomial(Integer))
fricas
p+q (3)
Type: Factored(Polynomial(Integer))
fricas
)tr MULTFACT )ma
Packages traced:
MultivariateFactorize(Symbol,IndexedExponents(Symbol),
Integer,Polynomial(Integer))
Parameterized constructors traced:
MULTFACT
factor(p+q)
Internal Error
The function factor with signature hashcode is missing from domain
Factored(Polynomial (Integer))

The documentation says:

  Others, like addition require somewhat more work, and unless
the argument domain provides a factor function, the result
may not be completely factored.


which is not true, as shown by the result of above.

Comment: In fact, in the past polynomial domains failed to provide factor
factoring was done by separate routine. Now polynomials provide factor and the result above is fully factored.

Furthermore, applying factor to should probably not first expand the expression and then factor it again. It should rather map over the already known factors.

Comment: Yes, if base domain is GCD domain + first looks for known common factors.

I'm not sure whether FR should always try to factor the result of an addition, at least, I don't think that this was the intention of the original author.

Another issue is raised by the documentation to expand: % -> R :

  expand(f) multiplies the unit and factors together, yielding an
"unfactored" object. Note: this is purposely not called 'coerce' which would
cause the interpreter to do this automatically.


I tested this and found it not to be true. Note that the domain was written already in 1985, so it might well be that the interpreters behaviour has changed in this respect.

Martin

Severity: normal => minor Status: open => closed

 Subject:   Be Bold !! ( 14 subscribers )