This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

Computing Arrangements of Hypersurfaces

Paul Breiding    Bernd Sturmfels and Kexin Wang
Abstract

We present a Julia package HypersurfaceRegions.jl for computing all connected components in the complement of an arrangement of real algebraic hypersurfaces in n\mathbb{R}^{n}.

1 Introduction

Arrangements of real hyperplanes are ubiquitous in combinatorics, algebra and geometry. Their regions (i.e. connected components) are convex polyhedra, either bounded or unbounded, and their numbers are invariants of the underlying matroid [16]. The number of bounded regions agrees with the Euler characteristic of the complex arrangement complement [6, 7], and also with the maximum likelihood degree (ML degree). The latter is the number of complex critical points of the associated models in statistics and physics [17].

Arrangements of nonlinear hypersurfaces are equally important, but they are studied much less. Polynomials of higher degree create features that are not seen when dealing with hyperplanes. The number of regions is no longer a combinatorial invariant, but it depends in a subtle way on the coefficients. Moreover, the regions are generally not contractible.

We present a practical software tool, called HypersurfaceRegions.jl and implemented in the programming language Julia [1], whose input consists of kk polynomials in nn variables:

f1,f2,,fk[x1,,xn].f_{1},f_{2},\ldots,f_{k}\,\in\,\mathbb{R}[x_{1},\ldots,x_{n}]. (1)

The output is a list of all regions CC of the nn-dimensional manifold

𝒰={un:f1(u)f2(u)fk(u) 0}.\mathcal{U}\,\,=\,\,\bigl{\{}\,u\in\mathbb{R}^{n}\,:\,f_{1}(u)\cdot f_{2}(u)\,\cdots\,f_{k}(u)\,\not=\,0\,\bigr{\}}. (2)

The list is grouped according to sign vectors σ{1,+1}k\sigma\in\{-1,+1\}^{k}, where σi\sigma_{i} is the sign of fif_{i} on CC. Unlike in the case of hyperplane arrangements, each sign vector σ\sigma typically corresponds to multiple regions. For each region CC we find the Euler characteristic via a Morse function.

Refer to caption
Figure 1: A skinny ellipse pierces two concentric spheres. This arrangement has 88 regions.
Example 1 (n=k=3n\!=\!k\!=\!3).

Figure 1 shows two concentric spheres that are pierced by an ellipse:

f1=x12+x22+x321,f2=x12+x22+x324,f3= 100x12+100x22+x329.f_{1}\,=\,x_{1}^{2}+x_{2}^{2}+x_{3}^{2}-1,\,\,f_{2}\,=\,x_{1}^{2}+x_{2}^{2}+x_{3}^{2}-4,\,\,f_{3}\,=\,100x_{1}^{2}+100x_{2}^{2}+x_{3}^{2}-9.

The threefold 𝒰\mathcal{U} has eight regions. Five are contractible, with Euler characteristic χ=1\chi=1. The central region has σ=(,,)\sigma=(-,-,-). The sign vectors (+,,)(+,-,-) and (+,+,)(+,+,-) each contribute two regions. Two bounded regions are solid tori, with χ=0\chi=0 and σ=(,,+),(+,,+)\sigma=(-,-,+),(+,-,+). The unique unbounded region, with σ=(+,+,+)\sigma=(+,+,+) and χ=2\chi=2, is homotopic to the 22-sphere.

Our software HypersurfaceRegions.jl also features heuristics for deciding whether a region is bounded or unbounded, and which of the regions are fused when the hyperplane at infinity is added. In our Section 4, titled How to Use the Software, we explain how this works.

Example 2 (n=2,k=21n=2,k=21).

In del Pezzo geometry [10, Section 3], it is known that removing the 2727 lines from a real cubic surface creates 130130 regions. We can confirm this by applying HypersurfaceRegions.jl to the plane curves in the blow-up construction of the surface. Fix six general points in convex position in 2\mathbb{R}^{2}. Let f1,,f15f_{1},\ldots,f_{15} be the lines spanned by pairs of points and f16,,f21f_{16},\ldots,f_{21} the ellipses spanned by five of the points. This arrangement has 145145 regions, all contractible, of which 115115 are bounded and 3030 are unbounded. Our software identifies these and fuses 1515 pairs of unbounded regions. It outputs the 130130 regions in 2\mathbb{R}\mathbb{P}^{2}.

The method we present is an adaptation of the algorithm by Cummings, Hauenstein, Hong and Smyth [8], which in turn is inspired by [11]. Their setting is more general in that they allow semialgebraic sets defined by both equations and inequalities. We restrict ourselves to arrangement complements, defined by inequations f10,,fk0f_{1}\not=0,\ldots,f_{k}\not=0. This enables us to offer tools in Julia [1] that are easy to use and widely applicable. Our implementation is based on the numerical algebraic geometry software HomotopyContinuation.jl [5] and on the software DifferentialEquations.jl [14] for solving differential equations.

This paper is organized as follows. In Section 2 we introduce a Morse function for our problem. This is a modified version of the log-likelihood function associated with f1,,fkf_{1},\ldots,f_{k}. Every region of 𝒰\mathcal{U} contains at least one critical point. We compute the critical points using HomotopyContinuation.jl . These points determine the Euler characteristic of each region.

In Section 3 we turn to the Mountain Pass Theorem [2, 12], which ensures that we obtain a connected graph in each region when tracking paths from index 11 critical points to index 0 critical points. This tracking procedure is realized in our software by solving an ODE using DifferentialEquations.jl. In short, our software is built on flows in Morse theory.

Section 4 explains how to run HypersurfaceRegions.jl. It is aimed at beginners with no prior experience with numerical software. We demonstrate that HypersurfaceRegions.jl can be used for a wide range of scenarios from the mathematical spectrum. In Section 5 we report on test runs of our software on generic instances, obtained by sampling random hypersurfaces and random spectrahedra. Our presentation emphasizes ease and simplicity.

2 Log-likelihood as a Morse function

