Changeset 8474:b6a95e027144


Ignore:
Timestamp:
01/27/08 16:19:35 (5 years ago)
Author:
David Roe <roed@…>
Branch:
default
Message:

Added a bunch of set_from functions to padic_ext_element

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sage/rings/padics/padic_ext_element.pyx

    r8434 r8474  
     1from sage.rings.padics.pow_computer cimport PowComputer_class 
     2from sage.rings.integer import Integer 
     3 
     4 
    15cdef class pAdicExtElement(pAdicGenericElement): 
     6    cdef int _set_from_list(self, L) except -1: 
     7        """ 
     8        Sets self from a list. 
     9 
     10        The list should either be uniform in type, or all of the entries should be coercible to integers. 
     11        If any of the entries in L is a list, L will be cast to a ZZ_pEX 
     12 
     13        INPUT: 
     14        L -- a list. 
     15        """ 
     16        raise NotImplementedError 
     17         
     18    cdef int _set_from_list_rel(self, L, long relprec) except -1: 
     19        raise NotImplementedError 
     20     
     21    cdef int _set_from_list_abs(self, L, long absprec) except -1: 
     22        raise NotImplementedError 
     23     
     24    cdef int _set_from_list_both(self, L, long absprec, long relprec) except -1: 
     25        raise NotImplementedError 
     26 
     27    cdef int _set_from_ZZX(self, ZZX_c poly) except -1: 
     28        if self.parent().is_capped_relative(): 
     29            self._set_from_ZZX_rel(poly, (<PowComputer_class>self.parent().prime_pow).prec_cap) 
     30        elif self.parent().is_capped_absolute(): 
     31            self._set_from_ZZX_abs(poly, (<PowComputer_class>self.parent().prime_pow).prec_cap) 
     32        else: 
     33            raise RuntimeError, "_set_from_ZZX should have been overridden" 
     34         
     35    cdef int _set_from_ZZX_rel(self, ZZX_c poly, long relprec) except -1: 
     36        """ 
     37        Set from a ZZX_c with bounded relative precision. 
     38 
     39        Capped relative rings should override this function, so the default implementation is 
     40        for capped absolute. 
     41        """ 
     42        self._set_from_ZZX_both(poly, (<PowComputer_class>self.parent().prime_pow).prec_cap, relprec) 
     43         
     44    cdef int _set_from_ZZX_abs(self, ZZX_c poly, long absprec) except -1: 
     45        """ 
     46        Set from a ZZX_c with bounded absolute precision. 
     47 
     48        Capped absolute rings should override this function, so the default implementation is 
     49        for capped relative. 
     50        """ 
     51        self._set_from_ZZX_both(poly, absprec, (<PowComputer_class>self.parent().prime_pow).prec_cap) 
     52         
     53    cdef int _set_from_ZZX_both(self, ZZX_c poly, long absprec, long relprec) except -1: 
     54        if self.parent().is_fixed_mod(): 
     55            self._set_from_ZZX(poly) 
     56        else: 
     57            raise RuntimeError, "_set_from_ZZX_both should have been overridden" 
     58 
     59    cdef int _set_from_ZZ_pX(self, ZZ_pX_c* poly, ntl_ZZ_pContext_class ctx) except -1: 
     60        if self.parent().is_capped_relative(): 
     61            self._set_from_ZZ_pX_rel(poly, ctx, (<PowComputer_class>self.parent().prime_pow).prec_cap) 
     62        elif self.parent().is_capped_absolute(): 
     63            self._set_from_ZZ_pX_abs(poly, ctx, (<PowComputer_class>self.parent().prime_pow).prec_cap) 
     64        else: 
     65            raise RuntimeError, "_set_from_ZZ_pX should have been overridden" 
     66 
     67    cdef int _set_from_ZZ_pX_rel(self, ZZ_pX_c* poly, ntl_ZZ_pContext_class ctx, long relprec) except -1: 
     68        """ 
     69        Set from a ZZ_pX_c with bounded relative precision. 
     70 
     71        Capped relative rings should override this function, so the default implementation is 
     72        for capped absolute. 
     73        """ 
     74        self._set_from_ZZ_pX_both(poly, ctx, (<PowComputer_class>self.parent().prime_pow).prec_cap, relprec) 
     75 
     76    cdef int _set_from_ZZ_pX_abs(self, ZZ_pX_c* poly, ntl_ZZ_pContext_class ctx, long absprec) except -1: 
     77        """ 
     78        Set from a ZZ_pX_c with bounded absolute precision. 
     79 
     80        Capped absolute rings should override this function, so the default implementation is 
     81        for capped relative. 
     82        """ 
     83        self._set_from_ZZ_pX_both(poly, ctx, absprec, (<PowComputer_class>self.parent().prime_pow).prec_cap) 
     84         
     85    cdef int _set_from_ZZ_pX_both(self, ZZ_pX_c* poly, ntl_ZZ_pContext_class ctx, long absprec, long relprec) except -1: 
     86        if self.parent().is_fixed_mod(): 
     87            self._set_from_ZZ_pX(poly, ctx) 
     88        else: 
     89            raise RuntimeError, "_set_from_ZZ_pX_both should have been overridden" 
     90 
     91    cdef int _set_from_ZZ_pE(self, ZZ_pE_c* poly, ntl_ZZ_pEContext_class ctx) except -1: 
     92        if self.parent().is_capped_relative(): 
     93            self._set_from_ZZ_pE_rel(poly, ctx, (<PowComputer_class>self.parent().prime_pow).prec_cap) 
     94        elif self.parent().is_capped_absolute(): 
     95            self._set_from_ZZ_pE_abs(poly, ctx, (<PowComputer_class>self.parent().prime_pow).prec_cap) 
     96        else: 
     97            raise RuntimeError, "_set_from_ZZ_pE should have been overridden" 
     98 
     99    cdef int _set_from_ZZ_pE_rel(self, ZZ_pE_c* poly, ntl_ZZ_pEContext_class ctx, long relprec) except -1: 
     100        """ 
     101        Set from a ZZ_pE_c with bounded relative precision. 
     102 
     103        Capped relative rings should override this function, so the default implementation is 
     104        for capped absolute. 
     105        """ 
     106        self._set_from_ZZ_pE_both(poly, ctx, (<PowComputer_class>self.parent().prime_pow).prec_cap, relprec) 
     107 
     108    cdef int _set_from_ZZ_pE_abs(self, ZZ_pE_c* poly, ntl_ZZ_pEContext_class ctx, long absprec) except -1: 
     109        """ 
     110        Set from a ZZ_pE_c with bounded absolute precision. 
     111 
     112        Capped absolute rings should override this function, so the default implementation is 
     113        for capped relative. 
     114        """ 
     115        self._set_from_ZZ_pE_both(poly, ctx, absprec, (<PowComputer_class>self.parent().prime_pow).prec_cap) 
     116         
     117    cdef int _set_from_ZZ_pE_both(self, ZZ_pE_c* poly, ntl_ZZ_pEContext_class ctx, long absprec, long relprec) except -1: 
     118        if self.parent().is_fixed_mod(): 
     119            self._set_from_ZZ_pE(poly, ctx) 
     120        else: 
     121            raise RuntimeError, "_set_from_ZZ_pE_both should have been overridden" 
     122 
     123    cdef int _set_from_ZZ_pEX(self, ZZ_pEX_c* poly, ntl_ZZ_pEContext_class ctx) except -1: 
     124        if self.parent().is_capped_relative(): 
     125            self._set_from_ZZ_pEX_rel(poly, ctx, (<PowComputer_class>self.parent().prime_pow).prec_cap) 
     126        elif self.parent().is_capped_absolute(): 
     127            self._set_from_ZZ_pEX_abs(poly, ctx, (<PowComputer_class>self.parent().prime_pow).prec_cap) 
     128        else: 
     129            raise RuntimeError, "_set_from_ZZ_pEX should have been overridden" 
     130 
     131    cdef int _set_from_ZZ_pEX_rel(self, ZZ_pEX_c* poly, ntl_ZZ_pEContext_class ctx, long relprec) except -1: 
     132        """ 
     133        Set from a ZZ_pEX_c with bounded relative precision. 
     134 
     135        Capped relative rings should override this function, so the default implementation is 
     136        for capped absolute. 
     137        """ 
     138        self._set_from_ZZ_pEX_both(poly, ctx, (<PowComputer_class>self.parent().prime_pow).prec_cap, relprec) 
     139 
     140    cdef int _set_from_ZZ_pEX_abs(self, ZZ_pEX_c* poly, ntl_ZZ_pEContext_class ctx, long absprec) except -1: 
     141        """ 
     142        Set from a ZZ_pEX_c with bounded absolute precision. 
     143 
     144        Capped absolute rings should override this function, so the default implementation is 
     145        for capped relative. 
     146        """ 
     147        self._set_from_ZZ_pEX_both(poly, ctx, absprec, (<PowComputer_class>self.parent().prime_pow).prec_cap) 
     148         
     149    cdef int _set_from_ZZ_pEX_both(self, ZZ_pEX_c* poly, ntl_ZZ_pEContext_class ctx, long absprec, long relprec) except -1: 
     150        if self.parent().is_fixed_mod(): 
     151            self._set_from_ZZ_pEX(poly, ctx) 
     152        else: 
     153            raise RuntimeError, "_set_from_ZZ_pEX_both should have been overridden" 
     154 
     155    cdef long _check_ZZ_pContext(self, ntl_ZZ_pContext_class ctx) except -1: 
     156        raise NotImplementedError 
     157     
     158    cdef long _check_ZZ_pEContext(self, ntl_ZZ_pEContext_class ctx) except -1: 
     159        raise NotImplementedError 
     160 
    2161    cdef ext_p_list(self, bint pos): 
    3162        raise NotImplementedError 
    4163 
    5     def _ext_p_list(self, pos): 
    6         return self.ext_p_list(pos) 
    7  
    8     cdef int _set_from_mpz(self, mpz_t x) except -1: 
     164    cdef ext_p_list_precs(self, bint pos, long prec): 
    9165        raise NotImplementedError 
    10166 
    11     cdef int _set_from_mpq(self, mpq_t x) except -1: 
     167    cdef ZZ_p_c _const_term(self): 
    12168        raise NotImplementedError 
     169 
     170    def _ext_p_list(self, pos): 
     171        return self.ext_p_list(pos)         
Note: See TracChangeset for help on using the changeset viewer.