def __init__(self, ambient, category): self._ambient = ambient Parent.__init__(self, category=category.IsomorphicObjects()) # Bricolage self._remove_from_coerce_cache(ambient) phi = SetMorphism(Hom(ambient, self, category), self.retract) phi.register_as_coercion()
def __init__(self, R, repr_var1 = 'x', repr_var2 = 'y', inversed_ring = None): self._coeffs_ring = MultivariatePolynomialAlgebra_generic(R, repr_var2, always_show_main_var = True) MultivariatePolynomialAlgebra_generic.__init__( self, self._coeffs_ring, repr_var1, always_show_main_var = True, extra_bases_category = Finite_rank_double_bases() ) self._repr_var1 = repr_var1 self._repr_var2 = repr_var2 self._coeffs_base_ring = R if(inversed_ring is None): self._inversed_ring = DoubleMultivariatePolynomialAlgebra_generic(R, repr_var2, repr_var1, self) else: self._inversed_ring = inversed_ring m = SetMorphism( Hom(self, self.inversed_ring()), lambda x : x.swap_coeffs_elements()) m.register_as_coercion()