2026-08-12 –, Room 6
In 1987, Eugenii Shustin published an article titled "A New M-Curve of Degree 8". This article contains the construction of a polynomial in two variables, whose set of zeros forms a so-called M-curve. In this talk, we will go into detail of the problems we encountered, when attempting to reproduce this construction using Oscar.jl in Julia.
Algebraic geometry is a mathematical field that is notoriously hard for computers, since its constructions often require exact computations. The price for this exactness requirement is often paid in performance degradation.
Plane algebraic curves arise as the zero set of polynomials in two variables. Every such curve subdivides the plane into a certain number of regions. An M-curve is a plane algebraic curve that maximizes this number of regions. The 1987 article by Shustin contains an algebro-geometric description of how to assemble such an M-curve, but no actual polynomial. We want to translate this article into Julia code and encounter a multitude of obstacles:
- The end result is a smooth curve, meaning that it has no singularities, i.e. there are no points in the zero set where partial derivatives vanish simultaneously. Such a curve is robust with respect to small errors in the coefficients. However the intermediate curves have singularities which are highly sensitive against such perturbations and require exact computations.
- How can we verify that the end result is indeed a M-curve?
- In Oscar.jl there are many different number types we can use for the coefficients. We can even switch to fields much larger than the rational numbers. However, computation in these fields is much slower than in the rationals. Is there a way to force certain polynomial systems to have rational solutions?
- Since many of our computations are expensive, is there a way to store intermediate results?
- Can we visualize our intermediate curves and the end result? What different visual models are there?
I am Lars Kastner, a mathematician and programmer from TU Berlin.