#9439: hyperbolic geometry
-------------------------------------+-------------------------------------
       Reporter:  vdelecroix         |        Owner:  vdelecroix
           Type:  enhancement        |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-6.3
      Component:  geometry           |   Resolution:
       Keywords:  hyperbolic         |    Merged in:
  geometry, Poincare disc, upper     |    Reviewers:  Johan Bosman
  half plane, Beltrami-Klein,        |  Work issues:
  hyperboloid model, sd35            |       Commit:
        Authors:  Vincent            |  fe22a753e12f7779c4ab70dd733a917915fa84f4
  Delecroix, Martin Raum, Greg Laun  |     Stopgaps:
Report Upstream:  N/A                |
         Branch:                     |
  public/ticket/9439                 |
   Dependencies:                     |
-------------------------------------+-------------------------------------

Comment (by glaun):

 I'm glad to see other people working on this ticket!  I tried to pull the
 updates and rebuild sage, but it won't build. It may be a few days before
 I have time to debug the build process and get back to work on this
 ticket.

 In response to your points, I'm fine with a restructure as long as we talk
 it through first.

 * Its design now uses abstract base classes for geodesics, isometries, and
 points.  In the current organization, the "database" of facts about the
 underlying space are in hyperbolic_model, divided by model.  The
 "database" of calculation methods are in hyperbolic_methods, of which only
 the methods in the upper half plane are implemented.  I think these should
 be separate because it allows someone to implement a model without ever
 having to see the details of how calculations are done. I suppose we could
 put the database somewhere else, like in a dictionary or database if
 that's wise.  I don't have strong opinions about that.  Is the
 organization unclear?  Let me know if you have specific ideas in mind, or
 even if you just want to discuss overall design philosophy.

 * I wasn't aware of {{{__classcall__}}} when I wrote it.  I was basically
 just going for doing a clean design.  It seems like {{{__classcall__}}}
 might be a modularity violation?  I'll look into it more.

 * It sounds like you're objecting to importing the interfaces into the
 global namespace.  I'm fine with getting rid of those imports.  We could
 do something like
 {{{
 UHP = HyperbolicPlane("upper half plane")
 UHP.point(I)
 }}}
 and then only import HyperbolicPlane.  Is that the sort of thing you had
 in mind?  Or maybe something like

 {{{
 p = HyperbolicPoint(I, "upper half plane") # Create point 0 + I.
 }}}

--
Ticket URL: <http://trac.sagemath.org/ticket/9439#comment:47>
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 unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to