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.2-cp314-cp314-win_amd64.whl (29.0 MB view details)

Uploaded CPython 3.14Windows x86-64

bertini2-3.3.2-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.2-cp314-cp314-macosx_14_0_arm64.whl (22.5 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

bertini2-3.3.2-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.2-cp313-cp313-macosx_14_0_arm64.whl (22.4 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

bertini2-3.3.2-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.2-cp312-cp312-macosx_14_0_arm64.whl (22.4 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

bertini2-3.3.2-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.2-cp311-cp311-macosx_14_0_arm64.whl (22.4 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

bertini2-3.3.2-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.2-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.2-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: bertini2-3.3.2-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.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 8399e6664f079d2cea50b914a20cc4c417d9edc60aacaeb1432a363b066c9642
MD5 bf0071abdfed25366c52dee87356eb4d
BLAKE2b-256 9f0083a4e4e045b274cd0a468bcd2713215d2ca7d58fa9cc17d94bb04d4a2251

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.2-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.2-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for bertini2-3.3.2-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 95338f29a5ac2604a3fe5d4e9590d4f43975e7b0010c646226ae996a2323b16b
MD5 0223fdfffd3308bdc38521be506012e7
BLAKE2b-256 f63067b8dde8441f5d7eac1f87e30e73dc3564ccc0798939249a5fa3b0f871a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.2-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.2-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for bertini2-3.3.2-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 70ad4fcf61d5a6cbc269379d9a8807f923320e6d32394e769be578eca0eb787b
MD5 dd55c7af0de05c1ce92d1a0a505ef6c4
BLAKE2b-256 0cf082523cecfdb88938a8fe59f17b1dc991aeecfd444f13260bdcc32e1557e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.2-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.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: bertini2-3.3.2-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.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 5e3d9e0eb9d93767733d73fd147f87307c6e846d3c6f6bace2e00f11ea278a68
MD5 97b4d719185cfbb7b5bdfc4241eae650
BLAKE2b-256 00f5464f8a03a311c5d5ba38988d9dff8288b08e601be13ada5f5b27855f5a92

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.2-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.2-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for bertini2-3.3.2-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ddab6fd4394d11764158e7c413d6cf4b272e4475f5345731679e37dc4aa11802
MD5 6bf3ff52fe76cfcb4289351d7779a7e5
BLAKE2b-256 eed7e953502eae67d14676559dcd26f9b4de635a74ab292a9251910d71477a30

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.2-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.2-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for bertini2-3.3.2-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 718aa811cc4e2a2b9aa715a940acb730edfa1c9980989e015d52c04b172c9d81
MD5 e69d72dc660acc775044ae56e74f6cdc
BLAKE2b-256 d29566846074091035aa4f9b291fd94ad8b094d41377ef9a8a9723f17435b707

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.2-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.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: bertini2-3.3.2-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.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 78f6c56aeb48cd0b39ef0ab95ab2214f7a7f46043fa1964eb72a7c38ac45ee63
MD5 18bc16880482bc8dc39d61c01c890a5b
BLAKE2b-256 32ba3b15ed1a33a3900557e847938190a6a3bcfffbb23870691e299e4ae0f22e

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.2-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.2-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for bertini2-3.3.2-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 0e5d97a62f75597f5210ce5e5aae417def78730aab5f73f3f9b4dbf76d774cfc
MD5 02a7c704ddbbc7dd9a79903150ba5b90
BLAKE2b-256 1699f72bb954c2758fc94e4a12817b14a01f1edff040e3225868d86e6511cb59

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.2-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.2-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for bertini2-3.3.2-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 65837c6356a2dca26f985fa0ed81323344408831260159db0cbd82c5c2a8ccb7
MD5 a081faa3dfae4ecff615fb768594e13a
BLAKE2b-256 e93d320423f4ec7723f0177da85895252521e807a1d349d986db23340c3b53f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.2-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.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: bertini2-3.3.2-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.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b33ed09c3e874f006658a26ae83cfdd609c99e0cc8f637f42159e5abca543b5e
MD5 bb3ad3ac80ffe6468f7b438a3084b2a6
BLAKE2b-256 ede1edd52644cabd829231fc28c049c61699727d62c778a31e539221bb87b656

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.2-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.2-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for bertini2-3.3.2-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 bb0bd8e722656e67735959fac1d41f8c67dff010eb08c1ad055d97c0a6759bf1
MD5 087811d054d587fd6306dce3ea6aa7a7
BLAKE2b-256 1eda291dea40411320487728449cb5742811a576525bf5119d93be5bffb62320

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.2-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.2-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for bertini2-3.3.2-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 92bae1eb5bd104768567818eea3904c8a67b3d7539c81e4dc2b6c0f388deb550
MD5 e1c266216c2e1644d3a9f8a2d0bab702
BLAKE2b-256 a4769fbb41f8d06db8b39a0985557efc59546b9d065f7ae9b0b0e4a283b69d8e

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.2-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.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: bertini2-3.3.2-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.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e3b2db43d71effe6da9215e9a7c2c34ce02f30d8b9c1f3ad1ac99357468f7503
MD5 e905abd965545b405cf39b16c7b287ba
BLAKE2b-256 36f613db14961afbca36b4f140aea0d9e58548ae9ed8a2820d474cf3ce5be498

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.2-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.2-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for bertini2-3.3.2-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 48de09d8cfdc5957d4436262fc15c28dbb16047317d6a99fb041ed1cc38b0cf2
MD5 e86437444a7f3498e691ae2643b13620
BLAKE2b-256 1aaf59d94704ddf37cc5791081b039062961bd698f47694af3e701da59c67060

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.2-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.2-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for bertini2-3.3.2-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 aa9fb6ea631effd236b57c899c6a630fc8b5c4e9350ccf17aa3938b9e4fd51b5
MD5 6c7be607697447bf6953cdd29df1bf15
BLAKE2b-256 0bf96ef2adc70cb0e809931a00957ed66f399ca18f75d1a8d0cb142579dd8cb8

See more details on using hashes here.

Provenance

The following attestation bundles were made for bertini2-3.3.2-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

This release

3.3.2 This release

15 files

3.3.1

15 files

3.3.0

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