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 fricas-devel+unsubscr...@googlegroups.com. To post to this group, send email to fricas-devel@googlegroups.com. 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) --