It looks like a is an element of "Qbar". Elements there are tracked by
keeping track of a way to compute a polynomial it is a root of as well as a
complex "ball" that allows one to distinguish it from other roots of the
polynomial. Certain operations will force the actual computation of the
minimal polynomial. In the process one may discover information about the
number. For instance, one may find it is actually rational or that it is
real. Such info is then kept and may affect how the element prints. The
representation that you get the first time is consistent with the imaginary
part being 0. Computing the minimal polynomial then has the side effect of
discovering that the imaginary part really is 0 rather than "not
distinguished from 0" that you get the first time.
It looks like the system is working as specified.
On Monday, 14 April 2025 at 00:37:12 UTC-7 Georgi Guninski wrote:
> I think this is at least one bug on 10.5 on linux, attached is testcase
>
> F=Graph(SNIP) #90 vertices
> spe=F.spectrum()
> a=spe[64]
> print("(1):a=",a) #(1) -1.717980512878350? + 0.?e-60*I #XXX imaginary part
> print("(2):a=",a,"poly=",a.minpoly()) #(2): -1.717980512878350? poly=
> x^4 + 5*x^3 - 19*x - 16 #XXX imaginary part vanishes
> """
> 1. The spectrum must be real with no imaginary part
> 2. Why the imaginary part disappears after only print()
> """
>
--
You received this message because you are subscribed to the Google Groups
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/sage-devel/16ea668c-b6df-45b2-87fd-d2d76a7d9c68n%40googlegroups.com.