#19405: Add lyapunov_rank() method for polyhedral cones
-------------------------------------+-------------------------------------
       Reporter:  mjo                |        Owner:
           Type:  enhancement        |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-6.10
      Component:  geometry           |   Resolution:
       Keywords:                     |    Merged in:
        Authors:  Michael Orlitzky   |    Reviewers:
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  u/mjo/ticket/19405                 |  3d81380c8457e49e2110eb04da8950c19bc0f899
   Dependencies:  #19368             |     Stopgaps:
-------------------------------------+-------------------------------------

Comment (by mjo):

 Replying to [comment:2 novoselt]:
 > `_restrict_to_subspace` sounds more appropriate and in principle can be
 of interest on its own, but after reading a bit of your presentation I see
 that you think of dual cones as living in the same space.

 It's safe to say that everything I know about toric geometry is from your
 docstrings. I read enough to make sure that we're actually talking about
 the same thing when we say "dual cone." I think the difference is that you
 construct the dual cone from the dual vector space whose elements then act
 on primal vectors via multiplication (function application). Then a
 rational cone is one that can be represented on an integer lattice?

 In optimization, I've only ever seen the dual cone defined in the primal
 space, but our definition starts in essentially the same way. Rather than
 a cone of row vectors in a dual space, we just think of the associated
 column vectors in the original space. That is, the cone of `v`s such that
 `f_v(w) >= 0` for all `w` in the cone (where the `f_v` live in the dual
 vector space).

 The out-of-place subspace argument is part of the reason why I made
 `_restrict_to_subspace` private. The other is that it's probably less
 useful than you think, since it only does what it's supposed to up to
 linear isomorphism. Unless you're studying something (like Lyapunov rank)
 that's invariant under linear isomorphism, the restriction just doesn't
 work.


 > I will look closer in a few day (remind me if I don't ;-)), but it is
 something worth thinking about: each cone `K` is coming with its
 associated space in Sage `K.lattice()` which is not an innter-product
 space, and `K.dual()` lives in a different space. It would be best if all
 methods and implementations were in agreement on this point.

 My use of the fact that `K.lattice().vector_space()` and
 `K.dual().lattice().vector_space()` both have column-vector bases is a bit
 unsanitary maybe. I guess the latter should be row vectors, and I'd have
 to convert them before taking their span in the primal space.
 Acknowledging that the primal/dual rays live in dual spaces isn't a
 problem as long as I can convert between the two.

 Anyway thanks for looking and I'll do what I can to clean it up.

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