sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.35k stars 460 forks source link

Implement the abstract ring of multivariate polynomials, with several bases (Schur schubert, ...) #6629

Open nthiery opened 15 years ago

nthiery commented 15 years ago

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.

CC: @sagetrac-sage-combinat @VivianePons @tscrim @opechenik

Component: combinatorics

Keywords: multivariate polynomials, schubert polynomials, non symmetric polynomials, days54, fpsac2019

Author: Viviane Pons

Branch/Commit: public/combinat/polynomial_bases-6629 @ d6e1201

Issue created by migration from https://trac.sagemath.org/ticket/6629

VivianePons commented 11 years ago

Author: Viviane Pons

VivianePons commented 11 years ago

Description changed:

--- 
+++ 
@@ -1 +1,3 @@
-See: http://wiki.sagemath.org/combinat/MultivariatePolynomials
+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.
VivianePons commented 11 years ago
comment:2

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.

jeffpferreira commented 11 years ago
comment:3

What is the status of this ticket? Is it still in development?

VivianePons commented 11 years ago
comment:4

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.

VivianePons commented 11 years ago
comment:5

Attachment: trac_6629-multivariate-polynomials-on-several-bases-vp.patch.gz

Just attached the last version of the patch to apply on Sage 5.9

VivianePons commented 10 years ago

Commit: 066a1b9

VivianePons commented 10 years ago

New commits:

[changeset:066a1b9]typo fix
[changeset:2149df9]#6629 Implement the abstract ring of multivariate polynomials, with several bases (monomials, Schur schubert, Demazure ...)
VivianePons commented 10 years ago

Branch: public/combinat/6629-Schubert-Grothendieck-Key-polynomials

tscrim commented 10 years ago

Changed keywords from multivariate polynomials, schubert polynomials, non symmetric polynomials to multivariate polynomials, schubert polynomials, non symmetric polynomials, days54

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Changed commit from 066a1b9 to e011845

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

e011845Merge branch 'master' into 6629-Schubert-Grothendieck-Key-polynomials
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

933a033Merge remote-tracking branch 'origin/develop' into polynomials
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 10 years ago

Changed commit from e011845 to 933a033

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

b92a96eMerge branch 'public/combinat/6629-Schubert-Grothendieck-Key-polynomials' of trac.sagemath.org:sage into public/combinat/6629-Schubert-Grothendieck-Key-polynomials
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Changed commit from 933a033 to b92a96e

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Changed commit from b92a96e to 0271f67

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 8 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

b70d426Merge branch 'public/combinat/6629-Schubert-Grothendieck-Key-polynomials' of trac.sagemath.org:sage into public/combinat/6629-Schubert-Grothendieck-Key-polynomials
0271f67Trying to make things work again. Not there yet.
tscrim commented 8 years ago
comment:17

Viviane, when you get a chance, could you push the code that you currently have or are you still working on this?

VivianePons commented 8 years ago

Changed branch from public/combinat/6629-Schubert-Grothendieck-Key-polynomials to public/combiat/6629-new-version

VivianePons commented 8 years ago

Changed commit from 0271f67 to 46b6841

VivianePons commented 8 years ago
comment:18

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:

e0d9682Merge remote-tracking branch 'origin/public/combinat/6629-Schubert-Grothendieck-Key-polynomials' into local-6629
d9c033aWork in progress: simplifying the structure, cleaning stuff, writting docs
1db580dRefactoring / commenting, Work in progress
7805a1eMerge branch 'develop' into local-6629-wip
43d86b0Merge branch 'local-6629-wip' into local-6629-wip2
a40f3a8small fixes
f777a78Merge branch 'local-6629-wip2' into local-6629-7.3
46b6841Fixing some broken things
tscrim commented 8 years ago
comment:19

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!

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 5 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

f7094ecMerge branch 'develop' into t/6629/public/combiat/6629-new-version
6ae9767some documentation typos
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 5 years ago

Changed commit from 46b6841 to 6ae9767

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 5 years ago

Changed commit from 6ae9767 to 8189b01

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 5 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

b709b8bgot Schuberts mostly working again
8189b01fixed things
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 5 years ago

Changed commit from 8189b01 to fb5b566

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 5 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

fb5b566fixed broken an_element method
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 5 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

5c955e2somehow finite_basis is failing to pass along the basis keys, trying to debug
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 5 years ago

Changed commit from fb5b566 to 5c955e2

17b1eba5-ac2a-4aa9-b51b-fa077a4f050d commented 5 years ago

Changed keywords from multivariate polynomials, schubert polynomials, non symmetric polynomials, days54 to multivariate polynomials, schubert polynomials, non symmetric polynomials, days54, fpsac2019

tscrim commented 3 years ago

Changed branch from public/combiat/6629-new-version to public/combinat/polynomial_bases-6629

tscrim commented 3 years ago

Changed commit from 5c955e2 to d6e1201

tscrim commented 3 years ago
comment:26

A version that works on Python3.


New commits:

1c1fdf1Merge branch 'public/combiat/6629-new-version' of git://trac.sagemath.org/sage into public/combiat/6629-new-version
d6e1201Convert code to Python3.