id summary reporter owner description type status priority milestone component resolution keywords cc merged author reviewer upstream work_issues branch commit dependencies stopgaps
23338 Clean up polynomial constructor jdemeyer "This ticket cleans up the `PolynomialRing()` function in many ways. Mainly:
1. Use `normalize_names()` as much as possible to deal with variable names.
2. Fix indentation in docstring.
3. Pass arguments like `sparse` and `implementation` as `**kwds` to the single-variate or multi-variate polynomial constructor.
4. Make the code easier to understand.
5. Allow `PolynomialRing(..., implementation=""singular"")` which forces Singular. This allows simplifying some code in `src/sage/algebras/free_algebra.py` which currently needs to jump through hoops to get a `MPolynomialRing_libsingular`.
6. Check more error conditions, for example currently we have
{{{
sage: PolynomialRing(QQ, name=""x"", names=""y"")
Univariate Polynomial Ring in y over Rational Field
}}}
7. Change some arguments of `PolynomialRing()` to keyword-only arguments. This does break some existing uses of `PolynomialRing()`, although much more likely in library code and not user code (some code in Sage gets this even wrong and was passing `sparse=""lex""` instead of `order=""lex""`)
Apart from items 6 and 7, no existing functionality is changed." enhancement closed major sage-8.0 algebra fixed tscrim Jeroen Demeyer Travis Scrimshaw N/A fc75734d30afcbe5604ff835ae2d1bb5b983e713 fc75734d30afcbe5604ff835ae2d1bb5b983e713