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