AsExpression -- an optional argument that returns polynomials as expressions

Description

The optional argument AsExpression specifies whether the polynomials should be outputted as RingElement objects or as elements of type Expression

 i1 : R = QQ[x_0..x_3] o1 = R o1 : PolynomialRing i2 : vandermondeDeterminant({0,2,3},R,AsExpression => true) o2 = (- x + x )(- x + x )(- x + x ) 0 2 0 3 2 3 o2 : Expression of class Product

This allows to visualize some of the polynomials in a clearer way.

 i3 : p = new Partition from {2,2} o3 = Partition{2, 2} o3 : Partition i4 : S = youngTableau(p,{0,2,1,3}) o4 = | 0 2 | | 1 3 | o4 : YoungTableau i5 : T = youngTableau(p,{0,1,2,3}) o5 = | 0 1 | | 2 3 | o5 : YoungTableau i6 : higherSpechtPolynomial(S,T,R,AsExpression => true) o6 = (- x + x )(- x + x )((x )(x ) + (x )(x )) 0 2 1 3 3 1 2 0 o6 : Expression of class Product i7 : higherSpechtPolynomials(R,AsExpression => true) o7 = HashTable{Partition{1, 1, 1, 1} => HashTable{{0, 1, 2, 3} => HashTable{{0, 1, 2, 3} => (- x + x )(- x + x )(- x + x )(- x + x )(- x + x )(- x + x )}}} 0 1 0 2 0 3 1 2 1 3 2 3 Partition{2, 1, 1} => HashTable{{0, 1, 2, 3} => HashTable{{0, 1, 2, 3} => (- x + x )(- x + x )(- x + x )} } 0 2 0 3 2 3 {0, 2, 1, 3} => (- x + x )(- x + x )(- x + x ) 0 1 0 3 1 3 {0, 3, 1, 2} => (- x + x )(- x + x )(- x + x ) 0 1 0 2 1 2 {0, 2, 1, 3} => HashTable{{0, 1, 2, 3} => (- x + x )(- x + x )(- x + x )(x )} 0 2 0 3 2 3 1 {0, 2, 1, 3} => (- x + x )(- x + x )(- x + x )(x ) 0 1 0 3 1 3 2 {0, 3, 1, 2} => (- x + x )(- x + x )(- x + x )(x ) 0 1 0 2 1 2 3 2 {0, 3, 1, 2} => HashTable{{0, 1, 2, 3} => (- x + x )(- x + x )(- x + x )(x ) } 0 2 0 3 2 3 1 2 {0, 2, 1, 3} => (- x + x )(- x + x )(- x + x )(x ) 0 1 0 3 1 3 2 2 {0, 3, 1, 2} => (- x + x )(- x + x )(- x + x )(x ) 0 1 0 2 1 2 3 Partition{2, 2} => HashTable{{0, 1, 2, 3} => HashTable{{0, 1, 2, 3} => (- x + x )(- x + x )} } 0 2 1 3 {0, 2, 1, 3} => (- x + x )(- x + x ) 0 1 2 3 {0, 2, 1, 3} => HashTable{{0, 1, 2, 3} => (- x + x )(- x + x )((x )(x ) + (x )(x ))} 0 2 1 3 3 1 2 0 {0, 2, 1, 3} => (- x + x )(- x + x )((x )(x ) + (x )(x )) 0 1 2 3 3 2 1 0 Partition{3, 1} => HashTable{{0, 1, 2, 3} => HashTable{{0, 1, 2, 3} => (- x + x )} } 0 3 {0, 1, 3, 2} => (- x + x ) 0 2 {0, 2, 3, 1} => (- x + x ) 0 1 {0, 1, 3, 2} => HashTable{{0, 1, 2, 3} => (- x + x )((x ) + (x ))} 0 3 2 1 {0, 1, 3, 2} => (- x + x )((x ) + (x )) 0 2 3 1 {0, 2, 3, 1} => (- x + x )((x ) + (x )) 0 1 3 2 {0, 2, 3, 1} => HashTable{{0, 1, 2, 3} => (- x + x )(x )(x )} 0 3 1 2 {0, 1, 3, 2} => (- x + x )(x )(x ) 0 2 1 3 {0, 2, 3, 1} => (- x + x )(x )(x ) 0 1 2 3 Partition{4} => HashTable{{0, 1, 2, 3} => HashTable{{0, 1, 2, 3} => 1}} o7 : HashTable

In some cases it also allows to work with polynomials whose term expansion is very big.

Example R = QQ[x_1..x_10] p = new Partition from {1,1,1,1,1,1,1,1,1,1}; spechtPolynomial(youngTableau(p,{0,1,2,3,4,5,6,7,8,9}),R,AsExpression => true) SeeAlso higherSpechtPolynomial

Functions with optional argument named AsExpression :

• "higherSpechtPolynomial(...,AsExpression=>...)"
• "higherSpechtPolynomials(...,AsExpression=>...)"
• "schurPolynomial(...,AsExpression=>...)"
• "secondaryInvariants(...,AsExpression=>...)"
• "spechtPolynomial(...,AsExpression=>...)"
• "spechtPolynomials(...,AsExpression=>...)"
• "vandermondeDeterminant(...,AsExpression=>...)"

For the programmer

The object AsExpression is .