1 | initial version |

Looking in `src/sage/interfaces/singular.py`

as suggested by @tmonteil, I noticed in some of the docstrings that the way to get at a Singular object is `singular('obj_name')`

. Continuing the first example from the question, `rlist`

can be accessed with `singular('rlist')`

. Although it is still a Singular list, it can be iterated over, so something like the following will work:

```
sage: [[coord for coord in sol] for sol in singular('rlist')]
```

Again, the elements are still Singular objects, but one (perhaps rudimentary) way to convert them is

```
sage: [[sage_eval(coord._sage_repr()) for coord in sol] for sol in singular('rlist')]
```

2 | No.2 Revision |

Looking in `src/sage/interfaces/singular.py`

as suggested by @tmonteil, I noticed in some of the docstrings that the way to get at a Singular object is `singular('obj_name')`

. Continuing the first example from the question, `rlist`

can be accessed with `singular('rlist')`

. Although it is still a Singular list, it can be indexed into, iterated over, ~~so ~~etc. So something like the following will work:

```
sage: [[coord for coord in sol] for sol in singular('rlist')]
```

Again, the elements are still Singular objects, but one (perhaps rudimentary) way to convert them is

```
sage: [[sage_eval(coord._sage_repr()) for coord in sol] for sol in singular('rlist')]
```

Perhaps more robust than `sage_eval`

and `._sage_repr()`

would be using `.repart()`

and `.impart()`

(which are the Singular functions for real and imaginary part):

```
sage: [[ComplexNumber(coord.repart(), coord.impart()) for coord in sol] for sol in singular('rlist')]
```

Note that `ComplexNumber`

has an optional `min_prec`

argument to control the precision of the `ComplexField`

used to create the number, so that if the computations are performed at a high precision in Singular, the same precision can be ensured in Sage.

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.