# How do you factor Schubert Polynomials in Sage?

I am interested in factoring (sums of) Schubert polynomials using Sage (which uses Singular). Here's my input attempt:

> X = SchubertPolynomialRing(QQ)

> f = X([5,4,2,6,1,3]).expand(); f

> f.factor()

However, while the second line gives a correct output, x0^4*x1^3*x2^2*x3 + x0^4*x1^3*x2*x3^2, when I try to factor this output, I get the following error message: "NotImplementedError: Factorization of multivariate polynomials over non-fields is not implemented."

I don't know how to get Sage to recognize a SchubertPolynomialRing as being over a field. Any suggestions?

edit retag close merge delete

Sort by » oldest newest most voted This post is a wiki. Anyone with karma >750 is welcome to improve it.

This is because the defaut base ring is ZZ and not QQ.

sage: X = SchubertPolynomialRing(QQ)
sage: f = X([5,4,2,6,1,3]).expand(); f
x0^4*x1^3*x2^2*x3 + x0^4*x1^3*x2*x3^2
sage: f.parent()
Multivariate Polynomial Ring in x0, x1, x2, x3, x4, x5 over Integer Ring
sage: f.change_ring(QQ)
x0^4*x1^3*x2^2*x3 + x0^4*x1^3*x2*x3^2
sage: f.change_ring(QQ).factor()
x3 * x2 * (x2 + x3) * x1^3 * x0^4
sage:

more