-
-
Notifications
You must be signed in to change notification settings - Fork 555
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
Polynomial roots cannot be calculated over a ring of Laurent polynomials #26421
Comments
Commit: |
comment:2
I do the following:
The reason why I use New commits:
|
comment:3
Replying to @soehms:
I am not sure about doing that. The reason has to do with units and normalization of fractions. Since Some other quick comments:
|
comment:4
Replying to @tscrim: Thank you for your hints, Travis!
I really don't understand the argument, why the field of fraction over the corresponding polynomial ring is preferred. Even not after reading the original discussion about that: Without the
Does this give a hint to the reason? Why is the current version of that doctests preferable?
I agree! But how can I get the coercion work for the Laurent polynomial case?
The bare The other occurrence in the |
comment:5
Replying to @soehms:
Perhaps think about it this way, would you write Something else that was going wrong was going between the two "different" fraction fields: the one for polynomials and for Laurent polynomials (see comment 3 on #15345). It makes things much easier when
I would say that is a bug in the conversion of the Laurent polynomial ring (and deserves a separate ticket). It seems like it is not converting the denominator to
By having a bare
|
comment:6
I still don't understand the change of the
and all tests of ticket #15345 (under sage.rings) passed, when I removed the
I have opened ticket #26425 for the coercion problem. Concerning this ticket I will reduce the coefficients of my example to polynomials in t, such that they will work for |
comment:7
Replying to @soehms:
No, it is not. The field of fractions of Laurent polynomials means you have things like
It is because it has a relatively large set of units and it does not work as well wrt things like the Euclidean algorithm IIRC. This is what leads to the issues with normalizations.
That is good, it means the coercion framework has independently gotten more robust. However, the last part bit of this example shows the problem:
Equal objects should have equal hashes (in this case, there is no coercion involved, it definitely should be consistent). This can cause very subtle problems with, e.g., |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:9
Now, I've got it! Thanks for your patients, Travis! |
comment:10
Sorry, lost track of this. Can you rebase? I will finish the review after that. |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Reviewer: Travis Scrimshaw |
comment:14
Thank you. LGTM now. |
comment:15
Thanks! |
Changed branch from u/soehms/poly_roots_laurent-26421 to |
Changed commit from |
... even if the polynomial is linear or the roots are integers:
The calculation aborts, since the method
ideal
of the classLaurentPolynomialRing_generic
is not implemented but invoked viacontent_ideal
which could be avoided or replaced by the functionlcm
.But there are further problems:
The method
ideal
of the classLaurentPolynomialRing_generic
raises the wrong error, since it doesn't have the right number of arguments.The correct
NotImplementedError
would not be caught.Factorization over some cases of integral domains is not implemented in the method
factor
of the classPolynomial
(even though it should be possible using the field of fractions)Just aesthetically: The deprecation of the method
content
(fix content of polynomials #16613) has not been implemented properly (the warning can't be avoided by the user).CC: @tscrim
Component: algebra
Keywords: roots, factor, integral domain, Laurent polynomial
Author: Sebastian Oehms
Branch:
196f1ce
Reviewer: Travis Scrimshaw
Issue created by migration from https://trac.sagemath.org/ticket/26421
The text was updated successfully, but these errors were encountered: