#4000: Implement QQ['x'] via Flint ZZ['x'] + denominator
------------------------------+---------------------------------------------
Reporter: malb | Owner: somebody
Type: enhancement | Status: needs_work
Priority: blocker | Milestone: sage-4.6
Component: basic arithmetic | Resolution:
Keywords: | Author: Sebastian Pancratz, Martin
Albrecht
Upstream: N/A | Reviewer: John Cremona, Martin Albrecht,
Alex Ghitza, Harald Schilly
Merged: | Work_issues: Solaris build error, doctest
error
------------------------------+---------------------------------------------
Comment(by mpatel):
Applying [attachment:trac4000_0.patch] to 4.6.alpha2, I get a failed
"hunk":
{{{
#!diff
--- polynomial_ring.py
+++ polynomial_ring.py
@@ -1220,28 +1220,34 @@
sage: type(R.gen())
<class
'sage.rings.polynomial.polynomial_element_generic.Polynomial_generic_dense_field'>
"""
- if implementation is None: implementation="NTL"
from sage.rings.finite_rings.finite_field_base import
is_FiniteField
+ from sage.rings.rational_field import QQ
+ from sage.rings.polynomial.polynomial_singular_interface import
can_convert_to_singular
+ if implementation is None:
+ implementation = "NTL"
+
if implementation == "NTL" and is_FiniteField(base_ring):
- p=base_ring.characteristic()
from sage.libs.ntl.ntl_ZZ_pEContext import ntl_ZZ_pEContext
from sage.libs.ntl.ntl_ZZ_pX import ntl_ZZ_pX
+ from sage.rings.polynomial.polynomial_zz_pex import
Polynomial_ZZ_pEX
+
+ p = base_ring.characteristic()
self._modulus =
ntl_ZZ_pEContext(ntl_ZZ_pX(list(base_ring.polynomial()), p))
- from sage.rings.polynomial.polynomial_zz_pex import
Polynomial_ZZ_pEX
- element_class=Polynomial_ZZ_pEX
+ element_class = Polynomial_ZZ_pEX
if not element_class:
if sparse:
element_class =
polynomial_element_generic.Polynomial_generic_sparse_field
elif isinstance(base_ring, rational_field.RationalField):
- element_class =
polynomial_element_generic.Polynomial_rational_dense
+ from sage.rings.polynomial.polynomial_rational_flint
import Polynomial_rational_flint
+ element_class = Polynomial_rational_flint
elif is_RealField(base_ring):
element_class = PolynomialRealDense
else:
element_class =
polynomial_element_generic.Polynomial_generic_dense_field
+
PolynomialRing_integral_domain.__init__(self, base_ring,
name=name, sparse=sparse, element_class=element_class)
- from sage.rings.polynomial.polynomial_singular_interface import
can_convert_to_singular
self._has_singular = can_convert_to_singular(self)
def divided_difference(self, points, full_table=False):
}}}
Could someone who knows this code please rebase the patch?
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/4000#comment:121>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.