#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.