Skip to content

Commit e28bd1a

Browse files
committed
simplify coercion again
1 parent a8ae402 commit e28bd1a

File tree

1 file changed

+4
-12
lines changed

1 file changed

+4
-12
lines changed

src/sage/rings/polynomial/integer_valued_polynomials.py

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -547,11 +547,6 @@ def _element_constructor_(self, x):
547547
if P is not self.base_ring():
548548
return self.element_class(self, x.monomial_coefficients())
549549

550-
if isinstance(P, IntegerValuedPolynomialRing.Binomial):
551-
phi = P.module_morphism(self._from_binomial_basis,
552-
codomain=self)
553-
return phi(x)
554-
555550
# ok, not a integer-valued polynomial ring element
556551
R = self.base_ring()
557552
# coercion via base ring
@@ -653,7 +648,8 @@ def _coerce_map_from_(self, R):
653648
if isinstance(R, IntegerValuedPolynomialRing.Shifted):
654649
return self.base_ring().has_coerce_map_from(R.base_ring())
655650
if isinstance(R, IntegerValuedPolynomialRing.Binomial):
656-
return self.base_ring().has_coerce_map_from(R.base_ring())
651+
return R.module_morphism(self._from_binomial_basis,
652+
codomain=self)
657653
return self.base_ring().has_coerce_map_from(R)
658654

659655
def _poly(self, i):
@@ -990,11 +986,6 @@ def _element_constructor_(self, x):
990986
if P is not self.base_ring():
991987
return self.element_class(self, x.monomial_coefficients())
992988

993-
if isinstance(P, IntegerValuedPolynomialRing.Shifted):
994-
psi = P.module_morphism(self._from_shifted_basis,
995-
codomain=self)
996-
return psi(x)
997-
998989
# ok, not a integer-valued polynomial ring element
999990
R = self.base_ring()
1000991
# coercion via base ring
@@ -1092,7 +1083,8 @@ def _coerce_map_from_(self, R):
10921083
if isinstance(R, IntegerValuedPolynomialRing.Binomial):
10931084
return self.base_ring().has_coerce_map_from(R.base_ring())
10941085
if isinstance(R, IntegerValuedPolynomialRing.Shifted):
1095-
return self.base_ring().has_coerce_map_from(R.base_ring())
1086+
return R.module_morphism(self._from_shifted_basis,
1087+
codomain=self)
10961088
return self.base_ring().has_coerce_map_from(R)
10971089

10981090
def _poly(self, i):

0 commit comments

Comments
 (0)