#14789: Implement hyperplane arrangements
---------------------------------+------------------------------
Reporter: kcrisman | Owner: sage-combinat
Type: enhancement | Status: needs_review
Priority: major | Milestone: sage-5.11
Component: combinatorics | Resolution:
Keywords: | Merged in:
Authors: | Reviewers:
Report Upstream: N/A | Work issues:
Branch: | Dependencies:
Stopgaps: |
---------------------------------+------------------------------
Comment (by darij):
This is a wonderful addition to Sage. Just a couple comments (not a
review, not even close):
- There needs to be a way to call the empty hyperplane arrangement; this
should not happen:
{{{
sage: b = HyperplaneArrangement([])
---------------------------------------------------------------------------
IndexError Traceback (most recent call
last)
<ipython-input-5-df3005fcbc9c> in <module>()
----> 1 b = HyperplaneArrangement([])
/home/darij/sage-5.11.beta3/local/lib/python2.7/site-
packages/sage/geometry/hyperplane_arrangement.pyc in __init__(self, A, K,
check_for_duplicates)
1398 self._hyperplanes = [Hyperplane(h,K) for h in eqns]
1399 self._base_field = K
-> 1400 self._dim = len(eqns[0])-1 # we trust the user on this
point
1401 self._ambient_space = VectorSpace(K,self._dim)
1402
IndexError: list index out of range
sage:
}}}
- The reference [RS] is available online (
http://math.mit.edu/~rstan/arrangements/arr.html ), and you should also
correct its title (it's "An Introduction to Hyperplane Arrangements").
- "The default base field is QQ": when you write something like that in a
docstring, there is no reason not to put the QQ in double-backticks
(``QQ``).
- "A hyperplane arrangement is *essential* is the normals to its
hyperplane span " the "is" should be an "if".
- " Class for an affine space (a translation of a linear subspace). "
You want to say "affine subspace", not "affine space"!
- Not sure if this is a good thing:
{{{
sage: a = HyperplaneArrangement([[2,4,6],[1,0,1]])
sage: b = HyperplaneArrangement([[1,0,1],[2,4,6]])
sage: a == b
True
sage: a.sign_vector((2, -2))
[-1, 1]
sage: b.sign_vector((2, -2))
[1, -1]
}}}
This, of course, is hard to avert unless you either make equality much
more restrictive or use hyperplane arrangements that are lists, rather
than sets, of hyperplanes. The latter might in fact be more useful in the
long run -- e. g., what if I need to keep track of what happens to each
hyperplane when I am changing base field, and I cannot assume that the
hyperplanes keep their indices in the {{{.hyperplanes()}}} list because
some hyperplanes might collapse on base change? I assume restriction to a
hyperplane would lead to the same problem.
- Double "is" in "A *face* is is the".
- The [GZ] reference, like any other Transactions paper, is online:
http://www.ams.org/journals/tran/1983-280-01/S0002-9947-1983-0712251-1/
- In the definitions of the Catalan and braid arrangements (in their
respective docstrings), replace i \leq j by i < j.
--
Ticket URL: <http://trac.sagemath.org/ticket/14789#comment:17>
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/groups/opt_out.