#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.

Reply via email to