#9972: Add toric lattice morphisms
-------------------------------------+--------------------------------------
   Reporter:  novoselt               |       Owner:  mhampton  
       Type:  enhancement            |      Status:  needs_work
   Priority:  major                  |   Milestone:  sage-4.6  
  Component:  geometry               |    Keywords:            
     Author:  Andrey Novoseltsev     |    Upstream:  N/A       
   Reviewer:  Volker Braun           |      Merged:            
Work_issues:  switch to FanMorphism  |  
-------------------------------------+--------------------------------------

Comment(by novoselt):

 Oops, sorry - I should have written that it was supposed to be the first.
 I unfolded the patches back so that it is clear who is writing/reviewing
 what and we don't need to seek the third person for the final review. I
 have updated my patch to fix the mistake that you caught. In your part I
 have removed `is_equivalent` from `Cone_of_fan` since this optimization is
 now performed by general cones. I have also removed extra parenthesis from
 `cone = fan().embed(x)`.

 I also have one more issue with your patch which got lost above, regarding
 new containment check: cones are equal if they have the same rays in the
 same order and equivalent if they define the same set of points. If the
 same cone happened to sit in different fans (or cones, for that matter)
 and so has several different objects representing it, it does not change
 anything. We can check if cones belong to the same ambient structure for
 code optimization, but the output should be the same. Also, to me it feels
 perfectly natural to ask e.g. whether a cone of some fan belongs to a
 subdivision of this fan. So I think that `cone in fan` should return
 `True` if `cone` is equivalent to any of the cones of `fan`. What is the
 ambient structure of `cone` and what is its ray order does not matter. If
 you really disagree with this, then I think that `cone in fan` should
 return `True` ONLY if `cone.ambient() is fan` is `True`. But I definitely
 prefer the first variant. Then one can write
 {{{
 sage: if cone in fan:
 sage:     cone = fan.embed(cone)
 sage:     Do something, say with cone.adjacent()
 sage: else:
 sage:     Deal with it somehow.
 }}}

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