Skip to content
This repository was archived by the owner on Feb 1, 2023. It is now read-only.

Commit 0606dc7

Browse files
author
Release Manager
committed
Trac #31551: Incorrect conversion from ℚ[-i] to SR
This should return `-I`, not `I`: {{{ sage: K.<j> = QuadraticField(-1, embedding=CC(0,-1)) sage: SR(j) I }}} Works under Sage 9.2, so maybe related to #18036? URL: https://trac.sagemath.org/31551 Reported by: mmezzarobba Ticket author(s): Marc Mezzarobba Reviewer(s): Vincent Delecroix
2 parents 71123d8 + fddaa2c commit 0606dc7

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

src/sage/rings/number_field/number_field_element_quadratic.pyx

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2391,10 +2391,16 @@ cdef class NumberFieldElement_gaussian(NumberFieldElement_quadratic):
23912391
of symbolic expressions to make the behavior of ``a + I*b`` with rational
23922392
``a``, ``b`` closer to that when ``a``, ``b`` are expressions.
23932393
2394-
TESTS::
2394+
EXAMPLES::
23952395
23962396
sage: type(I)
23972397
<class 'sage.rings.number_field.number_field_element_quadratic.NumberFieldElement_gaussian'>
2398+
2399+
sage: mi = QuadraticField(-1, embedding=CC(0,-1)).gen()
2400+
sage: type(mi)
2401+
<class 'sage.rings.number_field.number_field_element_quadratic.NumberFieldElement_gaussian'>
2402+
sage: CC(mi)
2403+
-1.00000000000000*I
23982404
"""
23992405

24002406
def _symbolic_(self, SR):
@@ -2403,9 +2409,13 @@ cdef class NumberFieldElement_gaussian(NumberFieldElement_quadratic):
24032409
24042410
sage: SR(1 + 2*i)
24052411
2*I + 1
2412+
2413+
sage: K.<mi> = QuadraticField(-1, embedding=CC(0,-1))
2414+
sage: SR(1 + mi)
2415+
-I + 1
24062416
"""
24072417
from sage.symbolic.constants import I
2408-
return self[1]*I + self[0]
2418+
return self[1]*(I if self.standard_embedding else -I) + self[0]
24092419

24102420
cpdef real_part(self):
24112421
r"""
@@ -2432,8 +2442,15 @@ cdef class NumberFieldElement_gaussian(NumberFieldElement_quadratic):
24322442
2
24332443
sage: (1 + 2*I).imag().parent()
24342444
Rational Field
2445+
2446+
sage: K.<mi> = QuadraticField(-1, embedding=CC(0,-1))
2447+
sage: (1 - mi).imag()
2448+
1
24352449
"""
2436-
return self[1]
2450+
if self.standard_embedding:
2451+
return self[1]
2452+
else:
2453+
return -self[1]
24372454

24382455
imag = imag_part
24392456

0 commit comments

Comments
 (0)