On 10/22/18 9:55 AM, Waldek Hebisch wrote:
> I looked ate noncommutative factorization code and AFAICS
> 'xdpolyf1.spad' has serious problem. One example is:
>
> (58) -> factor((x^2 - 2)*(y - 1)*(x - 1))
>
> 2 2 3 2
> (58) [- 2 + 2 y + 2 x - 2 y x + x - x y - x + x y x]
> Type:
> List(XDistributedPolynomial(OrderedVariableList([x,y,z,w,x1,x2,x3,x4,x5]),Integer))
>
> that is '(x^2 - 2)*(y - 1)*(x - 1)' is treated as irreducible.
>
> More generally, factorization via equation solving directly
> gives absolute factorization, that is factorization over algebraic
> closure of base field. To get factorization over base field
> one needs to recombine factors. IIUC 'xdpolyf1.spad' tries
> various tricks to avoid algebraic extentions, but this is
> very unlikely to work in general.
>
I tried this on my saved version (part of a test -harness) and it works
correctly.
Here is the result
(52) -> aa:=(x^2 - 2)*(y - 1)*(x - 1)
2 2 3 2
(52) - 2 + 2 y + 2 x - 2 y x + x - x y - x + x y x
Type:
XDistributedPolynomial(OrderedVariableList([x,y,z]),Fraction(MultivariatePolynomial([a,b,c,d,e],Integer)))
(53) -> factor(aa)
2
(53) [- 2 + x , 1 - y, 1 - x]
Type:
List(XDistributedPolynomial(OrderedVariableList([x,y,z]),Fraction(MultivariatePolynomial([a,b,c,d,e],Integer))))
--
Attached is a test file.
Let me know if you are interested in a full test suite and harness?
I also have Konrad Schrempf's next to last entry solving factoring.
I have personal copies (more than I need) of both with a plethora of
testing :)
I defined "aa" to make sure there was no "cheating"; i.e. inadvertent
peeking by any program
RayR
--
You received this message because you are subscribed to the Google Groups
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.
--
--
-- Noncommunative testing
-- Using Bill Page's process
--
)clear all
--)set break resume
)expose UnittestCount UnittestAux Unittest
)set break resume
)expose UnittestCount UnittestAux Unittest
)r nc_ini04
--
aa:=(x^2 - 2)*(y - 1)*(x - 1)
factor(aa)
--