Open axkr opened 1 year ago
Can the case Factor[2*y^6- x*y^3 -3*x^2] be made more reliable in returning the solution (x+y^3)*(-3*x+2*y^3) ?
Factor[2*y^6- x*y^3 -3*x^2]
(x+y^3)*(-3*x+2*y^3)
In most of the cases it returns -3*x^2-x*y^3+2*y^6
-3*x^2-x*y^3+2*y^6
See some random execution with JAS logs:
>> Factor[2*y^6- x*y^3 -3*x^2] In[1]:= Factor[2*y^6- x*y^3 -3*x^2] 4761 WARN [main] edu.jas.ufd.FactorInteger - found points : V = [371], dei = [] 4765 WARN [main] edu.jas.ufd.FactorInteger - no evaluation point for: P = 2 y^6 - x * y^3 - 3 x^2, prr = ( ( -3 ) ) x^2 - y^3 x + 2 y^6 , lprr = ( -3 ) , lfacs = [] 4953 WARN [main] edu.jas.ufd.FactorInteger - found points : V = [371], dei = [] 4953 WARN [main] edu.jas.ufd.FactorInteger - no evaluation point for: P = 2 y^6 - x * y^3 - 3 x^2, prr = ( ( -3 ) ) x^2 - y^3 x + 2 y^6 , lprr = ( -3 ) , lfacs = [] 4957 WARN [main] edu.jas.ufd.FactorInteger - optimized ring: BigInteger( y,x ) INVLEX , original ring: BigInteger( x,y ) INVLEX 5577 WARN [main] edu.jas.ufd.FactorInteger - found points : V = [371], dei = [] 5577 WARN [main] edu.jas.ufd.FactorInteger - no evaluation point for: P = ( -3 ) x^2 - y^3 * x + 2 y^6, prr = 2 y^6 - x y^3 - 3 x^2 , lprr = 2 , lfacs = [] 5577 WARN [main] edu.jas.ufd.FactorInteger - optimized ring: BigInteger( y,x ) INVLEX , original ring: BigInteger( x,y ) INVLEX 5990 WARN [main] edu.jas.ufd.FactorInteger - found points : V = [371], dei = [] 5990 WARN [main] edu.jas.ufd.FactorInteger - no evaluation point for: P = ( -3 ) x^2 - y^3 * x + 2 y^6, prr = 2 y^6 - x y^3 - 3 x^2 , lprr = 2 , lfacs = [] 5991 WARN [main] edu.jas.ufd.FactorInteger - factorsSquarefreeHensel not applicable or failed, reverting to Kronecker for: 2 y^6 - x * y^3 - 3 x^2 5992 WARN [main] edu.jas.ufd.FactorAbstract - no multivariate factorization for 2 y^6 - x * y^3 - 3 x^2: falling back to Kronecker algorithm in PolyRing(ZZ(),"x,y",Order.INVLEX) Out[1]= -3*x^2-x*y^3+2*y^6 >> Factor[2*y^6- x*y^3 -3*x^2] In[2]:= Factor[2*y^6- x*y^3 -3*x^2] 10393 WARN [main] edu.jas.ufd.FactorInteger - found points : V = [-371], dei = [] 10393 WARN [main] edu.jas.ufd.FactorInteger - no evaluation point for: P = 2 y^6 - x * y^3 - 3 x^2, prr = ( ( -3 ) ) x^2 - y^3 x + 2 y^6 , lprr = ( -3 ) , lfacs = [] 10507 WARN [main] edu.jas.ufd.FactorInteger - found points : V = [-371], dei = [] 10507 WARN [main] edu.jas.ufd.FactorInteger - no evaluation point for: P = 2 y^6 - x * y^3 - 3 x^2, prr = ( ( -3 ) ) x^2 - y^3 x + 2 y^6 , lprr = ( -3 ) , lfacs = [] 10508 WARN [main] edu.jas.ufd.FactorInteger - optimized ring: BigInteger( y,x ) INVLEX , original ring: BigInteger( x,y ) INVLEX 10891 WARN [main] edu.jas.ufd.FactorInteger - found points : V = [-370], dei = [] 10891 WARN [main] edu.jas.ufd.FactorInteger - no evaluation point for: P = ( -3 ) x^2 - y^3 * x + 2 y^6, prr = 2 y^6 - x y^3 - 3 x^2 , lprr = 2 , lfacs = [] 10891 WARN [main] edu.jas.ufd.FactorInteger - optimized ring: BigInteger( y,x ) INVLEX , original ring: BigInteger( x,y ) INVLEX 10901 WARN [main] edu.jas.ufd.FactorInteger - end notLucky loop, trial parts = 4 10908 WARN [main] edu.jas.ufd.FactorInteger - de-optimized polynomials: [2 y^3 - 3 x, y^3 + x] Out[2]= (x+y^3)*(-3*x+2*y^3) >> Factor[2*y^6- x*y^3 -3*x^2] In[3]:= Factor[2*y^6- x*y^3 -3*x^2] 15669 WARN [main] edu.jas.ufd.FactorInteger - found points : V = [-371], dei = [] 15669 WARN [main] edu.jas.ufd.FactorInteger - no evaluation point for: P = 2 y^6 - x * y^3 - 3 x^2, prr = ( ( -3 ) ) x^2 - y^3 x + 2 y^6 , lprr = ( -3 ) , lfacs = [] 15777 WARN [main] edu.jas.ufd.FactorInteger - found points : V = [-371], dei = [] 15778 WARN [main] edu.jas.ufd.FactorInteger - no evaluation point for: P = 2 y^6 - x * y^3 - 3 x^2, prr = ( ( -3 ) ) x^2 - y^3 x + 2 y^6 , lprr = ( -3 ) , lfacs = [] 15778 WARN [main] edu.jas.ufd.FactorInteger - optimized ring: BigInteger( y,x ) INVLEX , original ring: BigInteger( x,y ) INVLEX 16119 WARN [main] edu.jas.ufd.FactorInteger - found points : V = [371], dei = [] 16119 WARN [main] edu.jas.ufd.FactorInteger - no evaluation point for: P = ( -3 ) x^2 - y^3 * x + 2 y^6, prr = 2 y^6 - x y^3 - 3 x^2 , lprr = 2 , lfacs = [] 16119 WARN [main] edu.jas.ufd.FactorInteger - optimized ring: BigInteger( y,x ) INVLEX , original ring: BigInteger( x,y ) INVLEX 16478 WARN [main] edu.jas.ufd.FactorInteger - found points : V = [-370], dei = [] 16479 WARN [main] edu.jas.ufd.FactorInteger - no evaluation point for: P = ( -3 ) x^2 - y^3 * x + 2 y^6, prr = 2 y^6 - x y^3 - 3 x^2 , lprr = 2 , lfacs = [] 16479 WARN [main] edu.jas.ufd.FactorInteger - factorsSquarefreeHensel not applicable or failed, reverting to Kronecker for: 2 y^6 - x * y^3 - 3 x^2 16479 WARN [main] edu.jas.ufd.FactorAbstract - no multivariate factorization for 2 y^6 - x * y^3 - 3 x^2: falling back to Kronecker algorithm in PolyRing(ZZ(),"x,y",Order.INVLEX) Out[3]= -3*x^2-x*y^3+2*y^6
BTW: I switched off the internal cache for results from Factor to get always a new execution.
Factor
Can the case
Factor[2*y^6- x*y^3 -3*x^2]
be made more reliable in returning the solution(x+y^3)*(-3*x+2*y^3)
?In most of the cases it returns
-3*x^2-x*y^3+2*y^6
See some random execution with JAS logs:
BTW: I switched off the internal cache for results from
Factor
to get always a new execution.