The algorithm in [8] rests on Morse theory. We review some basics from the textbook [13]. Let \mathcal{M} be an nn-dimensional manifold. A smooth function g:g:\mathcal{M}\rightarrow\mathbb{R} is a Morse function if the Hessian matrix (2g/xixj)\bigl{(}\partial^{2}g/\partial x_{i}\partial x_{j}\bigr{)} is invertible at every critical point of gg. The number of positive eigenvalues of the Hessian matrix is the index of the critical point. Let gg be a Morse function which is exhaustive, i.e. the superlevel set {gc}={u:g(u)c}\{g\geq c\}=\{u\in\mathcal{M}:g(u)\geq c\} is compact for each cc\in\mathbb{R}. If an interval [a,b][a,b]\subset\mathbb{R} contains no critical value of gg then the superlevel sets {gc}\{g\geq c\} are diffeomorphic for c[a,b]c\in[a,b]. By contrast, suppose cc is a critical value of gg, corresponding to a unique critical point of index \ell. Then, for sufficiently small ϵ\epsilon, the superlevel set {gcϵ}\{g\geq c-\epsilon\} is diffeomorphic to {gc+ϵ}\{g\geq c+\epsilon\} with one \ell-handle of dimension nn attached. Since \ell-handles can be shrunk to \ell-cells, one arrives at the following result.

Theorem 3.

The manifold \mathcal{M} is homotopy equivalent to a CW-complex with exactly one \ell-cell for every critical point of index \ell. In particular, the Euler characteristic of \mathcal{M} equals

χ()==0n(1)μ.\chi(\mathcal{M})\,=\,\sum_{\ell=0}^{n}(-1)^{\ell}\mu_{\ell}. (3)

where μ\mu_{\ell} is the number of index \ell critical points of the exhaustive Morse function g:g:\mathcal{M}\rightarrow\mathbb{R}.

We shall apply Theorem 3 to the manifold 𝒰\mathcal{U} defined in (2). This requires an exhaustive Morse function. On each region of 𝒰\,\mathcal{U}, this role will be played by the rational function

g(x)=i=1k|fi(x)|siq(x)t.g(x)\,\,=\,\,\frac{\prod_{i=1}^{k}|f_{i}(x)|^{s_{i}}}{q(x)^{t}}. (4)

For the denominator q(x)q(x) we take a generic polynomial of degree 22 that is strictly positive on n\mathbb{R}^{n}. The exponents s1,,sk,ts_{1},\ldots,s_{k},t are arbitrary positive integers which satisfy the inequality

i=1ksidegree(fi)<  2t.\sum_{i=1}^{k}s_{i}\,{\rm degree}(f_{i})\,\,<\,\,2\,t. (5)
Proposition 4.

The function g(x)g(x) is an exhaustive Morse function. It is strictly positive on 𝒰\,\mathcal{U} and it is zero on each of the hypersurfaces {fi=0}\{f_{i}=0\}. It also vanishes at infinity in n\mathbb{R}^{n}.

The Morse function g(x)g(x) in (4) is called master function in the theory of arrangements [7] and likelihood function in algebraic statistics [17]. Its logarithm is the log-likelihood function

log(g(x))=i=1ksilog|fi(x)|tlog(q(x)).{\rm log}(g(x))\,\,=\,\,\sum_{i=1}^{k}s_{i}\cdot{\rm log}|f_{i}(x)|\,-\,t\cdot{\rm log}(q(x)). (6)

The critical points of g(x)g(x) are the solutions in n\mathbb{C}^{n} of the equation log(g(x))=0\nabla\,{\rm log}(g(x))=0. The generic choice of the quadric q(x)q(x) implies that all critical points have distinct critical values. The number of critical values is the Euler characteristic of the very affine complex variety

{un:f1(u)f2(u)fk(u)q(u) 0}.\bigl{\{}\,u\in\mathbb{C}^{n}\,:\,f_{1}(u)\cdot f_{2}(u)\,\cdots\,f_{k}(u)\cdot q(u)\,\not=\,0\,\bigr{\}}. (7)

The construction of g(x)g(x) ensures that each region of 𝒰\mathcal{U} contains at least one critical point. Our algorithm computes all real critical points, and it connects them via the Mountain Pass Theorem. This will be explained in Section 3. We now first return to our three ellipsoids.

Example 5.

Let f1,f2,f3f_{1},f_{2},f_{3} be as in Example 1, fix s1=s2=s3=1s_{1}=s_{2}=s_{3}=1 and t=4t=4, and define

q=(x1+2)2+(x23)2+(x33)2+(2x1+x2)2+4.q\,\,=\,\,(x_{1}+2)^{2}+(x_{2}-3)^{2}+(x_{3}-3)^{2}+(2x_{1}+x_{2})^{2}+4.

This quadric is positive on 3\mathbb{R}^{3}. Our Morse function for the complement of the three ellipses is

g=|f1f2f3|q4.g\,\,=\,\,\frac{|f_{1}f_{2}f_{3}|}{q^{4}}.

The log-likelihood function log(g)=log(f1)+log(f2)+log(f3)4log(q){\rm log}(g)={\rm log}(f_{1})+{\rm log}(f_{2})+{\rm log}(f_{3})-4\cdot{\rm log}(q) has 2929 complex critical points, so the threefold (7) has ML degree 2929. Among the critical points, 2121 are real. These serve as landmark points for the eight regions. For instance, let \mathcal{M} be the unbounded region. It contains ten critical points, and their indices are 0,0,1,1,1,1,2,2,2,20,0,1,1,1,1,2,2,2,2. In the notation of Theorem 3, we have μ0=2,μ1=4,μ2=4\mu_{0}=2,\mu_{1}=4,\mu_{2}=4, and hence χ()=μ0μ1+μ2=2\chi(\mathcal{M})=\mu_{0}-\mu_{1}+\mu_{2}=2.

The signed Euler characteristic of 𝒰\mathcal{U} is known as the maximum likelihood degree (ML degree) in algebraic statistics [6, 17]. This is the number of critical points we must compute. Explicitly, the logarithmic derivative of g(x)g(x) translates into the rational function equations

s1f1f1x1+\displaystyle\frac{s_{1}}{f_{1}}\frac{\partial f_{1}}{\partial x_{1}}\,+ +skfkfkx1+tqqx1=  0,\displaystyle\cdots+\frac{s_{k}}{f_{k}}\frac{\partial f_{k}}{\partial x_{1}}\,+\,\frac{t}{q}\frac{\partial q}{\partial x_{1}}\,\,=\,\,0,
\displaystyle\!\!\!\!\!\!\!\!\!\!\!\!\vdots\qquad\qquad\qquad\vdots\qquad\qquad\vdots
s1f1f1xn+\displaystyle\frac{s_{1}}{f_{1}}\frac{\partial f_{1}}{\partial x_{n}}\,+ +skfkfkxn+tqqxn=  0.\displaystyle\cdots+\frac{s_{k}}{f_{k}}\frac{\partial f_{k}}{\partial x_{n}}\,+\,\frac{t}{q}\frac{\partial q}{\partial x_{n}}\,\,=\,\,0.

The following a priori bound on the number of solutions was established in [6, Theorem 1].

