Skip to content
This repository has been archived by the owner on Jan 30, 2023. It is now read-only.

Commit

Permalink
register coercion from a Ore ring to its fraction field
Browse files Browse the repository at this point in the history
  • Loading branch information
xcaruso committed May 12, 2020
1 parent f6835a3 commit 2e9458b
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 15 deletions.
2 changes: 1 addition & 1 deletion src/sage/rings/polynomial/ore_function_element.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
class OreFunction(AlgebraElement):
def __init__(self, parent, numerator, denominator=None, simplify=True):
AlgebraElement.__init__(self, parent)
ring = parent.ring()
ring = parent._ring
numerator = ring(numerator)
if denominator is None:
denominator = ring.one()
Expand Down
5 changes: 1 addition & 4 deletions src/sage/rings/polynomial/ore_function_field.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ def _coerce_map_from_base_ring(self):

def _coerce_map_from_(self, P):
if isinstance(P, OreFunctionField):
return P.ring().has_coerce_map_from(self._ring)
return P._ring.has_coerce_map_from(self._ring)
if isinstance(P, Parent):
return P.has_coerce_map_from(self._ring)

Expand All @@ -72,9 +72,6 @@ def _repr_(self):
s += derivation._repr_()
return s

def ring(self):
return self._ring

def change_var(self, var):
return OreFunctionField(self._ring.change_var(var))

Expand Down
21 changes: 11 additions & 10 deletions src/sage/rings/polynomial/ore_polynomial_ring.py
Original file line number Diff line number Diff line change
Expand Up @@ -1058,14 +1058,15 @@ def is_commutative(self):
def fraction_field(self):
from sage.rings.polynomial.ore_function_field import OreFunctionField
if self.base_ring() in Fields():
ring = self
return OreFunctionField(self)
base = self.base_ring().fraction_field()
if self._derivation is None:
twist = self._morphism.extend_to_fraction_field()
else:
base = self.base_ring().fraction_field()
if self._derivation is None:
twist = self._morphism.extend_to_fraction_field()
else:
twist = self._derivation.extend_to_fraction_field()
name = self.variable_name()
sparse = self.is_sparse()
ring = OrePolynomialRing(base, twist, name, sparse)
return OreFunctionField(ring)
twist = self._derivation.extend_to_fraction_field()
name = self.variable_name()
sparse = self.is_sparse()
ring = OrePolynomialRing(base, twist, name, sparse)
frac = OreFunctionField(ring)
frac.register_coercion(self)
return frac

0 comments on commit 2e9458b

Please sign in to comment.