### Navigation

- index
- modules |
- next |
- previous |
- Combinatorial Geometry »

# Library of Hyperplane Arrangements

A collection of useful or interesting hyperplane arrangements. See `sage.geometry.hyperplane_arrangement.arrangement` for details about how to construct your own hyperplane arrangements.

class `sage.geometry.hyperplane_arrangement.library.``HyperplaneArrangementLibrary`

  Bases: `object`

  The library of hyperplane arrangements.

  `Catalan`(n, K=Rational Field, names=None)

    Return the Catalan arrangement.

    INPUT:

    - `n` – integer
    - `K` – field (default: \(\QQ\))
    - `names` – tuple of strings or `None` (default); the variable names for the ambient space

    OUTPUT:

    The arrangement of \(3n(n-1)/2\) hyperplanes \(\{ x_i - x_j = -1,0,1 : 1 \leq i \leq j \leq n \}\).

    EXAMPLES:

        sage: hyperplane_arrangements.Catalan(5)
        Arrangement of 30 hyperplanes of dimension 5 and rank 4

    TESTS:

        sage: h = hyperplane_arrangements.Catalan(5)
        sage: h.characteristic_polynomial()
        x^5 - 30*x^4 + 335*x^3 - 1650*x^2 + 3024*x
        sage: h.characteristic_polynomial.clear_cache()  # long time
        sage: h.characteristic_polynomial()              # long time
        x^5 - 30*x^4 + 335*x^3 - 1650*x^2 + 3024*x

  `G_Shi`(G, K=Rational Field, names=None)

    Return the Shi hyperplane arrangement of a graph \(G\).

    INPUT:

    - `G` – graph
    - `K` – field (default: \(\QQ\))
    - `names` – tuple of strings or `None` (default); the variable names for the ambient space

    OUTPUT:

    The Shi hyperplane arrangement of the given graph `G`.

    EXAMPLES:

        sage: G = graphs.CompleteGraph(5)
        sage: hyperplane_arrangements.G_Shi(G)
        Arrangement of 20 hyperplanes of dimension 5 and rank 4
        sage: g = graphs.HouseGraph()
        sage: hyperplane_arrangements.G_Shi(g)
        Arrangement of 12 hyperplanes of dimension 5 and rank 4
        sage: a = hyperplane_arrangements.G_Shi(graphs.WheelGraph(4));  a
        Arrangement of 12 hyperplanes of dimension 4 and rank 3

  `G_semiorder`(G, K=Rational Field, names=None)

    Return the semiorder hyperplane arrangement of a graph.

    INPUT:

    - `G` – graph
    - `K` – field (default: \(\QQ\))
    - `names` – tuple of strings or `None` (default); the variable names for the ambient space

    OUTPUT:

    The semiorder hyperplane arrangement of a graph G is the arrangement \(\{ x_i - x_j = -1,1 \}\) where \(ij\) is an edge of `G`.

    EXAMPLES:

        sage: G = graphs.CompleteGraph(5)
        sage: hyperplane_arrangements.G_semiorder(G)
        Arrangement of 20 hyperplanes of dimension 5 and rank 4
        sage: g = graphs.HouseGraph()
        sage: hyperplane_arrangements.G_semiorder(g)
        Arrangement of 12 hyperplanes of dimension 5 and rank 4

  `Ish`(n, K=Rational Field, names=None)

    Return the Ish arrangement.

    INPUT:

    - `n` – integer
    - `K` – field (default:`QQ`)
    - `names` – tuple of strings or `None` (default); the variable names for the ambient space

    OUTPUT:

    The Ish arrangement, which is the set of \(n(n-1)\) hyperplanes.

    \[\{ x_i - x_j = 0 : 1 \leq i \leq j \leq n \} \cup \{ x_1 - x_j = i : 1 \leq i \leq j \leq n \}.\]

    EXAMPLES:

        sage: a = hyperplane_arrangements.Ish(3);  a
        Arrangement of 6 hyperplanes of dimension 3 and rank 2
        sage: a.characteristic_polynomial()
        x^3 - 6*x^2 + 9*x
        sage: b = hyperplane_arrangements.Shi(3)
        sage: b.characteristic_polynomial()
        x^3 - 6*x^2 + 9*x

    TESTS:

        sage: a.characteristic_polynomial.clear_cache()  # long time
        sage: a.characteristic_polynomial()              # long time
        x^3 - 6*x^2 + 9*x

    REFERENCES:

    [AR] | D. Armstrong, B. Rhoades “The Shi arrangement and the Ish arrangement” Arxiv 1009.1655

  `Shi`(n, K=Rational Field, names=None)

    Return the Shi arrangement.

    INPUT:

    - `n` – integer
    - `K` – field (default:`QQ`)
    - `names` – tuple of strings or `None` (default); the variable names for the ambient space

    OUTPUT:

    The Shi arrangement is the set of \(n(n-1)\) hyperplanes: \(\{ x_i - x_j = 0,1 : 1 \leq i \leq j \leq n \}\).

    EXAMPLES:

        sage: hyperplane_arrangements.Shi(4)
        Arrangement of 12 hyperplanes of dimension 4 and rank 3

    TESTS:

        sage: h = hyperplane_arrangements.Shi(4)
        sage: h.characteristic_polynomial()
        x^4 - 12*x^3 + 48*x^2 - 64*x
        sage: h.characteristic_polynomial.clear_cache()  # long time
        sage: h.characteristic_polynomial()              # long time
        x^4 - 12*x^3 + 48*x^2 - 64*x

  `bigraphical`(G, A=None, K=Rational Field, names=None)

    Return a bigraphical hyperplane arrangement.

    INPUT:

    - `G` – graph
    - `A` – list, matrix, dictionary (default: `None` gives semiorder), or the string ‘generic’
    - `K` – field (default: \(\QQ\))
    - `names` – tuple of strings or `None` (default); the variable names for the ambient space

    OUTPUT:

    The hyperplane arrangement with hyperplanes \(x_i - x_j = A[i,j]\) and \(x_j - x_i = A[j,i]\) for each edge \(v_i, v_j\) of `G`. The indices \(i,j\) are the indices of elements of `G.vertices()`.

    EXAMPLES:

        sage: G = graphs.CycleGraph(4)
        sage: G.edges()
        [(0, 1, None), (0, 3, None), (1, 2, None), (2, 3, None)]
        sage: G.edges(labels=False)
        [(0, 1), (0, 3), (1, 2), (2, 3)]
        sage: A = {0:{1:1, 3:2}, 1:{0:3, 2:0}, 2:{1:2, 3:1}, 3:{2:0, 0:2}}
        sage: HA = hyperplane_arrangements.bigraphical(G, A)
        sage: HA.n_regions()
        63
        sage: hyperplane_arrangements.bigraphical(G, 'generic').n_regions()
        65
        sage: hyperplane_arrangements.bigraphical(G).n_regions()
        59

    REFERENCES:

    [BigraphicalArrangements] | S. Hopkins, D. Perkinson. “Bigraphical Arrangements”. Arxiv 1212.4398

  `braid`(n, K=Rational Field, names=None)

    The braid arrangement.

    INPUT:

    - `n` – integer
    - `K` – field (default: `QQ`)
    - `names` – tuple of strings or `None` (default); the variable names for the ambient space

    OUTPUT:

    The hyperplane arrangement consisting of the \(n(n-1)/2\) hyperplanes \(\{ x_i - x_j = 0 : 1 \leq i \leq j \leq n \}\).

    EXAMPLES:

        sage: hyperplane_arrangements.braid(4)
        Arrangement of 6 hyperplanes of dimension 4 and rank 3

  `coordinate`(n, K=Rational Field, names=None)

    Return the coordinate hyperplane arrangement.

    INPUT:

    - `n` – integer
    - `K` – field (default: \(\QQ\))
    - `names` – tuple of strings or `None` (default); the variable names for the ambient space

    OUTPUT:

    The coordinate hyperplane arrangement, which is the central hyperplane arrangement consisting of the coordinate hyperplanes \(x_i = 0\).

    EXAMPLES:

        sage: hyperplane_arrangements.coordinate(5)
        Arrangement of 5 hyperplanes of dimension 5 and rank 5

  `graphical`(G, K=Rational Field, names=None)

    Return the graphical hyperplane arrangement of a graph `G`.

    INPUT:

    - `G` – graph
    - `K` – field (default: \(\QQ\))
    - `names` – tuple of strings or `None` (default); the variable names for the ambient space

    OUTPUT:

    The graphical hyperplane arrangement of a graph G, which is the arrangement \(\{ x_i - x_j = 0 \}\) for all edges \(ij\) of the graph `G`.

    EXAMPLES:

        sage: G = graphs.CompleteGraph(5)
        sage: hyperplane_arrangements.graphical(G)
        Arrangement of 10 hyperplanes of dimension 5 and rank 4
        sage: g = graphs.HouseGraph()
        sage: hyperplane_arrangements.graphical(g)
        Arrangement of 6 hyperplanes of dimension 5 and rank 4

    TESTS:

        sage: h = hyperplane_arrangements.graphical(g)
        sage: h.characteristic_polynomial()
        x^5 - 6*x^4 + 14*x^3 - 15*x^2 + 6*x
        sage: h.characteristic_polynomial.clear_cache()  # long time
        sage: h.characteristic_polynomial()              # long time
        x^5 - 6*x^4 + 14*x^3 - 15*x^2 + 6*x

  `linial`(n, K=Rational Field, names=None)

    Return the linial hyperplane arrangement.

    INPUT:

    - `n` – integer
    - `K` – field (default: \(\QQ\))
    - `names` – tuple of strings or `None` (default); the variable names for the ambient space

    OUTPUT:

    The linial hyperplane arrangement is the set of hyperplanes \(\{x_i - x_j = 1 : 1\leq i < j \leq n\}\).

    EXAMPLES:

        sage: a = hyperplane_arrangements.linial(4);  a
        Arrangement of 6 hyperplanes of dimension 4 and rank 3
        sage: a.characteristic_polynomial()
        x^4 - 6*x^3 + 15*x^2 - 14*x

    TESTS:

        sage: h = hyperplane_arrangements.linial(5)
        sage: h.characteristic_polynomial()
        x^5 - 10*x^4 + 45*x^3 - 100*x^2 + 90*x
        sage: h.characteristic_polynomial.clear_cache()  # long time
        sage: h.characteristic_polynomial()              # long time
        x^5 - 10*x^4 + 45*x^3 - 100*x^2 + 90*x

  `semiorder`(n, K=Rational Field, names=None)

    Return the semiorder arrangement.

    INPUT:

    - `n` – integer
    - `K` – field (default: \(\QQ\))
    - `names` – tuple of strings or `None` (default); the variable names for the ambient space

    OUTPUT:

    The semiorder arrangement, which is the set of \(n(n-1)\) hyperplanes \(\{ x_i - x_j = -1,1 : 1 \leq i \leq j \leq n\}\).

    EXAMPLES:

        sage: hyperplane_arrangements.semiorder(4)
        Arrangement of 12 hyperplanes of dimension 4 and rank 3

    TESTS:

        sage: h = hyperplane_arrangements.semiorder(5)
        sage: h.characteristic_polynomial()
        x^5 - 20*x^4 + 180*x^3 - 790*x^2 + 1380*x
        sage: h.characteristic_polynomial.clear_cache()  # long time
        sage: h.characteristic_polynomial()              # long time
        x^5 - 20*x^4 + 180*x^3 - 790*x^2 + 1380*x

`sage.geometry.hyperplane_arrangement.library.``make_parent`(base_ring, dimension, names=None)

  Construct the parent for the hyperplane arrangements.

  For internal use only.

  INPUT:

  - `base_ring` – a ring
  - `dimenison` – integer
  - `names` – `None` (default) or a list/tuple/iterable of strings

  OUTPUT:

  A new `HyperplaneArrangements` instance.

  EXAMPLES:

      sage: from sage.geometry.hyperplane_arrangement.library import make_parent
      sage: make_parent(QQ, 3)
      Hyperplane arrangements in 3-dimensional linear space over
      Rational Field with coordinates t0, t1, t2

### Navigation

- index
- modules |
- next |
- previous |
- Combinatorial Geometry »