Proposition 6.

Let d1,,dkd_{1},\ldots,d_{k} be the degrees of the polynomials f1,,fkf_{1},\ldots,f_{k}. Then the ML degree of 𝒰\,\mathcal{U} is bounded above by the coefficient of znz^{n} in the rational generating function

(1z)n(1zd1)(1zdk)(12z).\frac{(1-z)^{n}}{(1-zd_{1})\,\cdots\,(1-zd_{k})(1-2z)}. (8)

This bound is attained when the polynomials fif_{i} are generic relative to their degrees did_{i}.

Example 7.

The ML degree in Proposition 6 equals i=1kdi2+i<jdidj+1\sum_{i=1}^{k}d_{i}^{2}+\sum_{i<j}d_{i}d_{j}+1 for n=2n=2, and it equals ijldidjdlijdidj+1\sum_{i\leq j\leq l}d_{i}d_{j}d_{l}-\sum_{i\leq j}d_{i}d_{j}+1 for n=3n=3. See [6, Section 4] for some nice geometry.

Since every region of our manifold 𝒰\mathcal{U} contains at least one critical point, we conclude:

Corollary 8.

The number of regions of 𝒰\,\mathcal{U} is at most the ML degree in Proposition 6.

The bound in Corollary 8 is tight for linear polynomials. This fact, and many more results on ML degrees, will be proved in a forthcoming article by Berhard Reinke and Kexin Wang. We close this section by sketching a proof for hyperplanes in general position.

Suppose knk\geq n and let d1==dk=1d_{1}=\cdots=d_{k}=1. Then the generating function (8) becomes

1(1z)kn(12z).\frac{1}{(1-z)^{k-n}\cdot(1-2z)}.

We find that the coefficient of znz^{n} in the Taylor expansion of this rational function equals

1+k+(k2)++(kn).1+k+\binom{k}{2}+\cdots+\binom{k}{n}.

This agrees with the number of all regions in a general arrangement of kk hyperplanes in n\mathbb{R}^{n}. Thus, all complex critical points are real, and each critical point lies in its own region.

3 Mountain Passes and Path Tracking

The Mountain Pass Theorem guarantees that all critical points in a region will be connected. This theorem originates in the Calculus of Variations. We learned about its importance for numerical computations in real algebraic geometry from the work of Cummings et al. [8].

We fix the Morse function gg on 𝒰\mathcal{U} that is given in (4). Since the quadric qq is generic, the function gg has only finitely many critical points, and gg takes distinct values at these critical points. Given any starting point x0𝒰x_{0}\in\mathcal{U}, we will reach one of these critical points by numerical path tracking. This is done by solving the ODE that describes the gradient flow

x˙(t)=g(x)(t),x(0)=x0.\dot{x}(t)\,=\,\nabla g(x)(t),\qquad x(0)\,=\,x_{0}. (9)

If x0x_{0} is chosen at random then the gradient flow will reach a critical point of index 0. Loosely speaking, hill climbing in the steepest direction will probably lead us to a mountain peak.

Let p1,p2,,pd𝒰p_{1},p_{2},\ldots,p_{d}\in\mathcal{U} denote the real critical points of gg. Our aim is to build a graph with vertex set {p1,p2,,pd}\{p_{1},p_{2},\ldots,p_{d}\} whose connected components correspond to the regions of 𝒰\mathcal{U}. For each critical point pip_{i}, we compute the eigenvalues and eigenvectors of the Hessian HpiH_{p_{i}}. This is the symmetric n×nn\times n matrix of second derivatives of g(x)g(x) evaluated at x=pix=p_{i}.

Note that det(Hpi)0{\rm det}(H_{p_{i}})\not=0 because gg was constructed to be a Morse function. An eigenvector vv of HpiH_{p_{i}} is called unstable if the corresponding eigenvalue is positive. If this holds then

g(pi+ϵv)>g(pi)whenever |ϵ| is small.\quad g(p_{i}+\epsilon v)\,>\,g(p_{i})\qquad\hbox{whenever $\,|\,\epsilon\,|\,$ is small.}

If x0=pi+ϵvx_{0}=p_{i}+\epsilon v is the starting point in (9) then the ODE will lead us to a critical point pjp_{j} of gg that is different from pip_{i}. Whenever this happens, our graph acquires the edge pipjp_{i}\rightarrow p_{j}.

We now explain why this method connects all critical points in a fixed region. First of all, each pip_{i} is connected to some critical point of index 0. Suppose we start at a critical point pi1p_{i_{1}} with positive index. There is a path from pi1p_{i_{1}} that limits to some critical point pi2p_{i_{2}} with g(pi2)>g(pi1)g(p_{i_{2}})>g(p_{i_{1}}). If pi2p_{i_{2}} has positive index, then the solution path from pi2p_{i_{2}} limits to some critical point pi3p_{i_{3}} with g(pi3)>g(pi2)g(p_{i_{3}})>g(p_{i_{2}}). Since there are only finitely many critical points, the process must terminate and the last critical point in the sequence pi1,pi2,p_{i_{1}},p_{i_{2}},\ldots has index 0.

We are left to show that all index 0 critical points in the same region will be connected. To this end, we introduce one more tool from Morse theory. The stable manifold of pip_{i} is

M(pi)={pi}{x𝒰|g(x)0 and the ODE solution starting from x limits to pi}.M(p_{i})\,=\,\{p_{i}\}\,\cup\,\{x\in\mathcal{U}\,\,|\,\,\nabla\,g(x)\neq 0\text{ and the ODE solution starting from }x\text{ limits to }p_{i}\}.

The dimension of M(pi)M(p_{i}) is the number of stable eigenvectors of HpiH_{p_{i}}. The stable manifolds for critical points of index 0 have full dimension nn in 𝒰\mathcal{U}. So, for each region CC of 𝒰\mathcal{U}, we have

C=piC index 0M(pi)¯,C\,\,=\!\bigcup_{p_{i}\in C\text{ index 0}}\!\overline{M(p_{i})}, (10)

where the closure is taken in 𝒰\mathcal{U}. Consider any two critical points piαp_{i_{\alpha}} and piβp_{i_{\beta}} of index 0 in CC. Since CC is connected, (10) implies that there is a sequence of index 0 critical points pi1,,pisp_{i_{1}},\ldots,p_{i_{s}} such that the intersections M(piα)¯M(pi1)¯\overline{M(p_{i_{\alpha}})}\cap\overline{M(p_{i_{1}})} and M(pis)¯M(piβ)¯\overline{M(p_{i_{s}})}\cap\overline{M(p_{i_{\beta}})} are non-empty, and also M(pij)¯M(pij+1)¯\,\overline{M(p_{i_{j}})}\cap\overline{M(p_{i_{j+1}})}\, is non-empty for j=1,,s1j=1,\ldots,s-1. Corollary 10 below tells us that each of these intersections contains at least one critical point of index 11. Thus any pair of index 0 critical points in CC is connected through index 11 critical points. Therefore, the connectivity of the finite graph we are building for CC will be ensured by Corollary 10.

