#9296: Add lattice computations for convex polyhedral cones
---------------------------+------------------------------------------------
Reporter: vbraun | Owner: mhampton
Type: enhancement | Status: needs_work
Priority: major | Milestone: sage-4.4.4
Component: geometry | Keywords:
Author: | Upstream: N/A
Reviewer: | Merged:
Work_issues: |
---------------------------+------------------------------------------------
Changes (by novoselt):
* status: needs_review => needs_work
Comment:
Hi Volker,
I have a bit limited computer time this week, so I can be slow in
responses and will probably wait till next week for final positive
verdicts.
Comments on the current version:
1) `ray_basis` assumes that rays start from a linear independent set. I
would rather not make such an assumption since otherwise every cone should
sort its rays during construction (and it is not really even "sorting",
it is just selecting a certain subset and putting it in front) and cones
of fans will not be able to have the order of rays induced from the fan.
On the other hand, it is easy to get basis as something like
{{{
self.rays(self.ray_matrix().pivots())
}}}
(I didn't check the exact command, but it is possible to get indices of
pivot columns).
2) (very minor) Maybe `is_origin` is more intuitive than `is_trivial`? I
am fine with both names, just a thought. And probably this function should
be added to `IntegralRayCollection`, so that it is available for fans as
well. Such little functions were exactly the reason for creating that
class.
3) I am against functions and attributes with direct names of lattices. I
want to be able to have cones in any lattice and call any functions on
them. If lattice names are hard-coded into functions it makes it confusing
to call them for cones from the dual lattice. I agree that `N` and `M` are
standard, but in mirror symmetry it is also common to perform operations
on both sides and it would be better if it was possible to do it without
making a representative of each fan in the `N`-lattice.
4) It seems that some suffix like `_basis` would be nice for functions
that return not the actual lattice in the sense of a `ToricLattice`
object, but rather a sequence of elements that generate it.
5) Related to 4), but perhaps a note for the future todo list rather than
something to be implemented in this patch. Ideally, I think all these
methods should return `ToricLattice` objects with canonical coercion maps
between appropriate lattices. I don't know how easy it will be to
implement it, but it seems it should be more natural and convenient if it
works. As I understand, tests like belonging to a lattice will then work
not only for the actual lattice elements, but also for elements from those
related lattices directly. I can try to play with it in a week, once I am
home. By the way, if 4) is done now, then 5) can be done later without any
name conflicts by adding functions without prefix.
Let me know what you think!
Andrey
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/9296#comment:2>
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.