#13189: fan isomorphism check
--------------------------------------+-------------------------------------
       Reporter:  vbraun              |         Owner:  AlexGhitza        
           Type:  enhancement         |        Status:  needs_review      
       Priority:  major               |     Milestone:  sage-5.2          
      Component:  algebraic geometry  |    Resolution:                    
       Keywords:                      |   Work issues:                    
Report Upstream:  N/A                 |     Reviewers:  Andrey Novoseltsev
        Authors:  Volker Braun        |     Merged in:                    
   Dependencies:  #12544              |      Stopgaps:                    
--------------------------------------+-------------------------------------

Old description:

> This patch implements testing for isomorphism (equivalence up to
> `GL(n,ZZ)` rotation) of fans
> {{{
>   sage: m1 = matrix([(1, 0), (0, -5), (-3, 4)])
>   sage: m2 = matrix([(3, 0), (1, 0), (-2, 1)])
>   sage: m1.elementary_divisors() == m2.elementary_divisors() == [1,1,0]
>   True
>   sage: fan1 = Fan([Cone([m1*vector([23, 14]), m1*vector([   3,100])]),
>   ...               Cone([m1*vector([-1,-14]), m1*vector([-100, -5])])])
>   sage: fan2 = Fan([Cone([m2*vector([23, 14]), m2*vector([   3,100])]),
>   ...               Cone([m2*vector([-1,-14]), m2*vector([-100, -5])])])
>   sage: fan1.is_isomorphic(fan2)
>   True
>   sage: fan1.isomorphism(fan2)
>   Fan morphism defined by the matrix
>   [18  1 -5]
>   [ 4  0 -1]
>   [ 5  0 -1]
>   Domain fan: Rational polyhedral fan in 3-d lattice N
>   Codomain fan: Rational polyhedral fan in 3-d lattice N
> }}}
> This is implemented by first computing the isomorphisms of auxiliary
> labelled graphs, and then trying to lift those to actual fan morphisms.
>
> Apply:
>   * [[attachment:trac_13189_Hirzebruch_Jung_continued_fraction.patch]]
>   * [[attachment:trac_13189_virtual_rays.patch]]
>   * [[attachment:trac_13189_fan_isomorphism.patch]]
>   * [[attachment:trac_13189_cone_isomorphism.patch]]

New description:

 This patch implements testing for isomorphism (equivalence up to
 `GL(n,ZZ)` rotation) of fans
 {{{
   sage: m1 = matrix([(1, 0), (0, -5), (-3, 4)])
   sage: m2 = matrix([(3, 0), (1, 0), (-2, 1)])
   sage: m1.elementary_divisors() == m2.elementary_divisors() == [1,1,0]
   True
   sage: fan1 = Fan([Cone([m1*vector([23, 14]), m1*vector([   3,100])]),
   ...               Cone([m1*vector([-1,-14]), m1*vector([-100, -5])])])
   sage: fan2 = Fan([Cone([m2*vector([23, 14]), m2*vector([   3,100])]),
   ...               Cone([m2*vector([-1,-14]), m2*vector([-100, -5])])])
   sage: fan1.is_isomorphic(fan2)
   True
   sage: fan1.isomorphism(fan2)
   Fan morphism defined by the matrix
   [18  1 -5]
   [ 4  0 -1]
   [ 5  0 -1]
   Domain fan: Rational polyhedral fan in 3-d lattice N
   Codomain fan: Rational polyhedral fan in 3-d lattice N
 }}}
 This is implemented by first computing the isomorphisms of auxiliary
 labelled graphs, and then trying to lift those to actual fan morphisms.

 Apply:
   * [[attachment:trac_13189_Hirzebruch_Jung_continued_fraction.patch]]
   * [[attachment:trac_13189_virtual_rays.patch]]
   * [[attachment:trac_13189_fan_isomorphism.patch]]
   * [[attachment:trac_13189_cone_isomorphism.patch]]
   * [[attachment:trac_13189_reviewer.patch]]

--

Comment (by novoselt):

 Tests pass now. The first patch is OK modulo changes, going through
 others...

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