Macaulay2 » Documentation
Packages » SpechtModule :: AsExpression
next | previous | forward | backward | up | index | toc

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 :

For the programmer

The object AsExpression is a symbol.