#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:
---------------------------+------------------------------------------------
Comment(by vdelecroix):
> Are you planning on finishing this? It would be very good to have an
upper half plane implementation.
Yes. But if you have time and motivation, go on. But there are problems
(see below)
> 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.
Can be done.
> 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)).
I agree on the fact that near the real line it is unstable but disagree on
the fact that we need a 5 dimensional object (an element of SL(2,R) and a
complex number) to record a 2 dimensional object (a point in the half
plane). The best option would be to store only the SL(2,R) matrix m such
that the point is the image by z of the point i. Two matrices give the
same point iff they are congruent modulo SO(2).
Problems
--------
1) The main problem with that project is about of action by matrices. It
would be natural that matrices act on the upper half plane. But there are
many instances
* element of ArithmeticSubgroup (SL(2,Z)) which is implemented
* element of groups SL(2,R) or GL(2,R) or ...
* a matrix with real coefficient
* ...
I had trouble with the coercion system in order to be able to use any of
the type above.
2) In the actual implementation, the geodesics that pass to infinity in
the half plane model have an arbitrary maximum height. I did not find a
good way to draw them depending on what is asked in the final .show(). In
the same veine, a circle with radius 1 very near the boundary should not
be drawn as it is less than one pixel...
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/9439#comment:4>
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.