Add puiseux_expansion#5588
Conversation
|
I have a problem here. If I run my code on this polynomial I get an error. The reason is that all of a sudden Singular's Edit: To be more precise about what the issue is, I include the following code snippet. It is unclear for me how Singular decides to return something completely different in the two cases for |
|
I will have a look! |
|
Here are a few notes about how the Singular library works: The output of the command
The expansions themselves always consist of a list. Only the first two entries should be relevant: One more remark: the option @hannes14 is looking into how to properly pack and unpack the information for Oscar. |
|
Thank you, @jankoboehm ! I will meet with @hannes14 to discuss further steps. |
dade14c to
0f58f12
Compare
|
I made another attempt at wrapping Singular's output correctly. The price is that the user can not specify parent objects for the output anymore, as they are dynamically generated during the process. Unfortunately one test still fails which is probably due to the inconsistency of |
|
I found that I accidentally hardcoded an exponent. That is fixed now and the tests should pass. However, it would be good if e.g. @jankoboehm could comment on the validity of the choice of |
|
I have now made For the time being this should bring the PR to a mergable state as the code is not producing wrong results, unless the user themself can be held accountable for it due to faulty input. In the long term it would be desirable to have the default set a bit more conciously. But that will eventually come up through people actually using it, knowing what they're doing, and getting back to us with "Hey, you know: In my application, it is useful to set it to ..." |
|
Failing tests do not seem to be my fault. Good to go from my side. |
|
|
||
| g = f + y^7 | ||
| hg = Oscar.puiseux_expansion(g, 20) | ||
| @test_throws ErrorException h + hg # no parent compatibility |
There was a problem hiding this comment.
is it a feature that parents are not compatible? If not, I would suggest to use a @test_broken instead to mark that this is the current state of things, but eventually it would be good to fix it
There was a problem hiding this comment.
It is not a feature, but it also can not be avoided. Thus I would say it is unfortunate, but expected behavior.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #5588 +/- ##
==========================================
+ Coverage 84.05% 84.07% +0.02%
==========================================
Files 744 745 +1
Lines 101320 101403 +83
==========================================
+ Hits 85168 85259 +91
+ Misses 16152 16144 -8
🚀 New features to boost your workflow:
|
|
For |
Alright, this is the confirmation we needed. Thanks! |
Co-authored-by: Lars Göttgens <lars.goettgens@gmail.com>
Co-authored-by: Lars Göttgens <lars.goettgens@gmail.com>
|
Many thanks! |
|
I tried to find the correct spot to put it in the documentation; it seems to be here. But those files seem to be imported from AA and Nemo in some ways which I can not really follow. Does anyone have a good suggestion where to put the docstring for |
|
How about |
puiseux_expansion
This is a first take at wrapping Puiseux expansion from
PuiseuxExpansion.libas requested by @simonbrandhorst .@jankoboehm : Could you please have a look? I tried to make sense of the output from Singular, but I could only make an educated guess at what we hold in our hands there. There is lots of data being discarded and I'm wondering whether 1. my interpretation of the output is correct so far and 2. whether we want to keep more of the data and make it available in Oscar.
One particular question: Singular's puiseux command takes an integer value
max_ord. I am not sure how that relates to theprecargument in the constructorpuiseux_series_ring. So far, I just set them to be equal, i.e. I call Singular'spuiseuxwithmax_ord=kand wrap the output in apuiseux_series_ringwithprec=kfor the samek. But I'm afraid that this might not be the correct approach. @jankoboehm : If you remember the implementation in Singular, do you see howmax_ordandprecare related?Pinging also @YueRen for critical input on this topic.