Opened 12 years ago
Last modified 7 weeks ago
#6629 new defect
Implement the abstract ring of multivariate polynomials, with several bases (Schur schubert, ...)
Reported by:  nthiery  Owned by:  VivianePons 

Priority:  major  Milestone:  sage7.2 
Component:  combinatorics  Keywords:  multivariate polynomials, schubert polynomials, non symmetric polynomials, days54, fpsac2019 
Cc:  sagecombinat, VivianePons, tscrim, opechenik  Merged in:  
Authors:  Viviane Pons  Reviewers:  
Report Upstream:  N/A  Work issues:  
Branch:  public/combinat/polynomial_bases6629 (Commits, GitHub, GitLab)  Commit:  d6e12011d9665f69d2a394ab36de78957511da70 
Dependencies:  Stopgaps: 
Description (last modified by )
We build an implantation of polynomials as formal sum of exponents. This allows to work on any number of variables with some easy morphism. We use some actions of Weyl group on the exponents to create operators (especially divided difference operators).
These operators allow us to build different bases that comes from geometry and have nice combinatorial description.
Attachments (1)
Change History (27)
comment:1 Changed 8 years ago by
 Cc VivianePons added
 Description modified (diff)
 Owner changed from mhansen to VivianePons
 Report Upstream set to N/A
comment:2 Changed 8 years ago by
comment:3 Changed 8 years ago by
What is the status of this ticket? Is it still in development?
comment:4 Changed 8 years ago by
Yes, sorry for taking such a long time but this is a big implementation and I work on it only when I have time (which is not so often). My plan is to finish a first version of it on the upcoming Sage days in Paris and find someone to work on the review. In the meantime, the patch is working already and some people use it.
Changed 8 years ago by
comment:5 Changed 8 years ago by
Just attached the last version of the patch to apply on Sage 5.9
comment:6 Changed 8 years ago by
 Milestone changed from sage5.11 to sage5.12
comment:7 Changed 7 years ago by
 Branch set to public/combinat/6629SchubertGrothendieckKeypolynomials
 Commit set to 066a1b9dd3dfc521ee097e144bc9cf02abb7643d
New commits:
[changeset:066a1b9]  typo fix 
[changeset:2149df9]  #6629 Implement the abstract ring of multivariate polynomials, with several bases (monomials, Schur schubert, Demazure ...) 
comment:8 Changed 7 years ago by
 Cc tscrim added
 Keywords days54 added
comment:9 Changed 7 years ago by
 Commit changed from 066a1b9dd3dfc521ee097e144bc9cf02abb7643d to e0118458589d794f4566cf3dec26dd69e5d6fd59
Branch pushed to git repo; I updated commit sha1. New commits:
e011845  Merge branch 'master' into 6629SchubertGrothendieckKeypolynomials

comment:10 Changed 7 years ago by
 Milestone changed from sage6.1 to sage6.2
comment:11 Changed 7 years ago by
 Commit changed from e0118458589d794f4566cf3dec26dd69e5d6fd59 to 933a033b0555ed39570078e9d594282feaeab007
Branch pushed to git repo; I updated commit sha1. New commits:
933a033  Merge remotetracking branch 'origin/develop' into polynomials

comment:12 Changed 7 years ago by
 Milestone changed from sage6.2 to sage6.3
comment:13 Changed 7 years ago by
 Milestone changed from sage6.3 to sage6.4
comment:14 Changed 5 years ago by
 Commit changed from 933a033b0555ed39570078e9d594282feaeab007 to b92a96e4a03cd1be423bb8d035d265e8a697227b
Branch pushed to git repo; I updated commit sha1. New commits:
b92a96e  Merge branch 'public/combinat/6629SchubertGrothendieckKeypolynomials' of trac.sagemath.org:sage into public/combinat/6629SchubertGrothendieckKeypolynomials

comment:15 Changed 5 years ago by
 Milestone changed from sage6.4 to sage7.2
