#9439: hyperbolic geometry
---------------------------+------------------------------------------------
Reporter: vdelecroix | Owner: vdelecroix
Type: enhancement | Status: new
Priority: major | Milestone: sage-4.8
Component: geometry | Keywords: hyperbolic geometry, Poincare
disc, upper half plane
Work_issues: | Upstream: N/A
Reviewer: | Author: vdelecroix
Merged: | Dependencies:
---------------------------+------------------------------------------------
Changes (by johanbosman):
* milestone: => sage-4.8
Old description:
> Implementation of two conformal models of hyperbolic geometry (half
> plane, disc) and actions of their isometry groups.
>
> The actual file is almost complete for working with the hyperbolic plane
> as the following will plot a hyperbolic triangle
> {{{
> sage: HH
> Hyperbolic half plane
> sage: HH(0)
> Boundary point 0
> sage: p = HH.polygon([CC(0), CC(1), CC(2,2)])
> sage: p.plot(face_color='red').show(aspect_ratio=1)
> }}}
> There are more examples in the file.
>
> Depandancy:
>
> * #9076: plot arc of circles
New description:
Implementation of two conformal models of hyperbolic geometry (half plane,
disc) and actions of their isometry groups.
The actual file is almost complete for working with the hyperbolic plane
as the following will plot a hyperbolic triangle
{{{
sage: HH
Hyperbolic half plane
sage: HH(0)
Boundary point 0
sage: p = HH.polygon([CC(0), CC(1), CC(2,2)])
sage: p.plot(face_color='red').show(aspect_ratio=1)
}}}
There are more examples in the file.
--
Comment:
*ping* :)
Are you planning on finishing this? It would be very good to have an
upper half plane implementation.
There are a few things that need to be improved though. Accessing
attributes directly (e.g. with spam._value) is not good. Please use
accessor methods instead (i.e. a method named value() that returns
_value); this improves the separation of interface and implementation.
Near the real line, the hyperbolic distance becomes become HUGE compared
to the Euclidean distance. Representing a point as a complex number thus
leads to numeric instability. It is therefore better to implement a point
by a pair of a matrix ((a,b),(c,d)) and a complex number z (thus
representing (az+b)/(cz+d)).
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/9439#comment:3>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.