@@ -86,6 +86,7 @@ ZZ = sage.rings.integer_ring.ZZ
86
86
Integer_sage = sage.rings.integer.Integer
87
87
88
88
from sage.rings.real_mpfi import RealInterval
89
+ from sage.rings.real_mpfr import RealField
89
90
90
91
from sage.rings.complex_mpfr import ComplexField
91
92
from sage.rings.cc import CC
@@ -4118,64 +4119,64 @@ cdef class NumberFieldElement(FieldElement):
4118
4119
return (self .global_height_non_arch(prec)+ self .global_height_arch(prec))/ self .number_field().absolute_degree()
4119
4120
4120
4121
def _logarithmic_embedding_helper (self , prec = 53 ):
4121
- """
4122
- Return the image of ``self`` under the logarithmic embedding.
4122
+ """
4123
+ Return the image of ``self`` under the logarithmic embedding.
4123
4124
4124
- The logarithmic embedding is defined as a map from the number field ``self`` to `\RR^n`.
4125
+ The logarithmic embedding is defined as a map from the number field ``self`` to `\RR^n`.
4125
4126
4126
- It is defined under Definition 4.9.6 in [Cohen1993]_.
4127
+ It is defined under Definition 4.9.6 in [Cohen1993]_.
4127
4128
4128
- INPUT:
4129
+ INPUT:
4129
4130
4130
- - ``prec`` -- desired floating point precision.
4131
+ - ``prec`` -- desired floating point precision.
4131
4132
4132
- OUTPUT:
4133
+ OUTPUT:
4133
4134
4134
- - a tuple of real numbers.
4135
+ - a tuple of real numbers.
4135
4136
4136
- EXAMPLES::
4137
+ EXAMPLES::
4137
4138
4138
- sage: CF.<a> = CyclotomicField(97)
4139
- sage: log_map = CF._logarithmic_embedding_helper()
4140
- sage: log_map(0)
4141
- (-1)
4142
- sage: log_map(7)
4143
- (1.94591014905531)
4139
+ sage: CF.<a> = CyclotomicField(97)
4140
+ sage: log_map = CF(0) ._logarithmic_embedding_helper()
4141
+ sage: log_map(0)
4142
+ (-1)
4143
+ sage: log_map(7)
4144
+ (1.94591014905531)
4144
4145
4145
- ::
4146
+ ::
4146
4147
4147
- sage: F.<a> = NumberField(x^3 + 5)
4148
- sage: K.<b> = F.extension(x^2 + 2)
4149
- sage: log_map = K._logarithmic_embedding_helper()
4150
- sage: log_map(0)
4151
- (-1, -1)
4152
- sage: log_map(7)
4153
- (1.94591014905531, 3.89182029811063)
4148
+ sage: F.<a> = NumberField(x^3 + 5)
4149
+ sage: K.<b> = F.extension(x^2 + 2)
4150
+ sage: log_map = K(0)._logarithmic_embedding_helper()
4151
+ sage: log_map(0)
4152
+ (-1, -1)
4153
+ sage: log_map(7)
4154
+ (1.94591014905531, 3.89182029811063)
4155
+ """
4156
+ def closure_map (x ):
4157
+ """
4158
+ The function closure of the logarithmic embedding.
4154
4159
"""
4155
- def closure_map (x ):
4156
- """
4157
- The function closure of the logarithmic embedding.
4158
- """
4159
- K = self .base_ring()
4160
- K_embeddings = K.places(prec)
4161
- r1, r2 = K.signature()
4162
- r = r1 + r2 - 1
4163
-
4164
- Reals = RealField(prec)
4165
-
4166
- if x == 0 :
4167
- return vector([- 1 for _ in range (r + 1 )])
4168
-
4169
- x_logs = []
4170
- for i in range (r1):
4171
- sigma = K_embeddings[i]
4172
- x_logs.append(Reals(abs (sigma(x))).log())
4173
- for i in range (r1, r + 1 ):
4174
- tau = K_embeddings[i]
4175
- x_logs.append(2 * Reals(abs (tau(x))).log())
4176
-
4177
- return vector(x_logs)
4178
- return closure_map
4160
+ K = self .base_ring()
4161
+ K_embeddings = K.places(prec)
4162
+ r1, r2 = K.signature()
4163
+ r = r1 + r2 - 1
4164
+
4165
+ Reals = RealField(prec)
4166
+
4167
+ if x == 0 :
4168
+ return vector([- 1 for _ in range (r + 1 )])
4169
+
4170
+ x_logs = []
4171
+ for i in range (r1):
4172
+ sigma = K_embeddings[i]
4173
+ x_logs.append(Reals(abs (sigma(x))).log())
4174
+ for i in range (r1, r + 1 ):
4175
+ tau = K_embeddings[i]
4176
+ x_logs.append(2 * Reals(abs (tau(x))).log())
4177
+
4178
+ return vector(x_logs)
4179
+ return closure_map
4179
4180
4180
4181
def numerator_ideal (self ):
4181
4182
"""
0 commit comments