Number field containing real/imaginary part of algebraic number
I have a number field N with an embedding into C (e.g., NumberField(x^3+3, 'z', 0.7+1.2j)). I would like the smallest number field N' that contains all Re(z) and Im(z) for z in N. I would also like a mapping from x in N to (Re(x), Im(x) in N'xN' - or at least know what Re(z) and Im(z) is in N' for the generator z of N.
What is a good way of doing this?
I was thinking along the lines of N.composite_fields(NumberField(N.defining_polynomial, 'z', embedding=ComplexField()(N.gen_embedding()).conjugate()),both_maps=True). But I ran into http://trac.sagemath.org/ticket/14164 with this occasionally. Is there a better way of doing it?