Skip to content

This package implements algorithms relying on Picard-Lefschetz theory for computing periods of algebraic varieties. This repo fork adds a branch "passagemath".

License

Notifications You must be signed in to change notification settings

passagemath/passagemath-pkg-lefschetz-family

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lefschetz-family

Description

This Sage package provides a means of efficiently computing periods of complex projective hypersurfaces and elliptic surfaces over $\mathbb P^1$ with certified rigorous precision bounds. It implements the methods described in

Please cite accordingly.

This package is a successor to the numperiods package by Pierre Lairez. It contains files taken from this package, that have sometimes been slightly modified to accomodate for new usage.

How to install in an existing Sage installation

In a terminal, run

sage -pip install --no-build-isolation git+https://github.com/mkauers/ore_algebra.git
sage -pip install lefschetz-family

or

sage -pip install --no-build-isolation --user git+https://github.com/mkauers/ore_algebra.git
sage -pip install --user lefschetz-family

Note the crucial option --no-build-isolation. The ore_algebra package contains extension modules; the option instructs pip to build these modules against the existing Sage installation.

Alternatively, install the ore_alegbra package (available at https://github.com/mkauers/ore_algebra), then download this repository and add the path to the main folder to your sys.path.

Requirements

Sage 9.0 and above is recommended. Furthermore, this package has the following dependencies:

Using lefschetz-family in a virtual Python environment (no prior Sage installation required)

Create and activate a virtual environment:

python3 -m venv venv-lefschetz-family
. venv-lefschetz-family/bin/activate

Install the package in the virtual environment:

pip install "lefschetz-family[passagemath] @ git+https://github.com/ericpipha/lefschetz-family.git" "ore_algebra[passagemath] @ git+https://github.com/mkauers/ore_algebra.git"

This automatically installs the modularized parts of the Sage library that are needed by the package. (These modularized distributions are provided by https://github.com/passagemath.)

Next, start Sage:

rehash
sage

At the Sage prompt, load a modularized top-level environment:

sage: from sage.all__sagemath_schemes import *

Documentation

  • Hypersurface for computing periods of hypersurfaces.
  • EllipticSurface for computing periods of elliptic surfaces.
  • DoubleCover for computing periods of ramified double cover of projective spaces.
  • FibreProduct for computing periods of fibre products of elliptic surfaces.
  • Fibration for computing monodromy representations of families of hypersurfaces.

Performance benchmarking

Here is a runtime benchmark for computing monodromy representations and periods of various types of varieties, with an input precision of 1000 bits:

Variety (generic) Time (on 10 M1 cores) Recovered precision (decimal digits)
Elliptic curve 5 seconds 340 digits
Quartic curve 90 seconds 340 digits
Quintic curve 5 minutes 340 digits
Sextic curve 30 minutes 300 digits
Cubic surface 40 seconds 340 digits
Quartic surface 1 hour 300 digits
Cubic threefold 15 minutes 300 digits
Cubic fourfold 20 hours 300 digits
Rational elliptic surface 10 seconds N/A
Elliptic K3 surface 30 seconds* 300 digits
Degree 2 K3 surface 5 minutes 300 digits

*for holomorphic periods

Contact

For any question, bug or remark, please contact [email protected].

Roadmap

Near future milestones:

  • Encapsulate integration step in its own class
  • Certified computation of the exceptional divisors
  • Saving time on differential operator by precomputing cache before parallelization
  • Computing periods of elliptic fibrations.
  • Removing dependency on numperiods.

Middle term goals include:

  • Making Delaunay triangulation functional again
  • Having own implementation of 2D voronoi graphs/Delaunay triangulation

Long term goals include:

  • Tackling cubic threefolds.
  • Generic code for all dimensions.
  • Computing periods of K3 surfaces with mildy singular quartic models.
  • Dealing with other singularities, especially curves.
  • Computing periods of complete intersections.
  • Computing periods of weighted projective hypersurfaces, notably double covers of $\mathbb P^2$ ramified along a sextic.

Other directions include:

  • Computation of homology through braid groups instead of monodromy of differential operators.

Project status

This project is actively being developped.

About

This package implements algorithms relying on Picard-Lefschetz theory for computing periods of algebraic varieties. This repo fork adds a branch "passagemath".

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%