Skip to content

Sirocco improvements: fix base number fields and braid monodromy of arrangements #34415

@enriqueartal

Description

@enriqueartal

Now the input of the functions or methods braid_monodromy and fundamental_group is a polynomial f(x, y) (or a curve defined by this polynomial) with coefficients in a number field K with a precise embedding in QQbar.

The first main change proposed by this issue is to construct an extension K1 containing the imaginary unit; this extension comes also with an embedding in QQbar. The main reason is that several intermediate computations deal with f(x0,y) where x0 is a Gauss rational; considering these polynomials in K1[y] instead of QQbar[y] dramatically increase the speed of some of these intermediate computations.

The second main change is to allow the input to be a list of polynomials instead of just one. The method braid_monodromy starts with changes of variables of the type x: x + y till the global degree of f coincides with its y-degree. Next step is to compute the roots in x of its discriminant with respect to y using an internal funtion called disc. Both changes are useful for this function: Applying it to an example of a polynomial of degree 18 with coefficients in a number field of index 12 yields to more that 30 minutes of computation time. This polynomial has three factors. The computation of the discriminant of each factor and the resultant of the three pairs of factors is done in 15 seconds.

A new function braid_monodromy_arrangement adds a new feature, i.e., it computes the braid monodromy of the product of the polynomials in the list, with a new information, a dictionnary associating each strand to a precise polynomial.

The third main change is to provide a new way to get the presentation of the fundamental group of the complement of the curve. This new method has two advantages: the obtained presentation has information about the homotopy type of the complement of the affine curve and computations are faster. When computing the fundamental group, the relations come from the following computation; take a generator g of a free group and a braid s; the relation is obtained as (g*s)/g (the natural action of the braid group on the free group is already implemented. The problem is that these braids may be extremely long and these computations may take very long time. The new method performs less computations and cut the above method in several steps which takes into account some conjugations tricks.

Finally, some computations have been parallelized. Also, sometimes the computations stopped for precision or parallelism issues and some solutions avoid these problems.

The branch puiseux of this fork(https://github.com/enriqueartal/sage) contains the modifications.

CC: @miguelmarco

Component: algebraic geometry

Author: Enrique Artal

Branch/Commit: u/enriqueartal/sirocco_improvements__discriminant_and_optional_information @ 963d744

Issue created by migration from https://trac.sagemath.org/ticket/34415

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions