| 1 | initial version |
The breakage comes from importing SymPy's Integer.
Indeed, in Sage, the input 16 is preparsed as Integer(16).
Usually Integer means sage.rings.integer.Integer.
However after the line
from sympy import *
this is overridden and Integer now means sympy.core.numbers.Integer.
It seems the CyclotomicField constructor cannot cope with a SymPy Integer.
That should probably be fixed in Sage.
In the meantime, here are some possible workarounds. Each should work separately, no need to combine them.
a. Only import from sympy what you need, rather than *
b. After importing everything from SymPy as you did, restore Sage's Integer.
sage: reset('Integer')
c. Make sure to feed CyclotomicField an appropriate integer.
For instance, either a Python int or a Sage Integer, with one of the following:
sage: CyclotomicField(16r) # r for raw -> Python int
sage: CyclotomicField(int(16))
sage: CyclotomicField(ZZ(16))
sage: CyclotomicField(sage.rings.integer.Integer(16))
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.