The Morse function g:Cg:C\rightarrow\mathbb{R} satisfies the Palais-Smale condition. This means that every sequence {xj}\{x_{j}\} in CC which satisfies limjg(xj)=α\,\lim_{j\rightarrow\infty}g(x_{j})=\alpha\in\mathbb{R}\, and limjg(xj)=0\,\lim_{j\rightarrow\infty}\nabla\,g(x_{j})=0\, has a convergent subsequence. The limit of such a convergent subsequence is a critical point in CC with critical value α\alpha. The Palais-Smale condition holds in our situation because gg is positive on CC, it tends to zero on the boundary, and g1([α1,α2])g^{-1}([\alpha_{1},\alpha_{2}]) is compact for 0<α1<α20<\alpha_{1}<\alpha_{2}.

A path between two points aa and bb in CC is a continuous function γ:[0,1]C\gamma:[0,1]\mapsto C with γ(0)=a\gamma(0)=a and γ(1)=b\gamma(1)=b. We write Γa,b\Gamma_{a,b} for the set of all such paths. A set SCS\subset C separates aa and bb if every path γΓa,b\gamma\in\Gamma_{a,b} contains some point in SS. We write g(γ)={g(γ(t)):t[0,1]}g(\gamma)=\{g(\gamma(t)):t\in[0,1]\}. The Palais-Smale condition for gg is a hypothesis for the next result, which is [12, Theorem 3].

Theorem 9.

(Mountain Pass Theorem) Fix a closed subset SCS\subset C which separates aa and bb and satisfies max(g(x):xS)<min(g(a),g(b))\,{\rm max}\bigl{(}g(x):x\in S\bigr{)}<{\rm min}\bigl{(}g(a),\,g(b)\bigr{)}. Then ω=sup(min(g(γ)):γΓa,b)\,\omega\,=\,{\rm sup}\bigl{(}{\rm min}(g(\gamma)):\gamma\in\Gamma_{a,b})\, is a critical value of gg, and its preimage g1(ω)g^{-1}(\omega) contains a unique critical point of index 11.

Corollary 10.

Let pip_{i} and pjp_{j} be index  0\,0 critical points of the Morse function gg on CC, and suppose that S=M(pi)¯M(pj)¯\,S=\overline{M(p_{i})}\cap\overline{M(p_{j})}\, is non-empty. Then S\,S contains a critical point of index 11.

Proof.

The set SS satisfies the hypotheses of Theorem 9 for a=pia=p_{i} and b=pjb=p_{j}. Let pp_{\ell} be the critical point which is promised by Theorem 9. The point pp_{\ell} necessarily lies in SS. ∎

We have shown that the regions CC of 𝒰\mathcal{U} can be identified by gradient ascent from index 11 critical points. Here we start in the two directions determined by the unique unstable eigenvector. The resulting graph on the index 0 critical points is guaranteed to be connected. We now summarize our approach. Algorithm 1 forms the basis of HypersurfaceRegions.jl.

Input: Polynomials f1,f2,,fkf_{1},f_{2},\ldots,f_{k} in [x1,,xn]\mathbb{R}[x_{1},\ldots,x_{n}].
1
Output: All sign patterns in {,+}k\{-,+\}^{k} that are realized by f1,,fkf_{1},\ldots,f_{k}, and each region with that sign pattern, along with its Euler characteristic.
2
3Calculate the critical points {p1,,pd}\{p_{1},\ldots,p_{d}\} of logg(x)\log g(x) and record the sign vectors
σ=(sign(f1(pi)),,sign(fk(pi))){1,+1}kfori=1,,d.\sigma=\bigl{(}{\rm sign}(f_{1}(p_{i})),\ldots,{\rm sign}(f_{k}(p_{i}))\bigr{)}\,\in\,\{-1,+1\}^{k}\,\,\,\,{\rm for}\,\,\,i=1,\ldots,d.
4Calculate the Hessian matrix HpiH_{p_{i}} of each critical point pip_{i}, verify that it is invertible, and compute its index and the unstable eigenvectors.
5foreach sign pattern σ\sigma do
6       Identify the set {pi1,,pij}\{p_{i_{1}},\ldots,p_{i_{j}}\} of all critical points with sign pattern σ\sigma.
7      Initialize a graph GσG_{\sigma} which has this set as its vertex set.
8      if  there is only one vertex pirp_{i_{r}} of index 0 in GσG_{\sigma} then
9            Add edges between all index >0>0 critical points and pirp_{i_{r}} to GσG_{\sigma}.
10      
11      else
12             For each index 11 critical point pip_{i_{\ell}}, identify the unstable eigenvector vv, and solve the ODE (9) starting from pi+ϵvp_{i_{\ell}}+\epsilon v and piϵvp_{i_{\ell}}-\epsilon v for small ϵ>0\epsilon>0.
13            Compute the limit points (one or two). Add edge(s) from pip_{i_{\ell}} to these in GσG_{\sigma}.
14            For each pip_{i_{\ell}} of index >1>1, pick an unstable eigenvector vv, solve (9) from pi+ϵvp_{i_{\ell}}\!+\!\epsilon v for small ϵ>0\epsilon>0, and add to GσG_{\sigma} the edge from pip_{i_{\ell}} to the limit point.
15      
16      Identify the connected components of the graph GσG_{\sigma}. Compute the Euler characteristic of the corresponding regions using the formula in (3).
17 end foreach
Algorithm 1 Computing the regions of an arrangement of kk hypersurfaces in n\mathbb{R}^{n}
Correctness proof of Algorithm 1.

Each region in 𝒰\mathcal{U} has constant sign pattern for the evaluation of (f1,,fk),(f_{1},\ldots,f_{k}), so it suffices to track the ODE paths between critical points with the same sign pattern. Tracking the ODE along the positive and negative unstable eigenvector directions of index 11 critical points connects all index 0 critical points in the same region.

