Skip to content

JonahWeinbaum/cubic-fourfolds

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

cubic-fourfolds

This repository houses the code used to work with cubic fourfolds over F2. The vast majority of the software is written in the Magma computer algebra language.

Dependencies

  • Macaulay2 (For FunctionalEquationSign)
  • Sage 9+ (For certain scripts in article-scripts)
  • The magma-parallel-cookbook is needed to run the parallelized versions of the scripts in the surveys/ directory.
  • C++ for point_counting functionality. Specifically, g++ must be available.

Installation

  1. Clone this repository.
  2. run source install.sh to create data directories and download arXiv data.
  3. Use AttachSpec(".../cubic-fourfolds/src/CubicLib/CubicLib.spec"); (Or attach in your .magmarc file.)

Generating the data from scratch

Included in this library is the ability to replicate the datasets of the associated to the associated cubic fourfolds paper. The database is built up in stages. We provide some of the data files on arXiv, which are downloaded automatically with the installation script. Nevertheless, if you need to generate the data from scratch, run the scripts indicated in the table below (in order from top to bottom).

Type Script Run inside directory Generated file(s)
Magma orbitsfromfullfiltration.m orbit_calculation orbitreps-X.data
Magma smooth-single.m surveys smooth.csv, singular.csv
Magma stabsurvey.m (Parallelized) surveys stabilizer_counts.csv
Magma stabsurvey-single.m (Single thread) surveys stabilizer_counts.csv
Magma zetasurvey.m (Parallelized) surveys point_counts.csv
Magma zetasurvey-single.m (Single thread) surveys point_counts.csv
Magma/M2 compute_zeta_functions.m article_scripts zeta_coefficients.csv
Sage weil_search.sage article_scripts transcendental_weil_polynomials_up_to_deg_22.csv

Repository contents

1. CubicLib

This is where the source code of the library is located.

2. ABC

This is a series of questions Jack asked about lines in cubic fourfolds, and the code set up to answer them.

3. article_scripts

This directory contains the scripts that are important for the paper. One must have available the data generated by the scripts in the orbit_calculation, surveys folders. A full breakdown is:

  • artin_tate.m : This script computes the set of observed Artin-Tate special values.

  • feasibility_check.m : This script compares for various $(n, d, q)$ whether applying union-find or our methods are computationally feasible. The script is meant to validate a pair of tables appearing in the article.

  • newton-polygons-survey.m : Computes the list of Newton Polygons of the zeta functions observed in the database.

  • weil_compare.m : This script runs various queries about the set of zeta functions from cubic fourfolds in relation to the zeta functions of K3-type discussed in [Kedlaya-Sutherland].

  • weil_search.sage : Used to generate the list of Weil polynomials of degrees up to 22 satisfying the conditions outlined in [Kedlaya-Sutherland].

To generate the data from scratch, these scripts should be run third.

4. discovery

These are scripts for submitting batch jobs on the Discovery cluster at Dartmouth College. We advise ignoring this directory.

5. legacy

This directory contains depreciated code. Please ignore.

6. linear_space_calculations

This directory contains the two scripts for determining the set of lines (resp. planes) in P5(F2) passing through the chosen orbit representatives of the cubic fourfolds.

7. macaulay2

Contains the Macaulay2 code used to determine the sign of the functional equation of the zeta functions. The function FunctionalEquationSign within CubicLib accomplishes this task for a single example. However, to avoid overhead costs in generating the database, we use a Macaulay2 script.

8. orbit_calculation

Contains scripts used to determine the list of orbit representatives. Two scripts exist for this task for the sake of timing comparisons, distinguished by the particular choice of filtration used for the task.

To generate the data from scratch, these scripts should be run first.

9. surveys

Contains scripts used to compute various features of each orbit representatives (Orbit sizes, point counts). A single threaded and parallelize version of the scripts are available.

To generate the data from scratch, these scripts should be run second.

Documentation

Specific documentation strings can be found for most intrinsics in CubicLib. In general, the most relevant functions are as follows:

// Reading data into a session.
LoadCubicOrbitData;
ReadOrbitSizeData;
ReadStabilizerSizeData;
ReadZetaFunctions;

// Group theory
CountOrbits;
IsFeasible;
IsFeasibleUnionFind;

// Working with cubics
IsEquivalentCubics;
PointCounts;

// Working with Polynomials/Zeta functions
FunctionalEquationSign;
ZetaFunctionOfCubic;
Charpoly;
IsWeilPolynomial;
TranscendentalFactor;
TranscendentalRank;
IrrationalFactor;
TateTwist;
CubicLPolynomialToPointCounts;
CubicWeilPolynomialToLPolynomial; // (Alias CWTL)
CubicWeilPolynomialToPointCounts;

ArtinTateValue;
IsOrdinary;

// Lines and Planes
LinesThrough;

// Standard forms
ConicFibrationCoefficients;
ConifFibrationForm;

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published