Changeset 7682:6747edea46a8
- Timestamp:
- 11/20/07 02:42:48 (6 years ago)
- Branch:
- default
- Location:
- sage/rings
- Files:
-
- 4 edited
-
complex_double.pyx (modified) (2 diffs)
-
complex_number.pyx (modified) (1 diff)
-
integer.pyx (modified) (1 diff)
-
real_double.pyx (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
sage/rings/complex_double.pyx
r7284 r7682 727 727 """ 728 728 return RealDoubleElement(gsl_complex_abs(self._complex)) 729 730 def argument(self): 731 return RealDoubleElement(gsl_complex_arg(self._complex)) 729 732 730 733 def abs2(self): … … 848 851 return [z, -z] 849 852 return z 853 854 def nth_root(self, n, all=False): 855 """ 856 The n-th root function. 857 858 INPUT: 859 all -- bool (default: False); if True, return a list 860 of all n-th roots. 861 862 EXAMPLES: 863 sage: a = CDF(125) 864 sage: a.nth_root(3) 865 5.0 866 sage: a = CDF(10, 2) 867 sage: [r^5 for r in a.nth_root(5, all=True)] 868 [10.0 + 2.0*I, 10.0 + 2.0*I, 10.0 + 2.0*I, 10.0 + 2.0*I, 10.0 + 2.0*I] 869 sage: abs(sum(a.nth_root(111, all=True))) # random but close to zero 870 6.00659385991e-14 871 """ 872 if not self: 873 return [self] if all else self 874 arg = self.argument() / n 875 abs = self.abs().nth_root(n) 876 z = ComplexDoubleElement(abs * arg.cos(), abs*arg.sin()) 877 if all: 878 zeta = self._parent.zeta(n) 879 return [z * zeta**k for k in range(n)] 880 else: 881 return z 882 850 883 851 884 def is_square(self): -
sage/rings/complex_number.pyx
r5809 r7682 830 830 return [z, -z] 831 831 return z 832 833 def nth_root(self, n, all=False): 834 """ 835 The n-th root function. 836 837 INPUT: 838 all -- bool (default: False); if True, return a list 839 of all n-th roots. 840 841 EXAMPLES: 842 sage: a = CC(27) 843 sage: a.nth_root(3) 844 3.00000000000000 845 sage: a.nth_root(3, all=True) 846 [3.00000000000000, -1.50000000000000 + 2.59807621135332*I, -1.50000000000000 - 2.59807621135332*I] 847 sage: a = ComplexField(20)(2,1) 848 sage: [r^7 for r in a.nth_root(7, all=True)] 849 [2.0000 + 1.0000*I, 2.0000 + 1.0000*I, 2.0000 + 1.0000*I, 2.0000 + 1.0000*I, 2.0000 + 1.0000*I, 2.0000 + 1.0000*I, 2.0000 + 1.0000*I] 850 """ 851 if not self: 852 return [self] if all else self 853 arg = self.argument() / n 854 abs = self.abs().nth_root(n) 855 z = ComplexNumber(self._parent, abs * arg.cos(), abs*arg.sin()) 856 if all: 857 zeta = self._parent.zeta(n) 858 return [z * zeta**k for k in range(n)] 859 else: 860 return z 832 861 833 862 def is_square(self): -
sage/rings/integer.pyx
r7317 r7682 1471 1471 import sage.rings.integer_ring 1472 1472 return sage.rings.integer_ring.factor(self, algorithm=algorithm, proof=proof) 1473 1474 def prime_divisors(self, **kwds): 1475 return [p for p,e in self.factor(**kwds)] 1473 1476 1474 1477 def coprime_integers(self, m): -
sage/rings/real_double.pyx
r7319 r7682 891 891 raise ValueError, "negative number %s does not have a square root in the real field"%self 892 892 return self._complex_double_(sage.rings.complex_double.CDF).sqrt(all=all) 893 894 893 895 894 def is_square(self): 896 895 """
Note: See TracChangeset
for help on using the changeset viewer.
