Skip to main content

Quick links


Overview

The solution of arbitrary polynomial systems is an area of active research, and has many applications in math, science and engineering. This software, Bertini 2, is a re-implementation of Bertini 1 from C into C++/Python.

The theoretical basis for the solution of polynomials with Bertini is a theorem which bounds the number of solutions a system may have. It sits together with the numerical computational tool of "homotopy continuation". the act of "continuing" from one system into another through a "homotopy", as depicted in the below diagram:

homotopy continuation


Current capabilites

Bertini 2 has already implemented most of the foundations of Numerical Algebraic Geometry. Development is ongoing, and here's what we have so far:

  • A blackbox that implements tracktype 0 (zerodim solving) for the total degree and mhom start systems. User homotopy not yet exposed
  • Through Python bindings, runtime scriptable construction of systems and interactivity with their zero-dimensional solutions.
  • Python construction of multivariate polynomial and non-polynomial systems, including from linear algebra operations via numpy and Bertini 2's variables and extended numeric types.
  • Evaluation of systems and their Jacobians in double and arbitrary multiple precision.
  • Construction of the Total Degree and Multihomogeneous start systems.
  • Construction of homotopies (they're just systems with path variables defined).
  • Tracking of a start point x_0, corresponding to a particular time $t_0 \in \mathbb{C}^n$ in a homotopy $H$, from $t_0$ to $t_1$.
  • Running of the Power Series and Cauchy endgames, in double, multiple, and adaptive precision.

See the published docs for latest the officially released documentation (which will always lag behind the doc from the dev version).


Missing functionality

✨ In-progress!!!

  • Numerical irreducible decomposition
  • Membership testing
  • and other algorithms

Users wanting a more stable implementation are recommended to use Bertini 1 or homotopycontinuation.jl, or one of the other packages implementing the theory.


Installation

Pre-built wheels -- the way to go!

The Python package bertini2 provides pre-built wheels for Linux, macOS, and Windows.

pip install bertini2

Once it's installed, you import bertini (not import bertini2!)

Installing the wheel also puts the classic blackbox command-line solver on your PATH as bertini2 (threads-only -- run bertini2 --help). For MPI / multi-rank cluster parallelism, build the CLI from source.

  • Linux: Python 3.10-3.14
  • MacOS (Apple Silicon): Python 3.10-3.14
  • MacOS (Intel): not currently supported
  • Windows: Python 3.10-3.14

Building from source

Please see the Wiki compiling section for instructions on compiling Bertini 2.

The bertini2 command-line solver

The classic blackbox CLI (bertini2 input, with a CONFIG/INPUT file) is a pure C++ program -- it does not depend on Python -- and every build path delivers it:

You want... Do this You get
The easy way (threads-only) pip install bertini2 bertini2 on PATH + the bertini Python package
From source, with Python pip install . (in a clone) same as the wheel, built locally
From source, with Python, editable pip install -e . bertini2 resolves to the in-tree build
Just the solver, no Python cmake -B build -S . && cmake --build build --target bertini2_exe && cmake --install build --component cli --prefix <prefix> only <prefix>/bin/bertini2
Full C++ dev install cmake --install build bin/bertini2 + libbertini2 + headers

A plain cmake build skips the Python bindings (BUILD_PYTHON_BINDINGS is off by default), so the CLI-only path never needs a Python interpreter. The binary statically links our code but still needs the usual shared libraries on the system (Boost, GMP, MPFR, MPC, and MPI for multi-rank runs) -- the wheel vendors these; a from-source build expects them present (e.g. via your HPC modules or a conda env). The wheel CLI is threads-only; for MPI / multi-rank cluster parallelism, build from source.


Other information

The official project repository is hosted on GitHub at github.com/bertiniteam/b2.

Please note that this is a long-term project, and is under active development. If you want to help, please see the wiki for contact information. We have opportinuties for all skill levels and interests.


License

Bertini 2 is Free and Open Source Software. Source is available under GPL Version 3, with additional terms as permitted under Section 7.


Thank yous

A huge thank you to:

  • HongKee Moon, for his help in getting this package to be pip-installable with a comprehensive CI build system.
  • Jack Hagen, for helping get away from the autotools and replacing CMake.
  • Mike Mumm, for helping with straight-line-programs
  • Jeb Collins, for writing much of the parser system, implementing the predictors, and so much more
  • Tim Hodges, for contributing to the endgame implementations
  • Alan Liddel, for tons of help with Python parts
  • Dan Bates, Jon Hauenstein, for critical advise support, and guidance
  • Andrew Sommese, Charles Wampler, Dan Bates, Jon Hauenstein, for writing Bertini 1

And to all the other people who have contributed to this package over the years.

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

bertini2-3.3.0-cp314-cp314-win_amd64.whl (29.0 MB view details)

Uploaded CPython 3.14Windows x86-64

bertini2-3.3.0-cp314-cp314-manylinux_2_34_x86_64.whl (34.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

bertini2-3.3.0-cp314-cp314-macosx_14_0_arm64.whl (22.5 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

bertini2-3.3.0-cp313-cp313-win_amd64.whl (29.0 MB view details)

Uploaded CPython 3.13Windows x86-64

bertini2-3.3.0-cp313-cp313-manylinux_2_34_x86_64.whl (34.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

bertini2-3.3.0-cp313-cp313-macosx_14_0_arm64.whl (22.4 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

bertini2-3.3.0-cp312-cp312-win_amd64.whl (29.0 MB view details)

Uploaded CPython 3.12Windows x86-64

bertini2-3.3.0-cp312-cp312-manylinux_2_34_x86_64.whl (34.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

bertini2-3.3.0-cp312-cp312-macosx_14_0_arm64.whl (22.4 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

bertini2-3.3.0-cp311-cp311-win_amd64.whl (29.0 MB view details)

Uploaded CPython 3.11Windows x86-64

bertini2-3.3.0-cp311-cp311-manylinux_2_34_x86_64.whl (34.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

bertini2-3.3.0-cp311-cp311-macosx_14_0_arm64.whl (22.4 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

bertini2-3.3.0-cp310-cp310-win_amd64.whl (29.0 MB view details)

Uploaded CPython 3.10Windows x86-64

bertini2-3.3.0-cp310-cp310-manylinux_2_34_x86_64.whl (34.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

bertini2-3.3.0-cp310-cp310-macosx_14_0_arm64.whl (22.4 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

Details for the file bertini2-3.3.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: bertini2-3.3.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 29.0 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for bertini2-3.3.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 b2179b1d33f3a981c6da23b7e0907979824b50bae0721293c331c74d83e399e2
MD5 4f3ca992302a22ac94f31c21e19453c4
BLAKE2b-256 baac0b6e4fbb7eb2870d647de6c665e37fd20d7efbca8afa545da00b2a7a0aa4

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.0-cp314-cp314-win_amd64.whl:

Publisher: publish.yml on bertiniteam/b2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bertini2-3.3.0-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for bertini2-3.3.0-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 94611b9b394a90707122891aaaba66232960f0be89e34b4d86951509bb4b4b1b
MD5 2428fac1f080b6aceca3d6ebef125dbc
BLAKE2b-256 217ad06f10e9ff2f4ec6d161310ee044876c9922a6d5691536450d7642e90caf

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.0-cp314-cp314-manylinux_2_34_x86_64.whl:

Publisher: publish.yml on bertiniteam/b2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bertini2-3.3.0-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for bertini2-3.3.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 dc912dbe560ae39f56a26cbe53d483851d82d190adf81e0ec7adeab1134164aa
MD5 c8a5a8f0a5877146ab0a067becdb814f
BLAKE2b-256 6ffb7255dc7417bf792359a19b1063ef6acb5996ba84f153e68ac3db282a95f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.0-cp314-cp314-macosx_14_0_arm64.whl:

Publisher: publish.yml on bertiniteam/b2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bertini2-3.3.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: bertini2-3.3.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 29.0 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for bertini2-3.3.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4109dc9179370ae530020093285c173d9bba4aadd174b7f9ae11002305cbef9b
MD5 3750c8f4096905977fa8a7ec9fc96c85
BLAKE2b-256 aed8a5899642c173903e49b85b1506a36a53da80ac9c59b490f7701c4322d046

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.0-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on bertiniteam/b2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bertini2-3.3.0-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for bertini2-3.3.0-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 cf1045e08d362b35fd7e3b79a2e322e0c58bbe38a170343c95af72443884fc2b
MD5 83944db8f220d3b9c228faedca3f1697
BLAKE2b-256 2e87293095f1cf16ca58dcc55b33c08f95b8586177ac0265f5bbbe11143505cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.0-cp313-cp313-manylinux_2_34_x86_64.whl:

Publisher: publish.yml on bertiniteam/b2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bertini2-3.3.0-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for bertini2-3.3.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 02612a9c4f4c44f1e85bc2020fef7d653d1c32fbe8bee77f329fc373b96c9c2f
MD5 51a39ad3d35fa05eac8034ec43f90630
BLAKE2b-256 896ea28c8ac137c84ec4615aee7d212303a0edd1cdd88996bd656b16325ee1d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.0-cp313-cp313-macosx_14_0_arm64.whl:

Publisher: publish.yml on bertiniteam/b2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bertini2-3.3.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: bertini2-3.3.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 29.0 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for bertini2-3.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a9559f01f76cb34eda996c6556c59ee5e89eb6d7c9f67531a6af96031b50ffd0
MD5 2cb81d0e2bc3366291a726b613cf350b
BLAKE2b-256 4f3ed22b5c93df3bdc660019ccb00b83ab337cebfebf383df6c93f6dfafb4d97

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.0-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on bertiniteam/b2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bertini2-3.3.0-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for bertini2-3.3.0-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 231976269caebc1c2d461d638a5988dfe60eba6ea6cd6af047faaf2f87bde5d2
MD5 910aeccd2fff05274b06b5ff32aaf809
BLAKE2b-256 ea84bf6b8d237cbe398cf9a84c25db9a6f1da8bbf2590ae2c90b334dcb1facd0

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.0-cp312-cp312-manylinux_2_34_x86_64.whl:

Publisher: publish.yml on bertiniteam/b2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bertini2-3.3.0-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for bertini2-3.3.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 1285a65080290a83dd7526bd3a29386c62a7ae402c73bb1c4e9603d95761ba34
MD5 4a137165a25d4704edb5b68470023a81
BLAKE2b-256 1cf6a17be84c4a1598cb14e6aaedd57bd608feb249c56cbe477494b96b9bb8a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.0-cp312-cp312-macosx_14_0_arm64.whl:

Publisher: publish.yml on bertiniteam/b2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bertini2-3.3.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: bertini2-3.3.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 29.0 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for bertini2-3.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7cef39325f3ed0a31ff4f99f53826aadedf7411323311b956fdb8724efdc8616
MD5 c0d3a1abb2466c97665214370d3f5bf4
BLAKE2b-256 1b927dc3a40d2d502364fbe69412a2420c9fab20b05cd0864a7588ce45393a89

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.0-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on bertiniteam/b2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bertini2-3.3.0-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for bertini2-3.3.0-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 564239ab7b9b68db2e89e2ec73e0c2c72f30352634519c7b3a5e5974c4a77277
MD5 0d2f9701483aaa04277780978bb02703
BLAKE2b-256 bcd9264f77fa5aaec16c0e9e2fcf7ba6c6c3509d634177c973881a0b8fc3e130

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.0-cp311-cp311-manylinux_2_34_x86_64.whl:

Publisher: publish.yml on bertiniteam/b2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bertini2-3.3.0-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for bertini2-3.3.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 19d5920b0bb6ffee3bf5da13fdcb009bf4b82d59f8bd5c3eb14181f92cea5423
MD5 26ddd76dbc799ab74946dcb5a0da82e7
BLAKE2b-256 84fafbb4e05bc8773ba2b0224417014961329254d913c60771a94c8328c39158

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.0-cp311-cp311-macosx_14_0_arm64.whl:

Publisher: publish.yml on bertiniteam/b2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bertini2-3.3.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: bertini2-3.3.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 29.0 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for bertini2-3.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 38a332cd9a0833967d3fa2f1d8fad50d12d3ddb202de5035424033d724267421
MD5 aa0e2046a0fd7b2d1ea8ffcf8ecffa44
BLAKE2b-256 eef6915994e0018e4048c089d63b91c4126a551dafac41a76d4ac5d827d65935

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.0-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on bertiniteam/b2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bertini2-3.3.0-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for bertini2-3.3.0-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 6ae96f62bf342d6b87992b12e562eac05901c2c1d7f89f5c8d48e9e228e9dcd9
MD5 a02bfada29c330226033fc64f3d72389
BLAKE2b-256 c98540aa48d597a07733a73d228b9e19dd708ab23f2a17738ee6f10c0991d46f

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.0-cp310-cp310-manylinux_2_34_x86_64.whl:

Publisher: publish.yml on bertiniteam/b2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bertini2-3.3.0-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for bertini2-3.3.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8634c67e74157c1dc6a4e86dc98efcb52ce108719263837adc2a44b99766e0ff
MD5 afec46452ccb5df6e1709e85b60e226b
BLAKE2b-256 cf8ddf06f6903462814b4596fcfdfd21a667fbd1990975383be0ae6bdd1fa07d

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.0-cp310-cp310-macosx_14_0_arm64.whl:

Publisher: publish.yml on bertiniteam/b2

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

3.4.0

15 files

3.3.2

15 files

3.3.1

15 files

This release

3.3.0 This release

15 files

3.2.0

15 files

3.1.0

15 files

3.0.0

15 files

2.0.2

18 files

2.0.1

13 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page