FUNCTION: ToX - convert any expression to the X Schubert basis
CALLING SEQUENCE:
- ToX(expr)
- ToX(expr, b)
- SP[ToX](expr)
- SP[ToX](expr, b)
-
PARAMETERS:
- expr = any expression
- b = any name of a known basis
SYNOPSIS:
- The ToX function converts any expression expr to the X Schubert basis.
expr may involve some xi's, simple Schubert polynomials (X[perm],
Y[code]), double Schubert polynomials (XX[perm], YY[code]), other terms
being considered as coefficients.
- The expression expr is expanded and the result is not collected.
- One may specify by a second argument, say b, that expr is solely
expressed in terms of the known basis b (x, X, Y, XX, YY and even y that
is seen as a basis in the package).
- The call ToX(expr, 'X') does not affect the argument expr, but it
simplifies Schubert polynomials indices.
- One may add 'noexpand' just after the argument expr to choose not to
expand the expression expr before treating it.
- One may collect the result by adding a third argument: this is done
by ToX(expr, b, 'collect'). For instance, ToX(expr, 'X', 'collect') may
be used to collect the argument expr.
- Whenever there is a conflict between the function name ToX and another
name used in the same session, use the long form SP['ToX'].
EXAMPLES:
> with(SP):
> Flag(-1):
> ToX((1+q)^5*x3*x4): # expands the input
> ToX((1+q)^5*x3*x4,noexpand): # does not expand (1+q)^5
> ToX((1+q)^5*x3*x4,collect): # collects the result
> ToX((1+q)^5*x3*x4,noexpand,'x'): # the most efficient
> ToX((1+q)^5*x3*x4,'x',collect): # specifies a basis
> ToX((1+q)^5*x3*x4,noexpand,'x',collect):
> ToX(q^2*x3*XX[3,1,2]*Y[0,0,1], collect);
2 2
- q y2 y1 X[1, 4, 2, 3] + q y2 y1 X[1, 2, 5, 3, 4]
2 2
+ q (y1 + y2) X[4, 1, 2, 3] + q (y1 + y2) X[2, 4, 1, 3]
2 2 2
- q X[4, 2, 1, 3] - q X[3, 4, 1, 2] - q (y1 + y2) X[2, 1, 5, 3, 4]
2
+ q X[3, 1, 5, 2, 4]
SEE ALSO: Flag TYP[Schubert] Tox