-
Notifications
You must be signed in to change notification settings - Fork 126
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Promote JuLie to src
#3159
Promote JuLie to src
#3159
Conversation
According to my own plans in #3147 |
If I remember correctly, I have implemented an interator, no? I checked and recall now: for compositions I implemented an iterator and convinced myself as well that this is the way to go. I wanted to use that as a template for implementing a partition iterator as well but didn't do it. I think it shouldn't be too difficult to modify the code (it should be the same algorithm that I implemented because it's fast). |
A further thought on iterators (I was thinking a lot about this back then but then forgot everything): as far as possible for any combinatorial structure there should be an interator. There may be many different ways to generate one and the same set of combinatorial objects: different algorithms that also generate in different orders which may be very relevant in applications. Iterators should be implemented per algorithm (ParititionsXYZ, PartitionsABC, ...) and there should be a default choice of iterator. I first tried to have one common type of iterator with optional argument for algorithms. But this doesn't work because different algorithms may use different types of state vectors and one runs in type stability problems (which is bad for performance). |
Good, then we all agree on this. From what I can see, the implementations already work iteratively, so changing this should not be too hard. But doing it efficiently etc. is also not entirely trivial. Let's see. |
6f042c6
to
b06125f
Compare
6151b7e
to
cd35b72
Compare
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## master #3159 +/- ##
==========================================
+ Coverage 81.60% 81.63% +0.03%
==========================================
Files 546 546
Lines 73504 73468 -36
==========================================
- Hits 59980 59979 -1
+ Misses 13524 13489 -35
|
f744039
to
7e9003b
Compare
Turning So far, there is almost no change to functionality. A quick overview of what has been done is given by the check list at the top (or the commit descriptions). |
Yeah, will do. This pull request isn't relevant for the book or anything so yours has priority. |
cce98bd
to
44a3bee
Compare
Can you explain the open "Figure out why we have several ways of counting partitions (and decide on one)"? The fastest one should be the one from FLINT I think and this one should be used. |
Apparently there is another |
44a3bee
to
09aef68
Compare
Okay, maybe @thofma knows? I think we should use the one from the paper by Fredrik Johansson, which should be the one implemented here: https://flintlib.org/doc/partitions.html (and this is the one I have been calling in JuLie). |
Also add `check` keyword to disable them
* Put some doc strings together * Move non-technical information (i.e. definitions) out of the doc string * Move some information into comments
937c27e
to
71c3107
Compare
This is good to go from my side (as soon as CI confirms that I didn't miss anything while renaming). |
Still needs an approving review by an adult :) |
Resolves #2301 and resolves #2462 as a start on #3147 .
I decided to be so bold to move
experimental/JuLie
tosrc/Combinatorics
and did some cosmetic changes.What else needs to be done to make this ready for
src
? I cannot judge the mathematics. Regarding the source code, I feel that the wording/style of the documentation is often a bit different from what we have elsewhere (e.g., the documentation mostly gives the mathematical definition of the object it returns). Other than that there are some violations of our style guide (whitespaces etc.), but I have seen worse code insrc
...To do:
partitions
etc. return an iteratorTableau
Partition
andTableau
Tableau
->YoungTableau
AbstractAlgebra.YoungTableau
toTableau
#2462ascending_partitions
back in experimental for the time beingcheck
keyword to disable themschur_polynomial
to Allow polynomial rings with 0 variables Nemocas/Nemo.jl#1619 once we updated Nemonumber_of_partitions
should returnMore?