# HG changeset patch
# User Craig Citro <craigcitro@gmail.com>
# Date 1275089380 25200
# Node ID 362315e467acf436c3c081efbf77e4cd7c57d617
# Parent 65e33f0777f16f38ae6d899e1de237e8dd98683d
Remove some extraneous explicit types.
diff -r 65e33f0777f1 -r 362315e467ac sage/libs/pari/gen.pyx
a
|
b
|
|
8382 | 8382 | if PyObject_TypeCheck(s, gen): |
8383 | 8383 | return s |
8384 | 8384 | elif PyObject_TypeCheck(s, Integer): |
8385 | | return self.new_gen_from_mpz_t(<mpz_t>(<void *>s + mpz_t_offset)) |
| 8385 | return self.new_gen_from_mpz_t(<void *>s + mpz_t_offset) |
8386 | 8386 | elif PyObject_HasAttrString(s, "_pari_"): |
8387 | 8387 | return s._pari_() |
8388 | 8388 | elif isinstance(s, (types.ListType, types.XRangeType, |
diff -r 65e33f0777f1 -r 362315e467ac sage/rings/complex_interval.pyx
a
|
b
|
|
95 | 95 | R = parent._real_field() |
96 | 96 | rr = R(real) |
97 | 97 | ii = R(imag) |
98 | | mpfi_set(self.__re, <mpfi_t> rr.value) |
99 | | mpfi_set(self.__im, <mpfi_t> ii.value) |
| 98 | mpfi_set(self.__re, rr.value) |
| 99 | mpfi_set(self.__im, ii.value) |
100 | 100 | except TypeError: |
101 | 101 | raise TypeError, "unable to coerce to a ComplexIntervalFieldElement" |
102 | 102 | |
… |
… |
|
246 | 246 | True |
247 | 247 | """ |
248 | 248 | cdef ComplexIntervalFieldElement a00 = self._new() |
249 | | mpfr_set(<mpfr_t> &a00.__re.left, <mpfr_t> &self.__re.left, GMP_RNDN) |
250 | | mpfi_mid(<mpfr_t> &a00.__re.right, self.__re) |
251 | | mpfr_set(<mpfr_t> &a00.__im.left, <mpfr_t> &self.__im.left, GMP_RNDN) |
252 | | mpfi_mid(<mpfr_t> &a00.__im.right, self.__im) |
| 249 | mpfr_set(&a00.__re.left, &self.__re.left, GMP_RNDN) |
| 250 | mpfi_mid(&a00.__re.right, self.__re) |
| 251 | mpfr_set(&a00.__im.left, &self.__im.left, GMP_RNDN) |
| 252 | mpfi_mid(&a00.__im.right, self.__im) |
253 | 253 | |
254 | 254 | cdef ComplexIntervalFieldElement a01 = self._new() |
255 | | mpfr_set(<mpfr_t> &a01.__re.left, <mpfr_t> &a00.__re.right, GMP_RNDN) |
256 | | mpfr_set(<mpfr_t> &a01.__re.right, <mpfr_t> &self.__re.right, GMP_RNDN) |
| 255 | mpfr_set(&a01.__re.left, &a00.__re.right, GMP_RNDN) |
| 256 | mpfr_set(&a01.__re.right, &self.__re.right, GMP_RNDN) |
257 | 257 | mpfi_set(a01.__im, a00.__im) |
258 | 258 | |
259 | 259 | cdef ComplexIntervalFieldElement a10 = self._new() |
260 | 260 | mpfi_set(a10.__re, a00.__re) |
261 | | mpfi_mid(<mpfr_t> &a10.__im.left, self.__im) |
262 | | mpfr_set(<mpfr_t> &a10.__im.right, <mpfr_t> &self.__im.right, GMP_RNDN) |
| 261 | mpfi_mid(&a10.__im.left, self.__im) |
| 262 | mpfr_set(&a10.__im.right, &self.__im.right, GMP_RNDN) |
263 | 263 | |
264 | 264 | cdef ComplexIntervalFieldElement a11 = self._new() |
265 | 265 | mpfi_set(a11.__re, a01.__re) |
… |
… |
|
469 | 469 | mpfi_sqr(t0, self.__re) |
470 | 470 | mpfi_sqr(t1, self.__im) |
471 | 471 | |
472 | | mpfi_add(<mpfi_t> x.value, t0, t1) |
| 472 | mpfi_add(x.value, t0, t1) |
473 | 473 | |
474 | 474 | mpfi_clear(t0) |
475 | 475 | mpfi_clear(t1) |
… |
… |
|
486 | 486 | mpfi_sqr(t0, self.__re) |
487 | 487 | mpfi_sqr(t1, self.__im) |
488 | 488 | |
489 | | mpfi_add(<mpfi_t> x.value, t0, t1) |
490 | | mpfi_sqrt(<mpfi_t> x.value, <mpfi_t> x.value) |
| 489 | mpfi_add(x.value, t0, t1) |
| 490 | mpfi_sqrt(x.value, x.value) |
491 | 491 | |
492 | 492 | mpfi_clear(t0) |
493 | 493 | mpfi_clear(t1) |
diff -r 65e33f0777f1 -r 362315e467ac sage/rings/complex_number.pyx
a
|
b
|
|
154 | 154 | R = parent._real_field() |
155 | 155 | rr = R(real) |
156 | 156 | ii = R(imag) |
157 | | mpfr_set(self.__re, <mpfr_t> rr.value, rnd) |
158 | | mpfr_set(self.__im, <mpfr_t> ii.value, rnd) |
| 157 | mpfr_set(self.__re, rr.value, rnd) |
| 158 | mpfr_set(self.__im, ii.value, rnd) |
159 | 159 | except TypeError: |
160 | 160 | raise TypeError, "unable to coerce to a ComplexNumber: %s" % type(real) |
161 | 161 | |
… |
… |
|
591 | 591 | mpfr_mul(t0, self.__re, self.__re, rnd) |
592 | 592 | mpfr_mul(t1, self.__im, self.__im, rnd) |
593 | 593 | |
594 | | mpfr_add(<mpfr_t> x.value, t0, t1, rnd) |
| 594 | mpfr_add(x.value, t0, t1, rnd) |
595 | 595 | |
596 | 596 | mpfr_clear(t0) |
597 | 597 | mpfr_clear(t1) |
… |
… |
|
608 | 608 | mpfr_mul(t0, self.__re, self.__re, rnd) |
609 | 609 | mpfr_mul(t1, self.__im, self.__im, rnd) |
610 | 610 | |
611 | | mpfr_add(<mpfr_t> x.value, t0, t1, rnd) |
612 | | mpfr_sqrt(<mpfr_t> x.value, <mpfr_t> x.value, rnd) |
| 611 | mpfr_add(x.value, t0, t1, rnd) |
| 612 | mpfr_sqrt(x.value, x.value, rnd) |
613 | 613 | |
614 | 614 | mpfr_clear(t0) |
615 | 615 | mpfr_clear(t1) |
… |
… |
|
759 | 759 | """ |
760 | 760 | cdef real_mpfr.RealNumber x |
761 | 761 | x = real_mpfr.RealNumber(self._parent._real_field(), None) |
762 | | mpfr_set(<mpfr_t> x.value, self.__re, rnd) |
| 762 | mpfr_set(x.value, self.__re, rnd) |
763 | 763 | return x |
764 | 764 | |
765 | 765 | real_part = real |
… |
… |
|
781 | 781 | """ |
782 | 782 | cdef real_mpfr.RealNumber x |
783 | 783 | x = real_mpfr.RealNumber(self._parent._real_field(), None) |
784 | | mpfr_set(<mpfr_t> x.value, self.__im, rnd) |
| 784 | mpfr_set(x.value, self.__im, rnd) |
785 | 785 | return x |
786 | 786 | |
787 | 787 | imag_part = imag |
… |
… |
|
950 | 950 | 1.4142135623730951 |
951 | 951 | """ |
952 | 952 | if mpfr_zero_p(self.__im): |
953 | | return mpfr_get_d(<mpfr_t> self.__re, rnd) |
| 953 | return mpfr_get_d(self.__re, rnd) |
954 | 954 | else: |
955 | 955 | raise TypeError, "Unable to convert %s to float; use abs() or real_part() as desired"%self |
956 | 956 | |
… |
… |
|
1697 | 1697 | """ |
1698 | 1698 | cdef real_mpfr.RealNumber x |
1699 | 1699 | x = real_mpfr.RealNumber(self._parent._real_field(), None) |
1700 | | mpfr_atan2(<mpfr_t> x.value, self.__im, self.__re, rnd) |
| 1700 | mpfr_atan2(x.value, self.__im, self.__re, rnd) |
1701 | 1701 | return x |
1702 | 1702 | |
1703 | 1703 | |
… |
… |
|
2003 | 2003 | rho = abs(self) |
2004 | 2004 | arg = self.argument() / n |
2005 | 2005 | mpfr_init2(r, self._prec) |
2006 | | mpfr_root(r, <mpfr_t> rho.value, n, rnd) |
| 2006 | mpfr_root(r, rho.value, n, rnd) |
2007 | 2007 | |
2008 | | mpfr_sin_cos(z.__im, z.__re, <mpfr_t> arg.value, rnd) |
| 2008 | mpfr_sin_cos(z.__im, z.__re, arg.value, rnd) |
2009 | 2009 | mpfr_mul(z.__re, z.__re, r, rnd) |
2010 | 2010 | mpfr_mul(z.__im, z.__im, r, rnd) |
2011 | 2011 | |
… |
… |
|
2020 | 2020 | for k in range(1, n): |
2021 | 2021 | z = self._new() |
2022 | 2022 | arg += theta |
2023 | | mpfr_sin_cos(z.__im, z.__re, <mpfr_t> arg.value, rnd) |
| 2023 | mpfr_sin_cos(z.__im, z.__re, arg.value, rnd) |
2024 | 2024 | mpfr_mul(z.__re, z.__re, r, rnd) |
2025 | 2025 | mpfr_mul(z.__im, z.__im, r, rnd) |
2026 | 2026 | zlist.append(z) |
diff -r 65e33f0777f1 -r 362315e467ac sage/rings/real_mpfi.pyx
a
|
b
|
|
986 | 986 | mpfi_set(self.value, _x.value) |
987 | 987 | elif PY_TYPE_CHECK(x, RealNumber): |
988 | 988 | rn = x |
989 | | mpfi_set_fr(self.value, <mpfr_t> rn.value) |
| 989 | mpfi_set_fr(self.value, rn.value) |
990 | 990 | elif PY_TYPE_CHECK(x, Rational): |
991 | 991 | rat = x |
992 | 992 | mpfi_set_q(self.value, <mpq_t> rat.value) |
… |
… |
|
1004 | 1004 | if PY_TYPE_CHECK(a, RealNumber) and PY_TYPE_CHECK(b, RealNumber): |
1005 | 1005 | rn = a |
1006 | 1006 | rn1 = b |
1007 | | mpfi_interv_fr(self.value, <mpfr_t> rn.value, <mpfr_t> rn1.value) |
| 1007 | mpfi_interv_fr(self.value, rn.value, rn1.value) |
1008 | 1008 | elif PY_TYPE_CHECK(a, RealDoubleElement) and PY_TYPE_CHECK(b, RealDoubleElement): |
1009 | 1009 | dx = a |
1010 | 1010 | dx1 = b |
… |
… |
|
1025 | 1025 | else: # generic fallback |
1026 | 1026 | rn = self._parent(a).lower() |
1027 | 1027 | rn1 = self._parent(b).upper() |
1028 | | mpfi_interv_fr(self.value, <mpfr_t> rn.value, <mpfr_t> rn1.value) |
| 1028 | mpfi_interv_fr(self.value, rn.value, rn1.value) |
1029 | 1029 | |
1030 | 1030 | elif isinstance(x, sage.rings.qqbar.AlgebraicReal): |
1031 | 1031 | d = x.interval(self._parent) |
… |
… |
|
1050 | 1050 | rn1 = self._parent._upper_field()(x) |
1051 | 1051 | except TypeError: |
1052 | 1052 | raise TypeError, "Unable to convert number to real interval." |
1053 | | mpfi_interv_fr(self.value, <mpfr_t> rn.value, <mpfr_t> rn1.value) |
| 1053 | mpfi_interv_fr(self.value, rn.value, rn1.value) |
1054 | 1054 | |
1055 | 1055 | def __reduce__(self): |
1056 | 1056 | """ |
… |
… |
|
1944 | 1944 | x = (<RealIntervalField_class>self._parent).__lower_field._new() |
1945 | 1945 | else: |
1946 | 1946 | x = (<RealField_class>(self._parent._real_field(rnd)))._new() |
1947 | | mpfi_get_left(<mpfr_t> x.value, self.value) |
| 1947 | mpfi_get_left(x.value, self.value) |
1948 | 1948 | return x |
1949 | 1949 | |
1950 | 1950 | def upper(self, rnd =None): |
… |
… |
|
1994 | 1994 | x = (<RealIntervalField_class>self._parent).__upper_field._new() |
1995 | 1995 | else: |
1996 | 1996 | x = ((<RealField_class>self._parent._real_field(rnd)))._new() |
1997 | | mpfi_get_right(<mpfr_t> x.value, self.value) |
| 1997 | mpfi_get_right(x.value, self.value) |
1998 | 1998 | return x |
1999 | 1999 | |
2000 | 2000 | def endpoints(self, rnd=None): |
… |
… |
|
2030 | 2030 | """ |
2031 | 2031 | cdef RealNumber x |
2032 | 2032 | x = (<RealIntervalField_class>self._parent).__middle_field._new() |
2033 | | mpfi_diam_abs(<mpfr_t> x.value, self.value) |
| 2033 | mpfi_diam_abs(x.value, self.value) |
2034 | 2034 | return x |
2035 | 2035 | |
2036 | 2036 | def relative_diameter(self): |
… |
… |
|
2045 | 2045 | """ |
2046 | 2046 | cdef RealNumber x |
2047 | 2047 | x = (<RealIntervalField_class>self._parent).__middle_field._new() |
2048 | | mpfi_diam_rel(<mpfr_t> x.value, self.value) |
| 2048 | mpfi_diam_rel(x.value, self.value) |
2049 | 2049 | return x |
2050 | 2050 | |
2051 | 2051 | def diameter(self): |
… |
… |
|
2076 | 2076 | """ |
2077 | 2077 | cdef RealNumber x |
2078 | 2078 | x = (<RealIntervalField_class>self._parent).__middle_field._new() |
2079 | | mpfi_diam(<mpfr_t> x.value, self.value) |
| 2079 | mpfi_diam(x.value, self.value) |
2080 | 2080 | return x |
2081 | 2081 | |
2082 | 2082 | def fp_rank_diameter(self): |
… |
… |
|
2135 | 2135 | """ |
2136 | 2136 | cdef RealNumber x |
2137 | 2137 | x = (<RealIntervalField_class>self._parent).__middle_field._new() |
2138 | | mpfi_mag(<mpfr_t> x.value, self.value) |
| 2138 | mpfi_mag(x.value, self.value) |
2139 | 2139 | return x |
2140 | 2140 | |
2141 | 2141 | def mignitude(self): |
… |
… |
|
2153 | 2153 | """ |
2154 | 2154 | cdef RealNumber x |
2155 | 2155 | x = (<RealIntervalField_class>self._parent).__middle_field._new() |
2156 | | mpfi_mig(<mpfr_t> x.value, self.value) |
| 2156 | mpfi_mig(x.value, self.value) |
2157 | 2157 | return x |
2158 | 2158 | |
2159 | 2159 | def center(self): |
… |
… |
|
2167 | 2167 | """ |
2168 | 2168 | cdef RealNumber x |
2169 | 2169 | x = (<RealIntervalField_class>self._parent).__middle_field._new() |
2170 | | mpfi_mid(<mpfr_t> x.value, self.value) |
| 2170 | mpfi_mid(x.value, self.value) |
2171 | 2171 | return x |
2172 | 2172 | |
2173 | 2173 | def bisection(self): |
… |
… |
|
2192 | 2192 | """ |
2193 | 2193 | cdef RealIntervalFieldElement left = self._new() |
2194 | 2194 | cdef RealIntervalFieldElement right = self._new() |
2195 | | mpfr_set(<mpfr_t> &left.value.left, <mpfr_t> &self.value.left, GMP_RNDN) |
2196 | | mpfi_mid(<mpfr_t> &left.value.right, self.value) |
2197 | | mpfi_interv_fr(right.value, <mpfr_t> &left.value.right, <mpfr_t> &self.value.right) |
| 2195 | mpfr_set(&left.value.left, &self.value.left, GMP_RNDN) |
| 2196 | mpfi_mid(&left.value.right, self.value) |
| 2197 | mpfi_interv_fr(right.value, &left.value.right, &self.value.right) |
2198 | 2198 | return left, right |
2199 | 2199 | |
2200 | 2200 | def alea(self): |
… |
… |
|
2209 | 2209 | """ |
2210 | 2210 | cdef RealNumber x |
2211 | 2211 | x = (<RealIntervalField_class>self._parent).__middle_field._new() |
2212 | | mpfi_alea(<mpfr_t> x.value, self.value) |
| 2212 | mpfi_alea(x.value, self.value) |
2213 | 2213 | return x |
2214 | 2214 | |
2215 | 2215 | # def integer_part(self): |
… |
… |
|
3036 | 3036 | return mpfi_is_inside(other_intv.value, self.value) |
3037 | 3037 | elif PY_TYPE_CHECK(other, RealNumber): |
3038 | 3038 | other_rn = other |
3039 | | return mpfi_is_inside_fr(<mpfr_t> other_rn.value, self.value) |
| 3039 | return mpfi_is_inside_fr(other_rn.value, self.value) |
3040 | 3040 | try: |
3041 | 3041 | other_intv = self._parent(other) |
3042 | 3042 | return mpfi_is_inside(other_intv.value, self.value) |
… |
… |
|
3141 | 3141 | elif PY_TYPE_CHECK(other, RealNumber): |
3142 | 3142 | other_rn = other |
3143 | 3143 | mpfi_set(x.value, self.value) |
3144 | | mpfi_put_fr(x.value, <mpfr_t> other_rn.value) |
| 3144 | mpfi_put_fr(x.value, other_rn.value) |
3145 | 3145 | else: |
3146 | 3146 | # Let type errors from _coerce_ propagate... |
3147 | 3147 | other_intv = self._parent(other) |