def __init__(self, parent, x, prec=None, dx=[], dx_mode='linear_combination', valuation=None, check=True, reduce=True): r""" TESTS:: sage: R = ZpLC(2) sage: x = R(1, 10) # indirect doctest sage: x 1 + O(2^10) """ self._parent = parent p = parent.prime() pAdicGenericElement.__init__(self, parent) self._precision = parent.precision() if check: if isinstance(x, pAdicGenericElement): if parent.prime() != x.parent().prime(): raise TypeError("conversion between different p-adic rings/fields not supported") if prec is None: prec = x.precision_absolute() else: prec = min(prec, x.precision_absolute()) x = QQ(x) if isinstance(x, pRational): self._value = x else: self._value = pRational(p, QQ(x)) trunc = self._declare_new_element(dx, prec, dx_mode) if reduce: self._value = self._value.reduce(trunc)
def __init__(self, parent, x, prec=None, dx=[], dx_mode='linear_combination', valuation=None, check=True, reduce=True): r""" TESTS:: sage: R = ZpLC(2) sage: x = R(1, 10) # indirect doctest sage: x 1 + O(2^10) """ self._parent = parent p = parent.prime() pAdicGenericElement.__init__(self, parent) self._precision = parent.precision() if check: if isinstance(x, pAdicGenericElement): if parent.prime() != x.parent().prime(): raise TypeError("conversion between different p-adic rings/fields not supported") if prec is None: prec = x.precision_absolute() else: prec = min(prec, x.precision_absolute()) x = QQ(x) if isinstance(x, pRational): self._value = x else: self._value = pRational(p, QQ(x)) trunc = self._declare_new_element(dx, prec, dx_mode) if reduce: self._value = self._value.reduce(trunc)