#9296: Add lattice computations for convex polyhedral cones
----------------------------------+-----------------------------------------
   Reporter:  vbraun              |       Owner:  mhampton  
       Type:  enhancement         |      Status:  needs_work
   Priority:  major               |   Milestone:  sage-4.5  
  Component:  geometry            |    Keywords:            
     Author:  Volker Braun        |    Upstream:  N/A       
   Reviewer:  Andrey Novoseltsev  |      Merged:            
Work_issues:                      |  
----------------------------------+-----------------------------------------

Comment(by novoselt):

 2) `is_trivial` it is then!

 All methods that go into `IntegralRayCollection` should make sense AND
 have the same implementation for cones and fans. Mostly things like
 ray/rays/ray_matrix/lattice.

 `is_simplicial` makes sense for cones and fans but has different code and
 definition, so such functions must be placed separately into cone and fan
 classes. I am pretty sure that I already put everything possible into ray
 collection class - I didn't plan it at all initially, but then got annoyed
 repeating ray accessing methods. Please return back the moved methods ;-)
 Things like containment checks are definitely different for cones and
 fans. Things like `lines` don't seem to make any sense for fans, so should
 not appear as valid methods.

 3) I would interpret `sigma.N()` more like `N(sigma)` rather than
 `N_sigma`. As I understand both notations are in use to denote
 complementary things and it does not add clarity.

 Perhaps a solution is to use names like `spanned_lattice`,
 `complementary_lattice` etc. (I just made up these names, so they probably
 deserve some further thinking/choosing), and make an option to add
 synonyms. E.g. there is some way in Sage to turn on creation of names
 automatically and to allow function-like syntax instead of methods. We can
 have a function like `beginner_mode` in toric modules (probably `fan` is
 the best place to put it, to allow simultaneous changes to cones and fans
 in the same place), which will do things like
 {{{
 ...
 ConvexRationalPolyhedralCone.N =
 ConvexRationalPolyhedralCone.spanned_lattice
 ...
 }}}
 What do you think about it? If the name sounds too patronizing, we can
 choose something like `use_M_and_N_toric_lattices`. I do not want to have
 it by default, but as an option it gives the system more flexibility and
 makes it better.

 > 4,5) If I remember correctly then the "sequence of generating lattice
 vectors" ends up being used more often than the projection to the quotient
 lattice. So you might want to wait a bit before overengineering this part.

 Absolutely, the only change in this direction that I would like to get in
 this patch are names more accurately representing what do they actually
 return. If they return a basis of something, then `something_basis` is
 more clear than just `something`. A *side effect* of this is that if we
 need to add `something` method later, it will be easy, but there is no
 necessity for this addition. I regret that `points` method of lattice
 polytopes returns a matrix, a list of points would be more convenient. If
 I had named this method `point_matrix` to start with, not only it would be
 more clear, but it would be trivial to add `points` method returning a
 list now.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/9296#comment:5>
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