Ticket #7879: 7879-RR-signal.patch

File 7879-RR-signal.patch, 24.8 KB (added by Robert Bradshaw, 13 years ago)
  • sage/rings/real_mpfr.pyx

    # HG changeset patch
    # User Robert Bradshaw <robertwb@math.washington.edu>
    # Date 1263066099 28800
    # Node ID 5de66881154e762500fa79378068e138e1de6cee
    # Parent  db3cc513fb4d21f0df9bb1e552578db8165dc58a
    Trac #7879: Remove unnecessary signal handling for low prec mpfr operations.
    
    diff -r db3cc513fb4d -r 5de66881154e sage/rings/real_mpfr.pyx
    a b  
    663663            sage: R.pi().sqrt()/2
    664664            0.88622692545275801364908374167057259139877473
    665665        """
    666         cdef RealNumber x
    667         x = self._new()
    668         _sig_on
     666        cdef RealNumber x = self._new()
     667        if self.__prec > 1000: _sig_on
    669668        # The docs for mpfr_free_cache say "Free the cache used by
    670669        # the functions computing constants if needed (currently
    671670        # mpfr_const_log2, mpfr_const_pi and mpfr_const_euler)", so
     
    675674        # functions, but this free is needed for them too!
    676675        mpfr_free_cache()
    677676        mpfr_const_pi(x.value, self.rnd)
    678         _sig_off
     677        if self.__prec > 1000: _sig_off
    679678        return x
    680679
    681680
     
    689688            sage: RealField(100).euler_constant()
    690689            0.57721566490153286060651209008
    691690        """
    692         cdef RealNumber x
    693         x = self._new()
     691        cdef RealNumber x = self._new()
    694692        _sig_on
    695693        mpfr_free_cache()
    696694        mpfr_const_euler(x.value, self.rnd)
     
    707705            sage: RealField(100).catalan_constant()
    708706            0.91596559417721901505460351493
    709707        """
    710         cdef RealNumber x
    711         x = self._new()
    712         _sig_on
     708        cdef RealNumber x = self._new()
     709        if self.__prec > 1000: _sig_on
    713710        mpfr_free_cache()
    714711        mpfr_const_catalan(x.value, self.rnd)
    715         _sig_off
     712        if self.__prec > 1000: _sig_off
    716713        return x
    717714
    718715    # int mpfr_const_log2 (mpfr_t rop, mp_rnd_t rnd)
     
    729726            0.69314718055994530941723212146
    730727        """
    731728        cdef RealNumber x = self._new()
    732         _sig_on
     729        if self.__prec > 1000: _sig_on
    733730        mpfr_free_cache()
    734731        mpfr_const_log2(x.value, self.rnd)
    735         _sig_off
     732        if self.__prec > 1000: _sig_off
    736733        return x
    737734       
    738735    def random_element(self, min=-1, max=1, distribution=None):
     
    799796        if n < 0:
    800797            raise ArithmeticError, "n must be nonnegative"
    801798        x = self._new()
    802         _sig_on
     799        if self.__prec > 1000 and n < 1000: _sig_on
    803800        mpfr_fac_ui(x.value, n, self.rnd)
    804         _sig_off
     801        if self.__prec > 1000 and n < 1000: _sig_off
    805802        return x
    806803
    807804    def rounding_mode(self):
     
    16881685            sage: R(-1.5) + R(2.5)
    16891686            1.00000000000000
    16901687        """
    1691         cdef RealNumber x
    1692         x = self._new()
     1688        cdef RealNumber x = self._new()
    16931689        mpfr_add(x.value, self.value, (<RealNumber>other).value, (<RealField>self._parent).rnd)
    16941690        return x
    16951691       
     
    17061702            sage: R(-1.5) - R(2.5)
    17071703            -4.00000000000000
    17081704        """
    1709         cdef RealNumber x
    1710         x = self._new()
     1705        cdef RealNumber x = self._new()
    17111706        mpfr_sub(x.value, self.value, (<RealNumber>right).value, (<RealField> self._parent).rnd)
    17121707        return x
    17131708       
     
    17411736            sage: parent(b*a)
    17421737            Real Field with 20 bits of precision
    17431738        """
    1744         cdef RealNumber x
    1745         x = self._new()
     1739        cdef RealNumber x = self._new()
    17461740        mpfr_mul(x.value, self.value, (<RealNumber>right).value, (<RealField>self._parent).rnd)
    17471741        return x
    17481742   
     
    17651759            sage: R(-1.5) / R(2.5)
    17661760            -0.600000000000000
    17671761        """
    1768         cdef RealNumber x
    1769         x = self._new()
     1762        cdef RealNumber x = self._new()
    17701763        mpfr_div((<RealNumber>x).value, self.value,
    17711764                 (<RealNumber>right).value, (<RealField>self._parent).rnd)
    17721765        return x
    17731766   
    17741767    cpdef ModuleElement _neg_(self):
    1775         cdef RealNumber x
    1776         x = self._new()
     1768        cdef RealNumber x = self._new()
    17771769        mpfr_neg(x.value, self.value, (<RealField>self._parent).rnd)
    17781770        return x
    17791771
     
    18161808    def _rshift_(RealNumber self, n):
    18171809        if n > sys.maxint:
    18181810            raise OverflowError, "n (=%s) must be <= %s"%(n, sys.maxint)
    1819         cdef RealNumber x
    1820         x = self._new()
     1811        cdef RealNumber x = self._new()
    18211812        mpfr_div_2exp(x.value, self.value, n, (<RealField>self._parent).rnd)
    18221813        return x
    18231814
     
    19631954             sage: RR(-0.5).round()
    19641955             -1
    19651956         """
    1966         cdef RealNumber x
    1967         x = self._new()
     1957        cdef RealNumber x = self._new()
    19681958        mpfr_round(x.value, self.value)
    19691959        return x.integer_part()
    19701960
     
    20422032            sage: (0.00).trunc()
    20432033            0
    20442034        """
    2045         cdef RealNumber x
    2046         x = self._new()
     2035        cdef RealNumber x = self._new()
    20472036        mpfr_trunc(x.value, self.value)
    20482037        return x.integer_part()
    20492038
     
    20612050            sage: (-2.79).frac()
    20622051            -0.790000000000000
    20632052        """
    2064         cdef RealNumber x
    2065         x = self._new()
     2053        cdef RealNumber x = self._new()
    20662054        mpfr_frac(x.value, self.value, (<RealField>self._parent).rnd)
    20672055        return x
    20682056
     
    20932081        else:
    20942082            other_rn = self._parent(other)
    20952083
    2096         cdef RealNumber x
    2097         x = self._new()
     2084        cdef RealNumber x = self._new()
    20982085       
    20992086        mpfr_set(x.value, self.value, GMP_RNDN)
    21002087        mpfr_nexttoward(x.value, other_rn.value)
     
    21192106            '-1.4142135623730949'
    21202107        """
    21212108
    2122         cdef RealNumber x
    2123         x = self._new()
     2109        cdef RealNumber x = self._new()
    21242110        mpfr_set(x.value, self.value, GMP_RNDN)
    21252111        mpfr_nextabove(x.value)
    21262112
     
    21442130            '-1.4142135623730954'
    21452131        """
    21462132
    2147         cdef RealNumber x
    2148         x = self._new()
     2133        cdef RealNumber x = self._new()
    21492134        mpfr_set(x.value, self.value, GMP_RNDN)
    21502135        mpfr_nextbelow(x.value)
    21512136
     
    29042889        cdef RealNumber x
    29052890        if mpfr_cmp_ui(self.value, 0) >= 0:
    29062891            x = self._new()
    2907             _sig_on               
     2892            if (<RealField>self._parent).__prec > 10000: _sig_on
    29082893            mpfr_sqrt(x.value, self.value, (<RealField>self._parent).rnd)
    2909             _sig_off
     2894            if (<RealField>self._parent).__prec > 10000: _sig_off
    29102895            if all:
    29112896                if x.is_zero():
    29122897                    return [x]
     
    29492934            sage: r.cube_root()^3 - r       # illustrates precision loss
    29502935            -1.42108547152020e-14
    29512936        """
    2952         cdef RealNumber x
    2953         x = self._new()
    2954         _sig_on               
     2937        cdef RealNumber x = self._new()
     2938        if (<RealField>self._parent).__prec > 10000: _sig_on
    29552939        mpfr_cbrt(x.value, self.value, (<RealField>self._parent).rnd)
    2956         _sig_off       
     2940        if (<RealField>self._parent).__prec > 10000: _sig_off
    29572941        return x
    29582942
    29592943    def __pow(self, RealNumber exponent):
    2960         cdef RealNumber x
    2961         x = self._new()
    2962         _sig_on               
     2944        cdef RealNumber x = self._new()
     2945        if (<RealField>self._parent).__prec > 1000: _sig_on
    29632946        mpfr_pow(x.value, self.value, exponent.value, (<RealField>self._parent).rnd)
    2964         _sig_off
     2947        if (<RealField>self._parent).__prec > 1000: _sig_off
    29652948        if mpfr_nan_p(x.value):
    29662949            return self._complex_number_()**exponent._complex_number_()
    29672950        return x
     
    30393022                return self._complex_number_().log(base)
    30403023        if base == 'e':
    30413024            x = self._new()
    3042             _sig_on               
     3025            if (<RealField>self._parent).__prec > 1000: _sig_on
    30433026            mpfr_log(x.value, self.value, (<RealField>self._parent).rnd)
    3044             _sig_off       
     3027            if (<RealField>self._parent).__prec > 1000: _sig_off
    30453028            return x
    30463029        elif base == 10:
    30473030            return self.log10()
     
    30803063        if self < 0:
    30813064            return self._complex_number_().log(2)
    30823065        x = self._new()
    3083         _sig_on               
     3066        if (<RealField>self._parent).__prec > 1000: _sig_on
    30843067        mpfr_log2(x.value, self.value, (<RealField>self._parent).rnd)
    3085         _sig_off       
     3068        if (<RealField>self._parent).__prec > 1000: _sig_off
    30863069        return x
    30873070
    30883071    def log10(self):
     
    31173100        if self < 0:
    31183101            return self._complex_number_().log(10)
    31193102        x = self._new()
    3120         _sig_on               
     3103        if (<RealField>self._parent).__prec > 1000: _sig_on
    31213104        mpfr_log10(x.value, self.value, (<RealField>self._parent).rnd)
    3122         _sig_off
     3105        if (<RealField>self._parent).__prec > 1000: _sig_off
    31233106        return x
    31243107
    31253108    def log1p(self):
     
    31333116            sage: (r+1).log()
    31343117            2.77258872223978
    31353118       
     3119        For small values, this is more accurate than computing `log(1 + self)`
     3120        directly, as it avoid cancelation issues::
     3121       
     3122            sage: r = 3e-10
     3123            sage: r.log1p()
     3124            2.99999999955000e-10
     3125            sage: (1+r).log()
     3126            3.00000024777111e-10
     3127            sage: r100 = RealField(100)(r)
     3128            sage: (1+r100).log()
     3129            2.9999999995500000000978021372e-10
     3130       
    31363131        ::
    31373132       
    31383133            sage: r = 38.9; r.log1p()
     
    31543149        if self < -1:
    31553150            return (self+1.0)._complex_number_().log()
    31563151        x = self._new()
    3157         _sig_on               
     3152        if (<RealField>self._parent).__prec > 1000: _sig_on
    31583153        mpfr_log1p(x.value, self.value, (<RealField>self._parent).rnd)
    3159         _sig_off
     3154        if (<RealField>self._parent).__prec > 1000: _sig_off
    31603155        return x
    31613156
    31623157    def exp(self):
     
    31833178            sage: r.exp()
    31843179            9.38184458849869e-15
    31853180        """
    3186         cdef RealNumber x
    3187         x = self._new()
    3188         _sig_on               
     3181        cdef RealNumber x = self._new()
     3182        if (<RealField>self._parent).__prec > 10000: _sig_on
    31893183        mpfr_exp(x.value, self.value, (<RealField>self._parent).rnd)
    3190         _sig_off       
     3184        if (<RealField>self._parent).__prec > 10000: _sig_off
    31913185        return x
    31923186
    31933187    def exp2(self):
     
    32123206            sage: r.exp2()
    32133207            1.89117248253021e-10
    32143208        """
    3215         cdef RealNumber x
    3216         x = self._new()
    3217         _sig_on               
     3209        cdef RealNumber x = self._new()
     3210        if (<RealField>self._parent).__prec > 10000: _sig_on
    32183211        mpfr_exp2(x.value, self.value, (<RealField>self._parent).rnd)
    3219         _sig_off       
     3212        if (<RealField>self._parent).__prec > 10000: _sig_off
    32203213        return x
    32213214
    32223215    def exp10(self):
     
    32413234            sage: r.exp10()
    32423235            5.01187233627276e-33
    32433236        """
    3244         cdef RealNumber x
    3245         x = self._new()
    3246         _sig_on               
     3237        cdef RealNumber x = self._new()
     3238        if (<RealField>self._parent).__prec > 10000: _sig_on
    32473239        mpfr_exp10(x.value, self.value, (<RealField>self._parent).rnd)
    3248         _sig_off       
     3240        if (<RealField>self._parent).__prec > 10000: _sig_off
    32493241        return x
    32503242
    32513243    def expm1(self):
     
    32673259            sage: r.expm1()
    32683260            1.00000000000000e-16
    32693261        """
    3270         cdef RealNumber x
    3271         x = self._new()
    3272         _sig_on               
     3262        cdef RealNumber x = self._new()
     3263        if (<RealField>self._parent).__prec > 10000: _sig_on
    32733264        mpfr_expm1(x.value, self.value, (<RealField>self._parent).rnd)
    3274         _sig_off       
     3265        if (<RealField>self._parent).__prec > 10000: _sig_off
    32753266        return x
    32763267
    32773268    def eint(self):
     
    32903281            sage: r.eint()
    32913282            NaN
    32923283        """
    3293         cdef RealNumber x
    3294         x = self._new()
     3284        cdef RealNumber x = self._new()
    32953285        _sig_on               
    32963286        mpfr_eint(x.value, self.value, (<RealField>self._parent).rnd)
    32973287        _sig_off       
     
    33073297            sage: t.cos()
    33083298            6.12323399573677e-17
    33093299        """
    3310         cdef RealNumber x
    3311         x = self._new()
    3312         _sig_on               
     3300        cdef RealNumber x = self._new()
     3301        if (<RealField>self._parent).__prec > 1000: _sig_on
    33133302        mpfr_cos(x.value, self.value, (<RealField>self._parent).rnd)
    3314         _sig_off       
     3303        if (<RealField>self._parent).__prec > 1000: _sig_off
    33153304        return x
    33163305
    33173306    ##########################################################
     
    33333322            sage: R(2).sin()
    33343323            0.90929742682568169539601986591
    33353324        """
    3336         cdef RealNumber x
    3337         x = self._new()
    3338         _sig_on               
     3325        cdef RealNumber x = self._new()
     3326        if (<RealField>self._parent).__prec > 1000: _sig_on
    33393327        mpfr_sin(x.value, self.value, (<RealField>self._parent).rnd)
    3340         _sig_off
     3328        if (<RealField>self._parent).__prec > 1000: _sig_off
    33413329        return x
    33423330   
    33433331    def tan(self):
     
    33533341            sage: q.tan()
    33543342            0.577350269189626
    33553343        """
    3356         cdef RealNumber x
    3357         x = self._new()
    3358         _sig_on               
     3344        cdef RealNumber x = self._new()
     3345        if (<RealField>self._parent).__prec > 1000: _sig_on
    33593346        mpfr_tan(x.value, self.value, (<RealField>self._parent).rnd)
    3360         _sig_off
     3347        if (<RealField>self._parent).__prec > 1000: _sig_off
    33613348        return x
    33623349
    33633350    def sincos(self):
     
    33713358            sage: t.sincos()
    33723359            (0.500000000000000, 0.866025403784439)
    33733360        """
    3374         cdef RealNumber x,y
    3375         x = self._new()
    3376         y = self._new()
    3377         _sig_on               
     3361        cdef RealNumber x = self._new()
     3362        cdef RealNumber y = self._new()
     3363        if (<RealField>self._parent).__prec > 1000: _sig_on
    33783364        mpfr_sin_cos(x.value, y.value, self.value, (<RealField>self._parent).rnd)
    3379         _sig_off       
     3365        if (<RealField>self._parent).__prec > 1000: _sig_off
    33803366        return x,y
    33813367
    33823368
     
    33933379            sage: i.arccos() == q
    33943380            True
    33953381        """
    3396         cdef RealNumber x
    3397         x = self._new()
    3398         _sig_on               
     3382        cdef RealNumber x = self._new()
     3383        if (<RealField>self._parent).__prec > 1000: _sig_on
    33993384        mpfr_acos(x.value, self.value, (<RealField>self._parent).rnd)
    3400         _sig_off       
     3385        if (<RealField>self._parent).__prec > 1000: _sig_off
    34013386        return x
    34023387
    34033388    def arcsin(self):
     
    34133398            sage: i.arcsin() - q
    34143399            0.000000000000000
    34153400        """
    3416         cdef RealNumber x
    3417         x = self._new()
    3418         _sig_on               
     3401        cdef RealNumber x = self._new()
     3402        if (<RealField>self._parent).__prec > 1000: _sig_on
    34193403        mpfr_asin(x.value, self.value, (<RealField>self._parent).rnd)
    3420         _sig_off       
     3404        if (<RealField>self._parent).__prec > 1000: _sig_off
    34213405        return x
    34223406
    34233407    def arctan(self):
     
    34313415            sage: i.arctan() == q
    34323416            True
    34333417        """
    3434         cdef RealNumber x
    3435         x = self._new()
    3436         _sig_on               
     3418        cdef RealNumber x = self._new()
     3419        if (<RealField>self._parent).__prec > 1000: _sig_on
    34373420        mpfr_atan(x.value, self.value, (<RealField>self._parent).rnd)
    3438         _sig_off       
     3421        if (<RealField>self._parent).__prec > 1000: _sig_off
    34393422        return x
    34403423
    34413424    #int mpfr_acos _PROTO ((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
     
    34523435            sage: q.cosh()
    34533436            1.03446564009551
    34543437        """
    3455         cdef RealNumber x
    3456         x = self._new()
    3457         _sig_on               
     3438        cdef RealNumber x = self._new()
     3439        if (<RealField>self._parent).__prec > 1000: _sig_on
    34583440        mpfr_cosh(x.value, self.value, (<RealField>self._parent).rnd)
    3459         _sig_off       
     3441        if (<RealField>self._parent).__prec > 1000: _sig_off
    34603442        return x
    34613443
    34623444    def sinh(self):
     
    34693451            sage: q.sinh()
    34703452            0.264800227602271
    34713453        """
    3472         cdef RealNumber x
    3473         x = self._new()
    3474         _sig_on               
     3454        cdef RealNumber x = self._new()
     3455        if (<RealField>self._parent).__prec > 1000: _sig_on
    34753456        mpfr_sinh(x.value, self.value, (<RealField>self._parent).rnd)
    3476         _sig_off       
     3457        if (<RealField>self._parent).__prec > 1000: _sig_off
    34773458        return x
    34783459
    34793460    def tanh(self):
     
    34863467            sage: q.tanh()
    34873468            0.278079429295850
    34883469        """
    3489         cdef RealNumber x
    3490         x = self._new()
    3491         _sig_on               
     3470        cdef RealNumber x = self._new()
     3471        if (<RealField>self._parent).__prec > 1000: _sig_on
    34923472        mpfr_tanh(x.value, self.value, (<RealField>self._parent).rnd)
    3493         _sig_off       
     3473        if (<RealField>self._parent).__prec > 1000: _sig_off
    34943474        return x
    34953475
    34963476    def coth(self):
     
    35023482            sage: RealField(100)(2).coth()
    35033483            1.0373147207275480958778097648
    35043484        """
    3505         cdef RealNumber x
    3506         x = self._new()
    3507         _sig_on               
     3485        cdef RealNumber x = self._new()
     3486        if (<RealField>self._parent).__prec > 1000: _sig_on
    35083487        mpfr_coth(x.value, self.value, (<RealField>self._parent).rnd)
    3509         _sig_off       
     3488        if (<RealField>self._parent).__prec > 1000: _sig_off
    35103489        return x
    35113490
    35123491    def arccoth(self):
     
    35313510            sage: RealField(100)(2).cot()
    35323511            -0.45765755436028576375027741043
    35333512        """
    3534         cdef RealNumber x
    3535         x = self._new()
    3536         _sig_on               
     3513        cdef RealNumber x = self._new()
     3514        if (<RealField>self._parent).__prec > 1000: _sig_on
    35373515        mpfr_cot(x.value, self.value, (<RealField>self._parent).rnd)
    3538         _sig_off       
     3516        if (<RealField>self._parent).__prec > 1000: _sig_off
    35393517        return x
    35403518
    35413519    def csch(self):
     
    35473525            sage: RealField(100)(2).csch()
    35483526            0.27572056477178320775835148216
    35493527        """
    3550         cdef RealNumber x
    3551         x = self._new()
    3552         _sig_on               
     3528        cdef RealNumber x = self._new()
     3529        if (<RealField>self._parent).__prec > 1000: _sig_on
    35533530        mpfr_csch(x.value, self.value, (<RealField>self._parent).rnd)
    3554         _sig_off       
     3531        if (<RealField>self._parent).__prec > 1000: _sig_off
    35553532        return x
    35563533
    35573534    def arccsch(self):
     
    35763553            sage: RealField(100)(2).csc()
    35773554            1.0997501702946164667566973970
    35783555        """
    3579         cdef RealNumber x
    3580         x = self._new()
    3581         _sig_on               
     3556        cdef RealNumber x = self._new()
     3557        if (<RealField>self._parent).__prec > 1000: _sig_on
    35823558        mpfr_csc(x.value, self.value, (<RealField>self._parent).rnd)
    3583         _sig_off       
     3559        if (<RealField>self._parent).__prec > 1000: _sig_off
    35843560        return x
    35853561
    35863562    def sech(self):
     
    35923568            sage: RealField(100)(2).sech()
    35933569            0.26580222883407969212086273982
    35943570        """
    3595         cdef RealNumber x
    3596         x = self._new()
    3597         _sig_on               
     3571        cdef RealNumber x = self._new()
     3572        if (<RealField>self._parent).__prec > 1000: _sig_on
    35983573        mpfr_sech(x.value, self.value, (<RealField>self._parent).rnd)
    3599         _sig_off       
     3574        if (<RealField>self._parent).__prec > 1000: _sig_off
    36003575        return x
    36013576
    36023577    def arcsech(self):
     
    36213596            sage: RealField(100)(2).sec()
    36223597            -2.4029979617223809897546004014
    36233598        """
    3624         cdef RealNumber x
    3625         x = self._new()
    3626         _sig_on               
     3599        cdef RealNumber x = self._new()
     3600        if (<RealField>self._parent).__prec > 1000: _sig_on
    36273601        mpfr_sec(x.value, self.value, (<RealField>self._parent).rnd)
    3628         _sig_off       
     3602        if (<RealField>self._parent).__prec > 1000: _sig_off
    36293603        return x
    36303604
    36313605    def arccosh(self):
     
    36403614            sage: q == i.arccosh()
    36413615            True
    36423616        """
    3643         cdef RealNumber x
    3644         x = self._new()
    3645         _sig_on               
     3617        cdef RealNumber x = self._new()
     3618        if (<RealField>self._parent).__prec > 1000: _sig_on
    36463619        mpfr_acosh(x.value, self.value, (<RealField>self._parent).rnd)
    3647         _sig_off       
     3620        if (<RealField>self._parent).__prec > 1000: _sig_off
    36483621        return x
    36493622
    36503623    def arcsinh(self):
     
    36593632            sage: i.arcsinh() - q
    36603633            0.000000000000000
    36613634        """
    3662         cdef RealNumber x
    3663         x = self._new()
    3664         _sig_on               
     3635        cdef RealNumber x = self._new()
     3636        if (<RealField>self._parent).__prec > 1000: _sig_on
    36653637        mpfr_asinh(x.value, self.value, (<RealField>self._parent).rnd)
    3666         _sig_off       
     3638        if (<RealField>self._parent).__prec > 1000: _sig_off
    36673639        return x
    36683640
    36693641    def arctanh(self):
     
    36783650            sage: i.arctanh() - q
    36793651            0.000000000000000
    36803652        """
    3681         cdef RealNumber x
    3682         x = self._new()
    3683         _sig_on       
     3653        cdef RealNumber x = self._new()
     3654        if (<RealField>self._parent).__prec > 1000: _sig_on
    36843655        mpfr_atanh(x.value, self.value, (<RealField>self._parent).rnd)
    3685         _sig_off       
     3656        if (<RealField>self._parent).__prec > 1000: _sig_off
    36863657        return x
    36873658
    36883659    def agm(self, other):
     
    37693740            sage: R(6).erf()
    37703741            1.00000000000000
    37713742        """
    3772         cdef RealNumber x
    3773         x = self._new()
     3743        cdef RealNumber x = self._new()
    37743744        _sig_on
    37753745        mpfr_erf(x.value, self.value, (<RealField>self._parent).rnd)
    37763746        _sig_off
     
    37893759            sage: R(6).erfc()
    37903760            2.15197367124989e-17
    37913761        """
    3792         cdef RealNumber x
    3793         x = self._new()
     3762        cdef RealNumber x = self._new()
    37943763        _sig_on
    37953764        mpfr_erfc(x.value, self.value, (<RealField>self._parent).rnd)
    37963765        _sig_off
     
    38063775            sage: R(2).j0()
    38073776            0.223890779141236
    38083777        """
    3809         cdef RealNumber x
    3810         x = self._new()
     3778        cdef RealNumber x = self._new()
    38113779        _sig_on
    38123780        mpfr_j0(x.value, self.value, (<RealField>self._parent).rnd)
    38133781        _sig_off
     
    38233791            sage: R(2).j1()
    38243792            0.576724807756873
    38253793        """
    3826         cdef RealNumber x
    3827         x = self._new()
     3794        cdef RealNumber x = self._new()
    38283795        _sig_on
    38293796        mpfr_j1(x.value, self.value, (<RealField>self._parent).rnd)
    38303797        _sig_off
     
    38433810            sage: R(2).jn(-17)
    38443811            -2.65930780516787e-15
    38453812        """
    3846         cdef RealNumber x
    3847         x = self._new()
     3813        cdef RealNumber x = self._new()
    38483814        _sig_on
    38493815        mpfr_jn(x.value, n, self.value, (<RealField>self._parent).rnd)
    38503816        _sig_off
     
    38603826            sage: R(2).y0()
    38613827            0.510375672649745
    38623828        """
    3863         cdef RealNumber x
    3864         x = self._new()
     3829        cdef RealNumber x = self._new()
    38653830        _sig_on
    38663831        mpfr_y0(x.value, self.value, (<RealField>self._parent).rnd)
    38673832        _sig_off
     
    38773842            sage: R(2).y1()
    38783843            -0.107032431540938
    38793844        """
    3880         cdef RealNumber x
    3881         x = self._new()
     3845        cdef RealNumber x = self._new()
    38823846        _sig_on
    38833847        mpfr_y1(x.value, self.value, (<RealField>self._parent).rnd)
    38843848        _sig_off
     
    38973861            sage: R(2).yn(-17)
    38983862            7.09038821729481e12
    38993863        """
    3900         cdef RealNumber x
    3901         x = self._new()
     3864        cdef RealNumber x = self._new()
    39023865        _sig_on
    39033866        mpfr_yn(x.value, n, self.value, (<RealField>self._parent).rnd)
    39043867        _sig_off
     
    39163879            sage: R(1.5).gamma()
    39173880            0.886226925452758
    39183881        """
    3919         cdef RealNumber x
    3920         x = self._new()
    3921         _sig_on
     3882        cdef RealNumber x = self._new()
     3883        if (<RealField>self._parent).__prec > 1000: _sig_on
    39223884        mpfr_gamma(x.value, self.value, (<RealField>self._parent).rnd)
    3923         _sig_off
     3885        if (<RealField>self._parent).__prec > 1000: _sig_off
    39243886        return x
    39253887
    39263888    def lngamma(self):
     
    39513913            sage: R(1e10).log_gamma()
    39523914            2.20258509288811e11
    39533915        """
    3954         cdef RealNumber x
    3955         x = self._new()
    3956         _sig_on
     3916        cdef RealNumber x = self._new()
     3917        if (<RealField>self._parent).__prec > 1000: _sig_on
    39573918        mpfr_lngamma(x.value, self.value, (<RealField>self._parent).rnd)
    3958         _sig_off
     3919        if (<RealField>self._parent).__prec > 1000: _sig_off
    39593920        return x
    39603921
    39613922    def zeta(self):
     
    40033964            sage: R(z)
    40043965            1.64493406684823
    40053966        """
    4006         cdef RealNumber x
    4007         x = self._new()
     3967        cdef RealNumber x = self._new()
    40083968        _sig_on
    40093969        mpfr_zeta(x.value, self.value, (<RealField>self._parent).rnd)
    40103970        _sig_off