Macaulay2 » Documentation
Packages » SchurRings :: EorH
next | previous | forward | backward | up | index | toc

EorH -- e- or h- representation of Jacobi-Trudi determinant

Description

This option allows one to choose between evaluating the Jacobi-Trudi determinant in the e- or h- basis. If the length of the conjugate partition lambda' is larger than the length of lambda, then it is computationally less expensive to set the option EorH to "H". Otherwise, the default value "E" is more efficient.

i1 : R = symmetricRing(QQ,8);
i2 : fe = jacobiTrudi({2,2,2,2,2},R,EorH => "E");
i3 : fh = jacobiTrudi({2,2,2,2,2},R,EorH => "H");
i4 : fe

      2
o4 = e  - e e
      5    4 6

o4 : R
i5 : fh

      5       3       2   2     2 2       3     2 2       3       3      
o5 = h  - 4h h h  + 3h h h  + 3h h  - 2h h  + 3h h h  - 3h h  - 2h h h  -
      2     1 2 3     1 2 3     2 3     1 3     1 2 4     2 4     1 3 4  
     ------------------------------------------------------------------------
                  2      2 2       2     3           2       2              
     2h h h h  + h h  + h h  + 2h h  - 2h h h  + 4h h h  + 2h h h  - 4h h h 
       1 2 3 4    3 4    1 4     2 4     1 2 5     1 2 5     1 3 5     2 3 5
     ------------------------------------------------------------------------
                  2    4       2        2
     - 2h h h  + h  + h h  - 3h h h  + h h  + 2h h h  - h h
         1 4 5    5    1 6     1 2 6    2 6     1 3 6    4 6

o5 : R

Although the two polynomials are superficially different, they are equal as symmetric functions, as seen after applying toS:

i6 : toS fe == toS fh

o6 = true

When the conjugate partition is much longer than lambda itself, the "H"-branch requires a smaller determinant and runs measurably faster. For example on lambda = (10) the conjugate is $(1^{10})$, so "H" only sets up a 1x1 determinant:

i7 : R = symmetricRing(QQ,12);
i8 : elapsedTime jacobiTrudi({10},R,EorH => "E",Memoize => false);
 -- .00400908s elapsed
i9 : elapsedTime jacobiTrudi({10},R,EorH => "H",Memoize => false);
 -- .000083517s elapsed

Functions with optional argument named EorH:

  • jacobiTrudi(...,EorH=>...)

For the programmer

The object EorH is a symbol.


The source of this document is in /build/reproducible-path/macaulay2-1.26.05+ds/M2/Macaulay2/packages/SchurRings.m2:6153:0.