Ask Your Question

Revision history [back]

It seems not implemented on the floating-point complex numbers, nor on the complex algebraic numbers:

sage: R.<x,y> = CC[]
sage: P = x^2-y^2
sage: P.factor()
NotImplementedError: proof = True factorization not implemented.  Call factor with proof=False.
sage: P.factor(proof=False)
TypeError: Singular error:
   ? not implemented
   ? error occurred in or before STDIN line 26: `def sage12=factorize(sage11);`

sage: R.<x,y> = CDF[]
sage: P = x^2-y^2
sage: P.factor(proof=False)
NotImplementedError:

sage: R.<x,y> = QQbar[]
sage: P = x^2-y^2
sage: P.factor(proof=False)
TypeError: no conversion of this ring to a Singular ring defined

However, it is implemented for multivariate polynomials with integer or rational coefficients:

sage: R.<x,y> = ZZ[]
sage: P = x^2-y^2
sage: P.factor()
(x - y) * (x + y)

But note that the factorization is done with respect to the given ring, so you will get:

sage: P = x^2+1
sage: P.factor()
x^2 + 1

It seems not implemented on the floating-point complex numbers, nor on the complex algebraic numbers:

sage: R.<x,y> = CC[]
sage: P = x^2-y^2
sage: P.factor()
NotImplementedError: proof = True factorization not implemented.  Call factor with proof=False.
sage: P.factor(proof=False)
TypeError: Singular error:
   ? not implemented
   ? error occurred in or before STDIN line 26: `def sage12=factorize(sage11);`

sage: R.<x,y> = CDF[]
sage: P = x^2-y^2
sage: P.factor(proof=False)
NotImplementedError:

sage: R.<x,y> = QQbar[]
sage: P = x^2-y^2
sage: P.factor(proof=False)
TypeError: no conversion of this ring to a Singular ring defined

However, it is implemented for multivariate polynomials with integer or rational coefficients:

sage: R.<x,y> = ZZ[]
sage: P = x^2-y^2
sage: P.factor()
(x - y) * (x + y)

But note that the factorization is done with respect to the given ring, so you will get:

sage: P = x^2+1
sage: P.factor()
x^2 + 1

EDIT (July 2021)

Now, the factorization works on the field of algebraic numbers:

sage: R.<x,y> = QQbar[]
sage: P = x^2-y^2
sage: P.factor()

It seems not implemented on the floating-point complex numbers, nor on the complex algebraic numbers:

sage: R.<x,y> = CC[]
sage: P = x^2-y^2
sage: P.factor()
NotImplementedError: proof = True factorization not implemented.  Call factor with proof=False.
sage: P.factor(proof=False)
TypeError: Singular error:
   ? not implemented
   ? error occurred in or before STDIN line 26: `def sage12=factorize(sage11);`

sage: R.<x,y> = CDF[]
sage: P = x^2-y^2
sage: P.factor(proof=False)
NotImplementedError:

sage: R.<x,y> = QQbar[]
sage: P = x^2-y^2
sage: P.factor(proof=False)
TypeError: no conversion of this ring to a Singular ring defined

However, it is implemented for multivariate polynomials with integer or rational coefficients:

sage: R.<x,y> = ZZ[]
sage: P = x^2-y^2
sage: P.factor()
(x - y) * (x + y)

But note that the factorization is done with respect to the given ring, so you will get:

sage: P = x^2+1
sage: P.factor()
x^2 + 1

EDIT (July 2021)

Now, the factorization works on the field of algebraic numbers:

sage: R.<x,y> = QQbar[]
sage: P = x^2-y^2
sage: P.factor()
sage: P = x^2+x*y+y^2 sage: P.factor() (x + (0.50000000000000000? - 0.866025403784439?*I)*y) * (x + (0.50000000000000000? + 0.866025403784439?*I)*y)

It seems not implemented on the floating-point complex numbers, nor on the complex algebraic numbers:

sage: R.<x,y> = CC[]
sage: P = x^2-y^2
sage: P.factor()
NotImplementedError: proof = True factorization not implemented.  Call factor with proof=False.
sage: P.factor(proof=False)
TypeError: Singular error:
   ? not implemented
   ? error occurred in or before STDIN line 26: `def sage12=factorize(sage11);`

sage: R.<x,y> = CDF[]
sage: P = x^2-y^2
sage: P.factor(proof=False)
NotImplementedError:

sage: R.<x,y> = QQbar[]
sage: P = x^2-y^2
sage: P.factor(proof=False)
TypeError: no conversion of this ring to a Singular ring defined

However, it is implemented for multivariate polynomials with integer or rational coefficients:

sage: R.<x,y> = ZZ[]
sage: P = x^2-y^2
sage: P.factor()
(x - y) * (x + y)

But note that the factorization is done with respect to the given ring, so you will get:

sage: P = x^2+1
sage: P.factor()
x^2 + 1

EDIT (July 2021)

Now, the factorization works on the field of algebraic numbers:

sage: R.<x,y> = QQbar[]
sage: P = x^2-y^2
sage: P.factor()
(x - y) * (x + y)

