Skip to main content

Compute dense samples of real algebraic varieties for use with topological data analysis tools.

Project description


Copyright (C) 2019 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


Python package for sampling real algebraic varieties from their polynomial systems. See the article 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.

Version 1.1.4

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^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


tdasampling is licensed under an MIT license.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tdasampling-1.1.4.tar.gz (173.0 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page