A sign pattern σ\sigma is realizable if and only if it is attained by some critical point. We now fix σ\sigma, and we consider all critical points with sign pattern σ\sigma. For every index >1>1 critical point pj1p_{j_{1}}, the ODE path connects it with some critical point pj2p_{j_{2}} with g(pj2)>g(pj1)g(p_{j_{2}})>g(p_{j_{1}}). If again pj2p_{j_{2}} has index >1>1, then the ODE path from pj2p_{j_{2}} limits to some critical point pj3p_{j_{3}} with g(pj3)>g(pj2)g(p_{j_{3}})>g(p_{j_{2}}). Since there are only finitely many critical points, the process terminates, and pj1p_{j_{1}} is connected to some index 0 or 11 critical point via a sequence of paths. Therefore, the connected components of the graph GσG_{\sigma} correspond exactly to the regions in 𝒰\mathcal{U} with sign pattern σ\sigma. The statement about the Euler characteristic follows from Theorem 3. ∎

Frequently one is interested in the regions of an arrangement in projective space n\mathbb{R}\mathbb{P}^{n}. Algorithm 2 addresses this point. To begin with, we take the same input as before, namely f1,f2,,fk[x1,,xn]f_{1},f_{2},\ldots,f_{k}\in\mathbb{R}[x_{1},\ldots,x_{n}]. We further assume that Algorithm 1 has already been run.

Input: All data that were used and computed in Algorithm 1.
1
Output: A list of all regions in projective space n\mathbb{R}\mathbb{P}^{n}, grouped by realizable sign pattern pairs in {,+}k\{-,+\}^{k}.
2
3Homogenize f1,,fk[x1,,xn]f_{1},\ldots,f_{k}\in\mathbb{R}[x_{1},\ldots,x_{n}] to f1(x0,x1,,xn),,fk(x0,x1,,xn)f_{1}^{\prime}(x_{0},x_{1},\ldots,x_{n}),\ldots,f_{k}^{\prime}(x_{0},x_{1},\ldots,x_{n}).
4Compute the regions of 𝒰={un1:f1(0,1,u)fk(0,1,u)0}\,\mathcal{U}_{\infty}=\bigl{\{}\,u\in\mathbb{R}^{n-1}:\,f_{1}^{\prime}(0,1,u)\,\cdots\,f_{k}^{\prime}(0,1,u)\neq 0\bigr{\}} and record the list {q1,,qd}\{q_{1},\ldots,q_{d^{\prime}}\} of representatives from each region.
5foreach qiq_{i} do
6       Find the largest absolute value among all zeros of the polynomials fj(t,tqi)f_{j}(t,tq_{i}) for i=1,,di=1,\ldots,d and j=1,,kj=1,\ldots,k. Fix a real number λ\lambda larger than that value.
7      Solve the ODE (9) with starting points λ(1,qi)\lambda(1,q_{i}) and λ(1,qi)-\lambda(1,q_{i}). Record the limiting critical points. The regions of these points are connected in n\mathbb{R}\mathbb{P}^{n}.
8 end foreach
9
The regions not visited in the previous step are either bounded or undecided.
Algorithm 2 regions of a projective arrangement of kk hypersurfaces in n\mathbb{R}\mathbb{P}^{n}
Correctness proof of Algorithm 2.

All unbounded regions of 𝒰\mathcal{U} intersect the hyperplane at infinity, denoted {x0=0}\{x_{0}=0\}. If two of them are connected in n\mathbb{R}\mathbb{P}^{n}, then their intersections with {x0=0}\{x_{0}=0\} share a region of 𝒰\mathcal{U}_{\infty}. We sample points qiq_{i} from each region of 𝒰\mathcal{U}_{\infty}. The choice of λ\lambda guarantees that λ(1,qi)\lambda(1,q_{i}) and λ(1,qi)-\lambda(1,q_{i}) lie in unbounded regions of n\mathbb{R}^{n} which are adjacent to the region of qiq_{i} at infinity. In particular, λ(1,qi)\lambda(1,q_{i}) and λ(1,qi)-\lambda(1,q_{i}) lie in the same projective region, and this region contains the unbounded affine regions that are identified by the ODE (9). One unbounded region can get matched multiple times in this process. Hence, even three or more regions in n\mathbb{R}^{n} can get fused to the same region in n\mathbb{R}\mathbb{P}^{n}. ∎

In our implementation of Algorithm 2 we discard critical points that are close to the hypersurface n1\𝒰\mathbb{R}^{n-1}\backslash\mathcal{U}_{\infty}. These points cause numerical problems when solving the corresponding ODE. Hence, that part of our software is based on a heuristic.

We now explain the distinction between bounded and undecided, alluded to in Step 7. It is a feature of numerical computations that tangencies and singularities are hard to detect.

Example 11 (n=2,k=1n=2,k=1).

Fix a real number ϵ\epsilon and consider the plane curves given by

fϵ(x,y)=y2(x1)(x2+ϵ)andgϵ(x,y)=y2+ϵx2x.f_{\epsilon}(x,y)\,=\,y^{2}-(x-1)(x^{2}+\epsilon)\qquad{\rm and}\qquad g_{\epsilon}(x,y)\,=\,y^{2}+\epsilon x^{2}-x.

Each curve is viewed as an arrangement in 2\mathbb{R}^{2} with k=1k=1. The arrangements {fϵ}\{f_{\epsilon}\} and {gϵ}\{g_{\epsilon}\} have two regions for ϵ0\epsilon\geq 0 and three regions for ϵ<0\epsilon<0. Note the topology changes when we pass from ϵ>0\epsilon>0 to ϵ=0\epsilon=0. The cubic f0f_{0} acquires an isolated point, and the conic g0g_{0} becomes tangent to the line at infinity. Both regions of {g0}\{g_{0}\} are unbounded, but only one of them is recognized as unbounded by Algorithm 2. The interior of the parabola remains undecided.

We identify bounded regions as follows. We fix a small parameter δ>0\delta>0. A region in Step 7 is declared bounded if it is contained in 1/δ<x1<1/δ-1/\delta<x_{1}<1/\delta. In practice, we compute critical points of our Morse function on the hyperplanes x1=1/δx_{1}=1/\delta and x1=1/δx_{1}=-1/\delta. We process these critical points similar to what is done in Algorithm 2. Namely, for each critical point qq on the hyperplane x1=1/δx_{1}=1/\delta, we find the largest value among all zeros of the polynomials fj(t,tq)f_{j}(t,tq) for j=1,,kj=1,\ldots,k that are smaller than 1/δ1/\delta. Fix a real number λ\lambda larger than that value, but smaller than 1/δ1/\delta. We then solve the ODE (9) with starting points λ(1,q)\lambda\cdot(1,q) and record the limiting critical points. We proceed similarly for the other hyperplane x1=1/δx_{1}=-1/\delta.