comment:16 Changed 5 years ago by
 Commit changed from b92a96e4a03cd1be423bb8d035d265e8a697227b to 0271f6713b72d069b1097a2b0338f3186c4b53e3
comment:17 Changed 5 years ago by
Viviane, when you get a chance, could you push the code that you currently have or are you still working on this?
comment:18 Changed 5 years ago by
 Branch changed from public/combinat/6629SchubertGrothendieckKeypolynomials to public/combiat/6629newversion
 Commit changed from 0271f6713b72d069b1097a2b0338f3186c4b53e3 to 46b6841f0b7ceb9877063c44230f25bf9b63b529
Just pushed my latest code. Mostly everything is working but the tests and examples are all messed up (and, for some reason, I still cannot run any tests).
I have simplified many things, removing useless classes and so on. Now, I consider the monomial basis to be a "generator", I call it x and write:
sage: A.<x> = MultivariatePolynomialAlgebra(QQ) sage: x[1,2,3] + x[2,3] x[2, 3, 0] + x[1, 2, 3]
I think it makes more sense and it is more natural to use. The goal is to hide the inner mechanics as much as possible. "New example" are written in this manner, old ones still use the m notation.
All basis are combinatorial free module using a common "key wrapper" class that handles lists and ambient space basis elements.
In terms of mathematical meaning, remember that all bases are indexed by vectors, for Grothendieck and Schubert, they correspond to the Lehmer code of the permutation.
The only part that is not working is the "Double polynomial" one, but it's quite independent from the rest.
I let you have a look at it, it's not finished yet. Feel free to change it if you feel like it. I will be on holidays for the next 2 weeks.
New commits:
e0d9682  Merge remotetracking branch 'origin/public/combinat/6629SchubertGrothendieckKeypolynomials' into local6629

d9c033a  Work in progress: simplifying the structure, cleaning stuff, writting docs

1db580d  Refactoring / commenting, Work in progress

7805a1e  Merge branch 'develop' into local6629wip

43d86b0  Merge branch 'local6629wip' into local6629wip2

a40f3a8  small fixes

f777a78  Merge branch 'local6629wip2' into local66297.3

46b6841  Fixing some broken things

comment:19 Changed 5 years ago by
Thank you Viviane, I appreciate it. I will take a look at it soon and pass it along to the REU students. Enjoy your holidays!
comment:20 Changed 22 months ago by
 Commit changed from 46b6841f0b7ceb9877063c44230f25bf9b63b529 to 6ae976779d32f885859d335456b2209cca610c7b
comment:21 Changed 22 months ago by
 Commit changed from 6ae976779d32f885859d335456b2209cca610c7b to 8189b01d035a9258e9dd5dc7ed310bc5aecc45aa
comment:22 Changed 22 months ago by
 Commit changed from 8189b01d035a9258e9dd5dc7ed310bc5aecc45aa to fb5b566180e3251352511f3d47f359d7e668275d
Branch pushed to git repo; I updated commit sha1. New commits:
fb5b566  fixed broken an_element method

comment:23 Changed 22 months ago by
 Cc opechenik added
comment:24 Changed 22 months ago by
 Commit changed from fb5b566180e3251352511f3d47f359d7e668275d to 5c955e274508d82f09ec1833e7eab5d384f613c3
Branch pushed to git repo; I updated commit sha1. New commits:
5c955e2  somehow finite_basis is failing to pass along the basis keys, trying to debug

comment:25 Changed 21 months ago by
 Keywords fpsac2019 added
comment:26 Changed 7 weeks ago by
 Branch changed from public/combiat/6629newversion to public/combinat/polynomial_bases6629
 Commit changed from 5c955e274508d82f09ec1833e7eab5d384f613c3 to d6e12011d9665f69d2a394ab36de78957511da70
the patch apply on 5.6 and is mostly working. It is not yet ready for review though, it needs more tests and docs and possibly a few fixes.