Eliminating unwanted branches of algebraic curves related to triangle centres

algebraic-curvesgeometrypolynomialstriangle-centrestriangles

Lately I have become fascinated with triangle centres. To that end, I have written a small Python module that can compute explicit positions of centres for arbitrary triangles in the plane to arbitrary precision, based on the trilinear and barycentric coordinates in Kimberling's Encyclopedia of Triangle Centers (ETC).

For certain combinations of triangles and centres, the sum of barycentric coordinates evaluates to $0$ and I have a point at infinity. To study those cases where a triangle centre leaves the friendly confines of the Euclidean plane for the line at infinity, I invented the notion of infinity curves.

The infinity curve $\infty_n$ associated with the Kimberling triangle centre $X_n$ is the locus of points $(x,y)$ with $y\ne0$ and $(x,y)\ne(0,\pm\sqrt3)$ where the centre $X_n$ of the triangle with vertices $(-1,0),(1,0),(x,y)$ is a point at infinity. $\infty_n$ may be empty; I will ignore these cases here, as well as points that always lie on the line at infinity such as $X_{30}$.

For algebraic centres, which make up the vast majority of centres in the ETC, the associated infinity curves are also algebraic, and the problem then is to find an exact bivariate polynomial describing them. They can be derived by setting the sum of barycentric coordinates equal to zero, then expanding, simplifying and factoring. For example, the Exeter point $X_{22}$ has triangle centre function $a(b^4+c^4-a^4)$, from which I derived
$$\infty_{22}(x,y):3x^4 + 2x^2y^2 – 6x^2 – y^4 – 6y^2 + 3=0$$
Infinity curves can be visualised (or determined not to exist) for a given centre by making a complex plot of the centre's location for the triangles $(-1,0),(1,0),(x,y)$ with varying $z=x+yi$. Here is such a plot for $X_{22}$; the infinity curve is white and marks discontinuities in the hue.

The file infcurves has polynomials describing infinity curves up to $X_{70}$ (also the upper limit of the centres that can be computed by the Python module at the time of posting this question). However, I have been unable to fully reduce some of the polynomials to match the real appearance of their corresponding curves, and this is why I ask this question.

Take for example $X_{29}$ with centre function $\frac{\sec A}{\cos B+\cos C}$. Its complex plot looks like this, the infinity curve being a simple W-shape on the upper half-plane:

The polynomial I have computed as $\infty_{29}$, on the other hand, produces that and more:
$$27 x^{16} + 144 x^{14} y^{2} – 216 x^{14} + 306 x^{12} y^{4} – 864 x^{12} y^{2} + 756 x^{12} + 324 x^{10} y^{6} – 1404 x^{10} y^{4} + 2160 x^{10} y^{2} – 1512 x^{10} + 171 x^{8} y^{8} – 1180 x^{8} y^{6} + 2430 x^{8} y^{4} – 2880 x^{8} y^{2} + 1890 x^{8} + 36 x^{6} y^{10} – 540 x^{6} y^{8} + 1480 x^{6} y^{6} – 1800 x^{6} y^{4} + 2160 x^{6} y^{2} – 1512 x^{6} – 132 x^{4} y^{10} + 530 x^{4} y^{8} – 600 x^{4} y^{6} + 270 x^{4} y^{4} – 864 x^{4} y^{2} + 756 x^{4} – 16 x^{2} y^{12} + 92 x^{2} y^{10} – 124 x^{2} y^{8} – 140 x^{2} y^{6} + 324 x^{2} y^{4} + 144 x^{2} y^{2} – 216 x^{2} + 4 y^{10} – 37 y^{8} + 116 y^{6} – 126 y^{4} + 27=0$$

This curve appears to be decomposable into four parts, one of which is the one I want. The problem is that the polynomial is absolutely irreducible, something I have checked with my implementation of Gao's factorisation algorithm (one of whose steps I inquired about in this question). I want to eliminate the unwanted branches of this curve, but factoring does not seem to be the way.

Given an irreducible algebraic curve with several distinct branches like $\infty_{29}$ above, how can I select a specific branch and remove the others?

Best Answer

In general if you are given an explicit formula for a polynomial $f(x,y):=\sum_{(i,j)} a_{i,j}x^iy^j \in k[x,y]$ where $k$ is a subfield of the field $\mathbb{C}$ of complex numbers, it is difficult to determine if $f$ is an irreducible polynomial in $k[x,y]$. If the ideal $I:=(f)\subseteq k[x,y]$ is non-prime, it is difficult to calculate the irreducible components $f=f_1\cdots f_k$ of $f$. I dont think there are any "general methods". How do you check that the polynomial is "absolutely irreducible" on a computer?

Note: A computer has "finite memory", hence when you calculate on a computer you calculate in a finite field with large characteristic. So if you have an algorithm on your computer that claims to "prove a polynomial is irreducible", this algorithm proves it is irreducible in a polynomial ring over a finite field.

Example: Let $A:=\mathbb{Z}[x_1,..,x_n]$ be the polynomial ring in $n$ variables over the integers and assume $p>0$ is the largest prime expressible on your computer. Let $k:=\mathbb{Z}/p\mathbb{Z}$.

Assume $F(x_1,..,x_n):=f_1(x_i)\cdots f_k(x_i)+pf(x_i)\in A$ is an irreducible polynomial. Your computer is working in the polynomial ring $B:=k[x_1,..,x_n]$ and in this ring (when reducing $F$ modulo the prime $p$) you get the polynomial

$$ \overline{F}=\overline{f_1}(x_i)\cdots \overline{f_k}(x_j),$$

and the polynomial $\overline{F}$ is not irreducible in $B$. Hence the original polynomial $F$ is irreducible in $A$ but your computer does not detect this since it is working with the polynomial ring $B$.

Comment: "This curve appears to be decomposable into four parts, one of which is the one I want. The problem is that the polynomial is absolutely irreducible, something I have checked with my implementation of Gao's factorisation algorithm (one of whose steps I inquired about in this question). I want to eliminate the unwanted branches of this curve, but factoring does not seem to be the way."

In general: A computer cannot detect if a polynomial is irreducble in $\mathbb{Z}[x_i]$ or $\mathbb{Q}[x_i]$ because it has "finite memory" and is working with polynomials in a polynomial ring over a finite field.

Example: Let $p>0$ be a prime number and consider the polynomial $$f(x):=x^2+p\in A:=\mathbb{Q}[x].$$

Let $p$ be the largest prime expressible on your computer. You can yourself verify that $f(x)$ is irreducible in $A$ but your computer believes there is an equality $f(x)=x^2$ which is a reducible polynomial, since your computer calculates in the field $\mathbb{F}_p:=\mathbb{Z}/p\mathbb{Z}$ and the polynomial ring $\mathbb{F}_p[x]$.

Here is a post on the problem of studying the number of solutions to polynomial equations and computer algebra:

When does a system of polynomial equations have infinitely many solutions?