sage: P = x^2+x*y+y^2
sage: P.factor()
(x + (0.50000000000000000? - 0.866025403784439?*I)*y) * (x + (0.50000000000000000? + 0.866025403784439?*I)*y)

It seems not implemented on the floating-point complex numbers, nor on the complex algebraic numbers:

sage: R.<x,y> = CC[]
sage: P = x^2-y^2
sage: P.factor()
NotImplementedError: proof = True factorization not implemented.  Call factor with proof=False.
sage: P.factor(proof=False)
TypeError: Singular error:
   ? not implemented
   ? error occurred in or before STDIN line 26: `def sage12=factorize(sage11);`

sage: R.<x,y> = CDF[]
sage: P = x^2-y^2
sage: P.factor(proof=False)
NotImplementedError:

sage: R.<x,y> = QQbar[]
sage: P = x^2-y^2
sage: P.factor(proof=False)
TypeError: no conversion of this ring to a Singular ring defined

However, it is implemented for multivariate polynomials with integer or rational coefficients:

sage: R.<x,y> = ZZ[]
sage: P = x^2-y^2
sage: P.factor()
(x - y) * (x + y)

But note that the factorization is done with respect to the given ring, so you will get:

sage: P = x^2+1
sage: P.factor()
x^2 + 1

EDIT (July 2021)

Now, the factorization works on the field of algebraic numbers:

sage: R.<x,y> = QQbar[]
sage: P = x^2-y^2
sage: P.factor()
(x - y) * (x + y)

sage: P = x^2+x*y+y^2
sage: P.factor()
(x + (0.50000000000000000? - 0.866025403784439?*I)*y) * (x + (0.50000000000000000? + 0.866025403784439?*I)*y)

This issue was likely fixed by trac ticket 25390

It seems not implemented on the floating-point complex numbers, nor on the complex algebraic numbers:

sage: R.<x,y> = CC[]
sage: P = x^2-y^2
sage: P.factor()
NotImplementedError: proof = True factorization not implemented.  Call factor with proof=False.
sage: P.factor(proof=False)
TypeError: Singular error:
   ? not implemented
   ? error occurred in or before STDIN line 26: `def sage12=factorize(sage11);`

sage: R.<x,y> = CDF[]
sage: P = x^2-y^2
sage: P.factor(proof=False)
NotImplementedError:

sage: R.<x,y> = QQbar[]
sage: P = x^2-y^2
sage: P.factor(proof=False)
TypeError: no conversion of this ring to a Singular ring defined

However, it is implemented for multivariate polynomials with integer or rational coefficients:

sage: R.<x,y> = ZZ[]
sage: P = x^2-y^2
sage: P.factor()
(x - y) * (x + y)

But note that the factorization is done with respect to the given ring, so you will get:

sage: P = x^2+1
sage: P.factor()
x^2 + 1

EDIT (July 2021)

Now, the factorization works on the field of algebraic numbers:

sage: R.<x,y> = QQbar[]
sage: P = x^2-y^2
sage: P.factor()
(x - y) * (x + y)

sage: R.<x,y> = QQbar[]
sage: P = x^2+1
sage: P.factor()
(x - 1*I) * (x + 1*I)

sage: P = x^2+x*y+y^2
sage: P.factor()
(x + (0.50000000000000000? - 0.866025403784439?*I)*y) * (x + (0.50000000000000000? + 0.866025403784439?*I)*y)

This issue was likely fixed by trac ticket 25390

It seems not implemented on the floating-point complex numbers, nor on the complex algebraic numbers:

sage: R.<x,y> = CC[]
sage: P = x^2-y^2
sage: P.factor()
NotImplementedError: proof = True factorization not implemented.  Call factor with proof=False.
sage: P.factor(proof=False)
TypeError: Singular error:
   ? not implemented
   ? error occurred in or before STDIN line 26: `def sage12=factorize(sage11);`

sage: R.<x,y> = CDF[]
sage: P = x^2-y^2
sage: P.factor(proof=False)
NotImplementedError:

sage: R.<x,y> = QQbar[]
sage: P = x^2-y^2
sage: P.factor(proof=False)
TypeError: no conversion of this ring to a Singular ring defined

However, it is implemented for multivariate polynomials with integer or rational coefficients:

sage: R.<x,y> = ZZ[]
sage: P = x^2-y^2
sage: P.factor()
(x - y) * (x + y)

But note that the factorization is done with respect to the given ring, so you will get:

sage: P = x^2+1
sage: P.factor()
x^2 + 1

EDIT (July 2021)

Now, the factorization works on the field of algebraic numbers:

sage: R.<x,y> = QQbar[]
sage: P = x^2-y^2
sage: P.factor()
(x - y) * (x + y)

sage: P = x^2 + y^2
sage: P.factor()
(x + (-1*I)*y) * (x + 1*I*y)

sage: R.<x,y> = QQbar[]
sage: P = x^2+1
sage: P.factor()
(x - 1*I) * (x + 1*I)

sage: P = x^2+x*y+y^2
sage: P.factor()
(x + (0.50000000000000000? - 0.866025403784439?*I)*y) * (x + (0.50000000000000000? + 0.866025403784439?*I)*y)

This issue was likely fixed by trac ticket 25390