Skip to content

Commit c55e716

Browse files
author
Release Manager
committed
gh-35757: Implementing the type B Ish arrangement. <!-- Please provide a concise, informative and self-explanatory title. --> <!-- Don't put issue numbers in the title. Put it in the Description below. --> <!-- For example, instead of "Fixes #12345", use "Add a new method to multiply two integers" --> We implement the type B Ish arrangement following a recent preprint by Tran and Tsujie arXiv: 2304.12022. ### 📚 Description <!-- Describe your changes here in detail. --> <!-- Why is this change required? What problem does it solve? --> <!-- If this PR resolves an open issue, please link to it here. For example "Fixes #12345". --> <!-- If your change requires a documentation PR, please link it appropriately. --> ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. It should be `[x]` not `[x ]`. --> - [x] The title is concise, informative, and self-explanatory. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on - #12345: short description why this is a dependency - #34567: ... --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> URL: #35757 Reported by: Travis Scrimshaw Reviewer(s): Frédéric Chapoton
2 parents 17033c2 + 6a1d149 commit c55e716

File tree

2 files changed

+83
-0
lines changed

2 files changed

+83
-0
lines changed

src/doc/en/reference/references/index.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6120,6 +6120,10 @@ REFERENCES:
61206120
.. [TOPCOM] \J. Rambau, TOPCOM
61216121
<http://www.rambau.wm.uni-bayreuth.de/TOPCOM/>.
61226122
6123+
.. [TT2023] Tan Nhat Tran and Shuhei Tsujie.
6124+
*A type B analog of Ish arrangement*.
6125+
Preprint, :arxiv:`2304.12022`. (2023)
6126+
61236127
.. [TTWL2009] Trebst, Troyer, Wang and Ludwig, A short introduction to
61246128
Fibonacci anyon models, :arxiv:`0902.3275`.
61256129

src/sage/geometry/hyperplane_arrangement/library.py

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,85 @@ def Ish(self, n, K=QQ, names=None):
420420
A.characteristic_polynomial.set_cache(charpoly)
421421
return A
422422

423+
def IshB(self, n, K=QQ, names=None):
424+
r"""
425+
Return the type B Ish arrangement.
426+
427+
INPUT:
428+
429+
- ``n`` -- integer
430+
- ``K`` -- field (default:``QQ``)
431+
- ``names`` -- tuple of strings or ``None`` (default); the
432+
variable names for the ambient space
433+
434+
OUTPUT:
435+
436+
The type `B` Ish arrangement, which is the set of `2n^2` hyperplanes
437+
438+
.. MATH::
439+
440+
\{ x_i \pm x_j = 0 : 1 \leq i < j \leq n \}
441+
\cup
442+
\{ x_i = a : 1 \leq i\leq n, \quad i - n \leq a \leq n - i + 1 \}.
443+
444+
EXAMPLES::
445+
446+
sage: a = hyperplane_arrangements.IshB(2)
447+
sage: a
448+
Arrangement of 8 hyperplanes of dimension 2 and rank 2
449+
sage: a.hyperplanes()
450+
(Hyperplane 0*t0 + t1 - 1,
451+
Hyperplane 0*t0 + t1 + 0,
452+
Hyperplane t0 - t1 + 0,
453+
Hyperplane t0 + 0*t1 - 2,
454+
Hyperplane t0 + 0*t1 - 1,
455+
Hyperplane t0 + 0*t1 + 0,
456+
Hyperplane t0 + 0*t1 + 1,
457+
Hyperplane t0 + t1 + 0)
458+
sage: a.cone().is_free()
459+
True
460+
461+
.. PLOT::
462+
:width: 500 px
463+
464+
a = hyperplane_arrangements.IshB(2)
465+
sphinx_plot(a.plot())
466+
467+
::
468+
469+
sage: a = hyperplane_arrangements.IshB(3); a
470+
Arrangement of 18 hyperplanes of dimension 3 and rank 3
471+
sage: a.characteristic_polynomial()
472+
x^3 - 18*x^2 + 108*x - 216
473+
sage: b = hyperplane_arrangements.Shi(['B', 3])
474+
sage: b.characteristic_polynomial()
475+
x^3 - 18*x^2 + 108*x - 216
476+
477+
TESTS::
478+
479+
sage: a.characteristic_polynomial.clear_cache()
480+
sage: a.characteristic_polynomial()
481+
x^3 - 18*x^2 + 108*x - 216
482+
483+
REFERENCES:
484+
485+
- [TT2023]_
486+
"""
487+
H = make_parent(K, n, names)
488+
x = H.gens()
489+
hyperplanes = []
490+
for i in range(n):
491+
for j in range(i+1, n):
492+
hyperplanes.append(x[i] - x[j])
493+
hyperplanes.append(x[i] + x[j])
494+
for a in range(i+1-n, n-i+1):
495+
hyperplanes.append(x[i] - a)
496+
A = H(*hyperplanes)
497+
x = polygen(QQ, 'x')
498+
charpoly = (x - 2*n) ** n
499+
A.characteristic_polynomial.set_cache(charpoly)
500+
return A
501+
423502
def linial(self, n, K=QQ, names=None):
424503
r"""
425504
Return the linial hyperplane arrangement.

0 commit comments

Comments
 (0)