Hi,

There is a bug in hyperbolic_polygon which happens quite rarely, but for
example

    l = [-1, 1, -0.0571909584179366 + 0.666666666666667*I]
    hyperbolic_polygon(l, model='PD')

results in an incorrectly drawn hyperbolic triangle. It seems to be a
subtle numerical issue; if the last element of l is replaced with
-0.0571909584179366 + 0.667*I everything looks fine.

Digging a bit further, there seems to be an underlying issue here:

    PD = HyperbolicPlane().PD()
    z0 = CC(-0.0571909584179366 + 0.666666666666667*I)
    z1 = CC(-1)
    PD.get_geodesic(z0, z1).ideal_endpoints()

yields the erroneous result

    [Boundary point in PD -9.52420782539595e-17 + 1.00000000000000*I,
     Boundary point in PD -0.800000000000000 + 0.600000000000000*I]

(the second endpoint should be -1). Because of this I am suspicious of
lines 1267 - 1269 in
src/sage/geometry/hyperbolic_space/hyperbolic_geodesic.py. There we have
the code

    # We could also have a vertical line with two interior points
    if x1 == x2:
        return [M.get_point(x1), M.get_point(infinity)]

Maybe the if statement should instead be something like

    if abs(x1 - x2) < EPSILON:

Best regards,

HÃ¥kan Granath

-- 
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 on the web visit 
https://groups.google.com/d/msgid/sage-devel/CAOnrL6LNHp%2BgnC8mgnWtLOqW0oTxH_kc2jwKezJ2sthuAZmFwQ%40mail.gmail.com.

Reply via email to