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 sage-devel+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/sage-devel/16ea668c-b6df-45b2-87fd-d2d76a7d9c68n%40googlegroups.com.