If a region in n\mathbb{R}^{n} is not visited during this process, then it does not intersect either hyperplane. If its critical points satisfy 1/δ<x1<1/δ-1/\delta<x_{1}<1/\delta, then it is bounded. If a region is not bounded or unbounded, then it is declared undecided. Thus, undecided regions are close to being tangent to the hyperplane at infinity, where “close” refers to the tolerance δ\delta.

4 How to Use the Software

Our software is easy to use, even for beginners. We here offer a step-by-step introduction. For a complete overview over our implementation we refer to the online documentation at

https://juliaalgebra.github.io/HypersurfaceRegions.jl/.

The first step is to download the programming language Julia. One navigates to the website https://julialang.org/downloads/ for the latest version. After it is downloaded and installed, we start Julia and enter the package manager by pressing the ] button. Once in the package manager, type add HypersurfaceRegions and hit enter. This installs HypersurfaceRegions.jl. One leaves the package manager by pressing the back space button. To load our software into the current Julia session, type the following command:

using HypersurfaceRegions

Now, we are ready to use the implementation. Let’s compute our first arrangement!!

Refer to caption
Figure 2: A hyperboloid and two paraboloids. The paraboloids intersect in a circle that spans a plane. This arrangement of four surfaces has 1212 regions in 3\mathbb{R}^{3}. Four are contractible.

Being ambitious, we start with an example in 3\mathbb{R}^{3}. Consider the four surfaces in Figure 2. The yellow plane is defined by z=0z=0. The three quadrics are invariant under rotation around the zz-axis. The two paraboloids are defined by z=x2+y21z=x^{2}+y^{2}-1 and z=x2y2+1z=-x^{2}-y^{2}+1. The hyperboloid is defined by x2+y232z2=14x^{2}+y^{2}-\frac{3}{2}z^{2}=\frac{1}{4}. We input this arrangement into our software:

@var x y z
f = [z, x^2 + y^2 - 1 + z, x^2 + y^2 - 1 - z, x^2 + y^2 - 1/4 - 3/2z^2]
regions(f)

The output for this input is shown on the left in Figure 3. We see that 𝒰\mathcal{U} has 1212 regions, and each of them is uniquely identified by its sign pattern σ{,+}4\sigma\in\{-,+\}^{4}. Six regions lie outside the hyperboloid, which means that σ4=+\sigma_{4}=+. Each of them is homotopy equivalent to a circle, so χ=0\chi=0. The other six regions lie inside the hyperboloid, which means σ4=\sigma_{4}=-.

Two of the regions inside the hyperboloid are unbounded and also circular (χ=0\chi=0). Finally, there are two bounded regions and two regions tangent to the hyperplane at infinity. They are all contractible (χ=1\chi=1). We compute this information by setting a flag as follows:

regions(f; bounded_check = true)

The output of HypersurfaceRegions.jl for this input is shown on the right in Figure 3. This also reminds us that the number of real critical points depends on q(x)q(x), which is random.

Refer to caption
Refer to caption
Figure 3: The output of HypersurfaceRegions.jl for the arrangement shown in Figure 2.

One application of our method is the study of discriminantal arrangments. Such arrangements arise whenever one is interested in the topology of real varieties that depend on parameters. The one-dimensional case of this is known as Real Root Classification, where one expresses the number of real roots of a zero-dimensional system as a function of parameters.

To use the current version of HypersurfaceRegions.jl in this context, it is assumed that the discriminant is known and that it breaks up into smaller factors. Here is an example.

Example 12 (Polynomial of degree 88).

Consider the following polynomial in one variable tt:

f(t)=t8+xt7+(x+y)t6+t5+(x+y)t4+(y+1)t3+t2+(x+y)t.f(t)\,\,=\,\,t^{8}\,+\,x\cdot t^{7}\,+\,(x+y)\cdot t^{6}\,+\,t^{5}\,+\,(x+y)\cdot t^{4}\,+\,(y+1)\cdot t^{3}\,+\,t^{2}\,+\,(x+y)\cdot t.

The coefficients depend linearly on two parameters xx and yy. The discriminant of f(t)f(t) is a polynomial of degree 1414 in xx and yy. This discriminant factors into four irreducible factors. Two of these have multiplicity two. We input the four factors into our software as follows.

@var x y
f = [x + y,
23x^6 + 60x^5*y + 50x^4*y^2 + 16x^3*y^3 + 3x^2*y^4 - 78x^5
- 336x^4*y - 478x^3*y^2 - 284x^2*y^3 - 76x*y^4 - 12y^5 - 87x^4
- 144x^3*y + 54x^2*y^2 + 180x*y^3 + 68y^4 + 28x^3 + 24x^2*y
- 58x*y^2 - 56y^3 - 87x^2 - 300x*y - 208y^2 - 78x - 72y + 23,
x + 3y + 1,
5x^2 + 4x*y + y^2 - 6x - 4y + 5]
regions(f)
Refer to caption
Figure 4: Output for the discriminantal arrangement in Example 12.

The output is shown in Figure 4. Eight of the 1616 sign patterns are realizable. The parameter plane is divided into 1212 regions. For instance, σ=(+,,+,+)\sigma=(+,-,+,+) contributes two regions, one contractible and one with two holes (χ=1\chi=-1). The latter parametrizes polynomials with only two real roots. One sample point in that region is (x,y)=(1,5)(x,y)=(-1,5).

You are now invited to run the following code and to match its output with Figure 1:

@var x y z
f = [x^2 + y^2 + z^2 - 1, x^2 + y^2 + z^2 - 4, 100*x^2 + 100*y^2 + z^2 - 9]
R = regions(f, bounded_check = true)

A range of additional features is available in HypersurfaceRegions.jl. For instance, one finds the critical points in the ii-th region of the output by running the following command:

Ri = regions(R)[i]
critical_points(Ri)

One can also locate the region to which a given point (e.g. the origin) belongs, as follows:

p = [0, 0, 0]
membership(R, p)

We next discuss a few implementation details. We use monodromy [9], implemented in HomotopyContinuation.jl [5], for computing the critical points of g(x)g(x). The ODE solver from DifferentialEquations.jl [14] is used for the Morse flows (9) between critical points.

