1 | | Refactor symmetric functions to: |
2 | | - use a single entry point, as in MuPAD-Combinat. Something like: |
3 | | - S = SymmetricFunctions(field) |
4 | | - S.schur |
5 | | - S.jack(t).P |
6 | | - S.macdonald(t,q).Q |
7 | | - S.kSchur(3).H |
8 | | - use the coercion framework |
9 | | - use the category framework |
| 1 | This patch restructures the implementation of symmetric functions in sage |
| 2 | |
| 3 | The new implementation makes use of multiple realizations and the category |
| 4 | framework. The new access to symmetric functions is via |
| 5 | {{{ |
| 6 | sage: Sym = SymmetricFunctions(QQ) |
| 7 | }}} |
| 8 | |
| 9 | Further new features that are implemented: |
| 10 | |
| 11 | - The ring of symmetric functions is now endowed with a Hopf algebra structure. |
| 12 | The coproduct and antipode are implemented (which were missing before). |
| 13 | |
| 14 | - A tutorial on how to use symmetric functions in sage is included at the |
| 15 | beginning of sf.py which is also accessible via |
| 16 | {{{ |
| 17 | sage: SymmetricFunctions?? |
| 18 | }}} |
| 19 | |
| 20 | - Symmetric functions should now work a lot better with respect to |
| 21 | specializing parameters like `q` and `t` for Hall-Littlewood, Jack |
| 22 | and Macdonald symmetric functions. Certain functionalities before |
| 23 | this change were broken or not possible. |
| 24 | |
| 25 | - Documentation was added to LLT polynomials (which had very sparse documentation |
| 26 | previously). |
| 27 | |
| 28 | - The `k`-bounded subspace of the ring of symmetric function was implemented. |
| 29 | The `k`-Schur functions now live in the `k`-bounded subspace rather than |
| 30 | in the ring of symmetric functions as before. |
| 31 | |
| 32 | This patch gained tremendously by the tutorial on symmetric functions written |
| 33 | by Jason Bandlow and Nicolas Thiery, a draft on the `k`-bounded subspace by |
| 34 | Jason Bandlow, and code multiple realizations written by Franco Saliola. |