def __init__(self, k, p=None, prec_cap=None, base=None, character=None, adjuster=None, act_on_left=False, dettwist=None, act_padic=False, implementation=None): """ See ``OverconvergentDistributions_abstract`` for full documentation. EXAMPLES:: sage: from sage.modular.pollack_stevens.distributions import OverconvergentDistributions sage: D = OverconvergentDistributions(2, 3, 5); D Space of 3-adic distributions with k=2 action and precision cap 5 sage: type(D) <class 'sage.modular.pollack_stevens.distributions.OverconvergentDistributions_class_with_category'> `p` must be a prime, but `p=6` below, which is not prime:: sage: OverconvergentDistributions(k=0, p=6, prec_cap=10) Traceback (most recent call last): ... ValueError: p must be prime """ if not isinstance(base, ring.Ring): raise TypeError("base must be a ring") from sage.rings.padics.pow_computer import PowComputer # should eventually be the PowComputer on ZpCA once that uses longs. Dist, WeightKAction = get_dist_classes(p, prec_cap, base, self.is_symk(), implementation) self.Element = Dist # if Dist is Dist_long: # self.prime_pow = PowComputer(p, prec_cap, prec_cap, prec_cap) Parent.__init__(self, base, category=Modules(base)) self._k = k self._p = p self._prec_cap = prec_cap self._character = character self._adjuster = adjuster self._dettwist = dettwist if self.is_symk() or character is not None: self._act = WeightKAction(self, character, adjuster, act_on_left, dettwist, padic=act_padic) else: self._act = WeightKAction(self, character, adjuster, act_on_left, dettwist, padic=True) self._populate_coercion_lists_(action_list=[self._act])