To find critical points, we solve the rational function equations log(g(x))=0\nabla\,{\rm log}(g(x))=0 in (4). These are nn equations in nn variables x1,,xnx_{1},\ldots,x_{n} and k+1k+1 parameters u=(s1,,sk,t)u=(s_{1},\ldots,s_{k},t). For the monodromy, we need a start pair (x0,u0)(x_{0},u_{0}) such that x0x_{0} is a solution for log(g(x))=0\nabla\,{\rm log}(g(x))=0 with parameters u0u_{0}. Since log(g(x))\nabla\,{\rm log}(g(x)) is linear in uu, we can use linear algebra to get such a start pair. Indeed, we can sample a random point x0x_{0} and compute u0u_{0} by solving linear equations. However, this works only if k+1>nk+1>n, and if log(g(x0))\nabla\,{\rm log}(g(x_{0})) has full rank. To avoid these issues, we use the following trick. If k+1nk+1\leq n, we define new auxiliary parameters v=(v1,,vnk)v=(v_{1},\ldots,v_{n-k}). Using monodromy, we solve the system log(g(x))(Au+Bv)=0\nabla\,{\rm log}(g(x))-(Au+Bv)=0, where An×(k+1)A\in\mathbb{C}^{n\times(k+1)} and Bn×(nk)B\in\mathbb{C}^{n\times(n-k)} are random matrices. Afterwards, we track the homotopy log(g(x))λ(Au+Bv)=0\nabla\,{\rm log}(g(x))-\lambda\cdot(Au+Bv)=0 from λ=1\lambda=1 to λ=0\lambda=0 using the solutions we have just computed. The parameter continuation theorem [15, 4] asserts that this approach works.

We modified the default options in HomotopyContinuation.jl for the monodromy loops. In HypersurfaceRegions.jl, a computation finishes if the last 1010 new monodromy loops have not provided any new solutions. The number 1010 is a conservative parameter here. Its purpose is to increase the probability of finding all critical points. The tolerance parameter δ\delta for bounded regions, as described in the end of Section 3, is set to the default value δ=105\delta=10^{-5}.

5 Experiments

This final section is dedicated to systematic experiments with our software. We experimented by running HypersurfaceRegions.jl on random instances, drawn from two classes:

  1. 1.

    arrangements defined by random polynomials;

  2. 2.

    arrangements defined by random spectrahedra.

The first class is self-explanatory. To create (1), we choose fif_{i} at random from some probability distribution on the space of inhomogeneous polynomials of degree dd in nn variables.

The second class requires an explanation. We fix positive integers nn and mm, and we draw n+1n+1 samples A0,A1,,AnA_{0},A_{1},\ldots,A_{n} from the (m+12)\binom{m+1}{2}-dimensional space of symmetric m×mm\times m matrices. We consider the arrangement defined by the k=2m1k=2^{m}-1 principal minors of the matrix

A(x)=A0+x1A1++xnAn.A(x)\,\,=\,\,A_{0}\,+\,x_{1}A_{1}\,+\,\cdots\,+\,x_{n}A_{n}. (11)

The distinguished region where all kk principal minors are positive is the spectrahedron.

The stratification of symmetric matrices by signs of principal minors was studied by Boege, Selover and Zubkov in [3]. We explore random low-dimensional slices of the Boege-Selover-Zubkov stratification. How many regions get created, and what is their topology?

Example 13 (n=m=3n\!=\!m\!=\!3).

A prominent spectrahedron is the elliptope, which is given by

A(x,y,z)=[1xyx1zyz1].A(x,y,z)\,\,=\,\,\begin{bmatrix}1&x&y\\ x&1&z\\ y&z&1\end{bmatrix}.

The 2×22\times 2 minors of this matrix give the six facet equations of the 33-dimensional cube [1,1]3[-1,1]^{3}. Our arrangement lives in 3\mathbb{R}^{3}, and it consists of these six planes plus the cubic surface

det(A)=  2xyzx2y2z2+1.{\rm det}(A)\,\,=\,\,2xyz-x^{2}-y^{2}-z^{2}+1. (12)

For an illustration see Figure 5. Only four of the six facets are shown for better visibility.

Refer to caption
Figure 5: Arrangement given by the elliptope and the facet planes of the surrounding cube.

We run HypersurfaceRegions.jl on this k=7k=7 instance. The arrangement has 4343 regions. All have Euler characteristic 11. The six facet planes of the cube divide 3\mathbb{R}^{3} into 27=1+8+12+627=1\!+\!8\!+\!12\!+\!6 regions. One is bounded (the cube itself) and 2626 are unbounded cones. The surface (12) divides the cube into 55 regions, and it divides four of the cones into 44 unbounded regions, for a total of 27+4+12=4327\!+\!4\!+\!12=43 regions. The projective arrangement has 3939 regions.

We now describe our experiments with arrangements of generic hypersurfaces. We run HypersurfaceRegions.jl on kk polynomials in nn variables of degree d=2d=2 and d=3d=3, where the coefficients are drawn independently from the standard Gaussian. Each experiment is carried out NN times, where NN is inverse proportional to the running time for each instance.

Our findings are presented in Table 1 for d=2d=2 and in Table 2 for d=3d=3. For each row we fix the parameters nn and kk. The time is the average running time per instance. This is measured in seconds. The fourth column concerns the total number of regions. We report the minimum number and the maximum number across all instances. The fifth column similarly reports the range for the number of realizable sign vectors σ\sigma. The sixth column gives the maximal number of regions per fixed sign pattern. And, finally, in the last column we report the minimum and maximum observed for the Euler characteristics χ\chi of the regions.

nn kk time min-max #reg min-max #σ\#\sigma max #\#reg/σ/\sigma min-max χ\chi
33 88 15.515.5 46,32546,325 30,19630,196 1111 5,2-5,2
33 99 28.928.9 72,46272,462 41,31941,319 77 2,2-2,2
33 1010 68.168.1 108,612108,612 83,43783,437 88 3,1-3,1
44 44 15.415.4 9,389,38 8,168,16 77 6,6-6,6
44 55 32.632.6 19,8719,87 15,3215,32 77 7,3-7,3
44 66 72.372.3 47,19247,192 32,6432,64 99 7,2-7,2
55 55 142.9142.9 34,6734,67 24,3224,32 88 8,4-8,4
Table 1: Random affine arrangements defined by kk quadrics in n\mathbb{R}^{n}.

Let us discuss the first row in Table 1. The code runs 15.515.5 seconds, and it identifies ρ\rho distinct regions in 3\mathbb{R}^{3}, where 46ρ32546\leq\rho\leq 325. The number of realizable sign patterns is at most 196196. This is less than the number 2k=28=2562^{k}=2^{8}=256 of all sign patterns. There were up to 1111 regions per sign pattern. The Euler characteristic of any region was between 5-5 and 22.

