https://github.com/cputz/hunter_search
A parallel program for targeted Hunter searches
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.4%) to scientific vocabulary
Repository
A parallel program for targeted Hunter searches
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
hunter_search
This is a parallel program in C++ for targeted Hunter searches. It is part of the PhD thesis [1].
Usage
Building
We build the progam using make. If gmp is not installed, one should do this first (see Dependencies below). In order to build the program, we use the following command from the root directory.
make all DEG=<degree>
Here, <degree> should be substituted for the desired degree of the Hunter search we want to perform. One can also compile a version of the progam which collects more statistics about the Hunter search during runtime (such as the total number of polynomials enumerated). However, this does slow down running times by approximately 30% in practice. For this, we build using the all-stats option.
make all-stats DEG=<degree>
Dependencies
To run (and in the first case compile) the program, the following libraries need to be installed.
gmpversion>= 6.1.1. In share, a version ofgmpis included. It can be installed in this folder by running the following commands.cd share tar -xf gmp-6.1.1.tar.xz make install-allmpi. The program has been tested usingOpen MPIversions>= 1.10.3.
Running the program
After building the program, an executable can be found in bin (bin/enum or bin/enum-stats). The executable can be run in parallel using the mpirun command. For an example, we refer to example.
Several options (some of which are mandatory for the progarm to run) can be passed when running the program.
- -disc (mandatory): The discriminant bound for the Hunter search.
- -divisors (mandatory): A comma-separated list of positive integers which the coefficients of the defining polynomials should be divisible by. This list should be exactly as long as the degree of the Hunter search.
- -tree (mandatory): A file containing the discriminant tree in a specific text format (as produced by the Mathematica script misc/disc_tree.nb).
- -locked (mandatory): A positive integer $1 \le k \le \text{degree}-1$, which represents the number of coefficients which are fixed by the root node and are then distributed to different worker nodes.
- -input (optional): A comma-separated list of text files containing congruences for the resulting defining polynomials.
- -output (optional): The path of the output file (default:
output.txt). - -coeffs (optional): A comma-separated list of $1\le k\le \text{degree}$ integers. If this option is set to $A1,\dots,Ak$ then the first $k$ coefficients (in the ordering used) of the resulting defining polynomials will be equal to $A1,\dots,Ak$.
- -filter (optional): A comma-separated list of prime numbers which are used to further filter the discriminant up to squares modulo these primes. Using this option can improve search times.
- -limit (optional): A positive interger $k$ or $-1$. If this option is set to $k > 0$ then the program will stop after processing $k$ work units (as distributed by the root node). If this option is set to $-1$ or not set at all then the Hunter serach will continue until all work units are processed. This option can be used to do some rough time estimates for longer searches.
Contents
We will give a description of the contents of this repository.
- data: All data files required as input for the targeted Hunter searches that were performed for [1], as well as output generated by these targeted Hunter searches.
- 257: Data for degree $8$ Hunter searches corresponding to signature $(5,2,7)$.
- 257_septic: Data for degree $7$ Hunter searches corresponding to signature $(5,2,7)$.
- 257_sextic: Data for degree $6$ Hunter searches corresponding to signature $(5,2,7)$.
- 3511: Data for degree $11$ Hunter searches corresponding to signature $(5,3,11)$.
- 357: Data for degree $7$ Hunter searches corresponding to signature $(5,3,7)$.
- output: Output generated by all of the above Hunter searches.
- script: Scripts for running all of the above Hunter searches.
- include: All include files for the program.
- misc: Contains a Mathematica script disc_tree.nb for computing discriminant trees, which are used as necessary input for the Hunter search program.
- share: Contains a copy of
gmpand aMakeFileto locally buildgmp. - src: The C++ source files.
References
[1] Casper Putz. `Enumeration of local and global étale algebras applied to generalized Fermat equations`. PhD thesis. Vrije universiteit Amsterdam, 2024. https://research.vu.nl/en/publications/enumeration-of-local-and-global-étale-algebras-applied-to-general
Owner
- Name: Casper Putz
- Login: CPutz
- Kind: user
- Repositories: 6
- Profile: https://github.com/CPutz
GitHub Events
Total
- Push event: 2
Last Year
- Push event: 2