Let me first create a number field `L`

, and use the Python variable `a`

as a generator:

```
sage: L = NumberField(x^3+x+1,'a')
sage: L.inject_variables()
Defining a
```

Then, you can get the list of embeddings of `L`

into the complex (floating-point) numbers as follows:

```
sage: L.embeddings(CC)
[
Ring morphism:
From: Number Field in a with defining polynomial x^3 + x + 1
To: Complex Field with 53 bits of precision
Defn: a |--> -0.682327803828019,
Ring morphism:
From: Number Field in a with defining polynomial x^3 + x + 1
To: Complex Field with 53 bits of precision
Defn: a |--> 0.341163901914010 - 1.16154139999725*I,
Ring morphism:
From: Number Field in a with defining polynomial x^3 + x + 1
To: Complex Field with 53 bits of precision
Defn: a |--> 0.341163901914010 + 1.16154139999725*I
]
```

So, to get the images of (say) `1+a`

for all those embeddings, you can do:

```
sage: [e(1+a) for e in L.embeddings(CC)]
[0.317672196171981,
1.34116390191401 - 1.16154139999725*I,
1.34116390191401 + 1.16154139999725*I]
```

If you want to have algebraic numbers instead of floating point appxoximations, you can replace `CC`

by `QQbar`

:

```
sage: [e(1+a) for e in L.embeddings(QQbar)]
[0.3176721961719807?,
1.341163901914010? - 1.161541399997252?*I,
1.341163901914010? + 1.161541399997252?*I]
```

If you want the images for the real embeddings (there is only one), you can do:

```
sage: [e(1+a) for e in L.embeddings(RR)]
[0.317672196171981]
sage: [e(1+a) for e in L.embeddings(AA)]
[0.3176721961719807?]
```

Now, if you pick an element of the unit element as follows:

```
sage: u = L.unit_group().random_element() ; u
u0*u1^6
```

You can get the images you wanted as follows:

```
sage: [log(abs(e(u))) for e in L.embeddings(QQbar)]
[-2.29347051504021, 1.14673525752011, 1.14673525752011]
```