nn kk time min-max #reg min-max #σ\#\sigma max #\#reg/σ/\sigma min-max χ\chi
33 55 25.025.0 34,13534,135 27,3227,32 88 2,2-2,2
33 66 59.559.5 67,18667,186 52,6452,64 77 2,2-2,2
33 77 107.5107.5 123,280123,280 87,12687,126 77 2,2-2,2
44 44 127.4127.4 19,4719,47 16,1616,16 66 4,3-4,3
44 55 348.5348.5 46,11946,119 32,3232,32 88 4,3-4,3
55 33 290.9290.9 8,118,11 8,88,8 22 7,4-7,4
Table 2: Random affine arrangements defined by kk cubics in n\mathbb{R}^{n}.

Table 2 presents analogous results for cubics in n\mathbb{R}^{n} where n=3,4,5n=3,4,5. The second-last row concerns quintuples of cubics in 4\mathbb{R}^{4}. It takes less than six minutes to identify all regions, of which there are up to 119119. We observed a narrow range {4,,3}\{-4,\ldots,3\} of Euler characteristics.

Generic instances have no tangencies to the hyperplane at infinity. To experiment with that issue, we can try kk paraboloids in n\mathbb{R}^{n}. Each paraboloid contributes one undecided region touching the hyperplane at infinity. Here is an instance of k=4k\!=\!4 paraboloids for n=3n\!=\!3:

@var x y z
f = [3 + x + 3*y - z + (1 + 2*x + 4*y - 4*z)^2 + (2 + 3*x + 2*y + 3*z)^2,
3 + x + 3*z + (3 - 3*x - 2*z)^2 + (3 + 3*x + 3*y + 4*z)^2,
2 - 2*x - 2*y - 3*z + (2 - x + 4*z)^2 + (2 + 3*x + y + 2*z)^2,
1 - 3*x + 3*y - 3*z + (1 - 2*y + 2*z)^2 + (2 + x + 4*y)^2 ]
regions(f, bounded_check = true)

The output in Figure 6 consists of six regions, each with a unique sign pattern. Notice that the label “undecided” does not mean we claim this region touches the hyperplane at infinity. It means that our algorithm could not decide whether this region is bounded or unbounded.

Refer to caption
Figure 6: Output of HypersurfaceRegions.jl for four paraboloids in 3\mathbb{R}^{3}.

We now turn to random spectrahedra. We sampled symmetric m×mm\times m matrices A0,,AnA_{0},\ldots,A_{n} where the entries are independent standard Gaussians. The principal minors of the matrix A(x)A(x) define an arrangement of k=2m1k=2^{m}-1 hypersurfaces in the affine space n\mathbb{R}^{n}. We ran HypersurfaceRegions.jl on this input. Our results are summarized in Table 3. For each row we fix the parameters nn and mm. The columns have the same meaning as before. For instance, the fifth column reports the range for the number of realizable sign vectors σ\sigma.

nn mm time min-max #reg min-max #σ\#\sigma max #\#reg/σ/\sigma min-max χ\chi
22 22 3.33.3 4,84,8 4,64,6 33    1,1\,\,\,1,1
22 33 4.44.4 38,5838,58 24,3524,35 99 1,1-1,1
33 33 13.413.4 80,12280,122 34,3834,38 2121 2,1-2,1
44 33 46.346.3 117,150117,150 38,3838,38 2626 2,1-2,1
Table 3: Random arrangements in n\mathbb{R}^{n} defined by n+1n+1 symmetric m×mm\times m matrices.

We also performed computations for m4m\geq 4, but we do not report them because we ran into numerical issues. Frequently, the Hession of (6) at some critical point is almost singular.

References

  • [1] J. Bezanson, A. Edelman, S. Karpinski and V. Shah: Julia: A fresh approach to numerical computing, SIAM Review 59 (2017) 65–98.
  • [2] J. Bisgard: Mountain passes and saddle points, SIAM Review 57 (2015) 275–292.
  • [3] T. Boege, J. Selover and M. Zubkov: Sign patterns of principal minors of real symmetric matrices, arXiv:2407.17826.
  • [4] V. Borovik and P. Breiding: A short proof for the parameter continuation theorem, Journal of Symbolic Computation 127 (2025).
  • [5] P. Breiding and S. Timme: HomotopyContinuation.jl: A package for homotopy continuation in Julia, Math. Software, ICMS 2018, Lecture Notes in Comp. Science, 10931, 458-465, 2018.
  • [6] F. Catanese, S. Hoşten, A. Khetan and B. Sturmfels: The maximum likelihood degree, American J. Math. 128 (2006) 671–697.
  • [7] D. Cohen, G. Denham, M. Falk and A. Varchenko: Critical points and resonance of hyperplane arrangements, Canadian Journal of Mathematics 63 (2011) 1038–1057.
  • [8] J. Cummings, J. Hauenstein, H. Hong and C. Smyth: Smooth connectivity in real algebraic varieties, arXiv:2405.18578.
  • [9] T. Duff, C. Hill, A. Jensen, K. Lee, A. Leykin and J. Sommars: Solving polynomial systems via homotopy continuation and monodromy, IMA J. Numerical Analysis 39 (2019) 1421–1446.
  • [10] N. Early, A. Geiger, M. Panizzut, B. Sturmfels and C. Yun: Positive del Pezzo geometry, arXiv:2306.13604.
  • [11] H. Hong, J. Rohal, M. Safey El Din and E. Schost: Connectivity in semi-algebraic sets: I, arXiv:2011.02162.
  • [12] J. Moré and T. Munson: Computing mountain passes and transition states, Mathematical Programming 100 (2004) 151–182.
  • [13] L. Nicolaescu: An Invitation to Morse Theory, Universitext, Springer, Berlin, 2011.
  • [14] C. Rackauckas and Q. Nie: Differentialequations.jl – a performant and feature-rich ecosystem for solving differential equations in Julia, Journal of Open Research Software 5 (2017) 15.
  • [15] A. Sommese and C. Wampler: The Numerical Solution of Systems of Polynomials Arising in Engineering and Science, World Scientific, 2005.
  • [16] R. Stanley: An introduction to hyperplane arrangements, Geometric Combinatorics, American Mathematical Society, IAS/Park City Mathematics Series 13 (2007) 389–496.
  • [17] B. Sturmfels and S. Telen: Likelihood equations and scattering amplitudes, Algebraic Statistics 12 (2021) 167–186.

Authors’ addresses:


Paul Breiding, Universität Osnabrück [email protected]

Bernd Sturmfels, MPI MiS Leipzig [email protected]

Kexin (Ada) Wang, Harvard University kexin_\_[email protected]