Skip to content

P-Edwards/tdasampling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tdasampling

Copyright (C) 2024 Parker Edwards

External requirements

  1. Bertini
  2. Libspatialindex (A requirement of the Python package Rtree)
  3. An mpiexec executable, like the one you can compile from source here
  4. The timeout shell command. Default in Linux installs.

Description

Python package for sampling real algebraic varieties from their polynomial systems. See the article https://arxiv.org/abs/1802.07716 for theoretical details. It has been tested on Linux.

The package installs two command line scripts:

  1. tdasampling - Entry point to the main sampling algorithm.
  2. sampling-setup - Script for setting up a directory for sampling computation from just a list of polynomials in the system.

See the included tutorial for detailed information about all the different options.

Installation

There is now a conda version available for Linux via Anaconda. You can install it with

$ conda install parkeredw::tdasampling

This should install the external requirements bertini and rtree along with the shell scripts into your conda environment. If you would like to run bertini in parallel, your own install or version of MPI is required.

Version 2.0.0

Basic usage for tdasampling

$ tdasampling [options] bounds density number_of_functions_in_system execution_directory
  • Bounds is a list of a form like -1.0,1.0,-1.0,1.0, which indicates the region in which to sample the polynomial system is box [-1.0,1.0] x [-1.0,1.0] in Euclidean space
  • execution_directory is a directory containing, at minimum:
  • A minimizer directory which contains parameter homotopy files for Bertini. Unless you have experience with Bertini, set these up with sampling-setup
  • (Recommended, not required) A parameters file parameters.json. See examples for format. If you include a parameters.json file and use the option flag --parameters with tdasampling, the parameters.json file should include all the information except execution_directory, which can then be omitted from the command line call.

Basic usage for sampling-setup

$ sampling-setup [options] path_to_directory_to_setup
  • The directory indicated at path_to_directory_to_setup should contain a file named polynomial_system. The general format of that file is text:
list of variable names separated by commas
polynomial 1
polynomial 2
...
polynomial n

For example, if we were sampling from a circle of radius 1:

x1,x2
x1^2 + x2^2 - 1
  • --mpiexecutable /a/path/to/mpiexec option to indicate a path to mpiexec. Unnecesssary if your mpiexec can be called as mpiexec
  • --bertini /a/path/to/bertini: a path to your bertini executable if it cannot be called as bertini
  • --processors k: the number of processes you would like to use for the bertini solving run associated with setup
  • --hosts name1,name2,...,namek: list of ssh names for nodes to use for the bertini computation. By default, the bertini run will run only on your local machine

License

tdasampling is licensed under an MIT license.

About

Package for sampling real algebraic varieties.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published