#19867: Add Motzkin decomposition for convex cones
-------------------------------------+-------------------------------------
       Reporter:  mjo                |        Owner:
           Type:  enhancement        |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-7.0
      Component:  geometry           |   Resolution:
       Keywords:                     |    Merged in:
        Authors:  Michael Orlitzky   |    Reviewers:  Andrey Novoseltsev
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  u/mjo/ticket/19867                 |  4e7391c09cbdde7dd9f6b027f08a0f68a14b1911
   Dependencies:  19831              |     Stopgaps:
-------------------------------------+-------------------------------------

Comment (by mjo):

 Replying to [comment:7 novoselt]:
 > Cones have been there for a while and we didn't have problems with
 decomposition ambiguity, so Volker's suggestion makes sense to me.

 Ok, done.

 > Also I've missed it before, but the components are NOT orthogonal -
 there is no such concept for rays in the same lattice.

 Ah, sorry, got carried away when I replaced "direct sum."

 > What do you actually need this orthogonality for anyway? Why not just
 pick generators which are not in L?

 Unfortunately they do need to be orthogonal -- that's what makes the
 decomposition useful, and is what people expect. A lot of results for
 strictly convex cones can be made to work in general by extending them to
 the decomposition. One place I use this is to show that a cone is closed.
 If its strictly convex component is closed, then the whole thing is,
 because you can take a convergent sequence and show that the components
 converge where they live. That doesn't work unless the components are
 orthogonal.

 But how to fix it... I could remove all mention of orthogonality? Then the
 docstring would say that you get a strictly convex cone and a linear
 subspace, but it wouldn't say that they're orthogonal. As an
 implementation detail, they would be, of course. One problem there is that
 I really like that test with the orthogonal projectors, but I could move
 that into my own personal library.

 I can fake orthogonality with `subspace_complement`. For example,

 {{{
 L_perp_gens = [ dir*l for dir in [1,-1]
                       for l in L.sublattice_complement().gens() ]
 L_perp = Cone(L_perp_gens, self.lattice(), check=False)
 }}}

 But the docs mention that the lifting is non-canonical so I don't think
 it's any better than coercing the rays of the dual.

 Or, I could just leave this function out? I need the projectors test, and
 it's a nice "look what I can do" function, but the function itself isn't
 critical to me. I could skip it entirely, and leave the function along
 with the orthogonal projectors test in my own library.

--
Ticket URL: <http://trac.sagemath.org/ticket/19867#comment:9>
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 https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to