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

Uploaded CPython 3.14Windows x86-64

bertini2-3.1.0-cp314-cp314-manylinux_2_34_x86_64.whl (33.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

bertini2-3.1.0-cp314-cp314-macosx_14_0_arm64.whl (21.5 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

bertini2-3.1.0-cp313-cp313-win_amd64.whl (28.4 MB view details)

Uploaded CPython 3.13Windows x86-64

bertini2-3.1.0-cp313-cp313-manylinux_2_34_x86_64.whl (33.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

bertini2-3.1.0-cp313-cp313-macosx_14_0_arm64.whl (21.5 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

bertini2-3.1.0-cp312-cp312-win_amd64.whl (28.4 MB view details)

Uploaded CPython 3.12Windows x86-64

bertini2-3.1.0-cp312-cp312-manylinux_2_34_x86_64.whl (33.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

bertini2-3.1.0-cp312-cp312-macosx_14_0_arm64.whl (21.5 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

bertini2-3.1.0-cp311-cp311-win_amd64.whl (28.3 MB view details)

Uploaded CPython 3.11Windows x86-64

bertini2-3.1.0-cp311-cp311-manylinux_2_34_x86_64.whl (33.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

bertini2-3.1.0-cp311-cp311-macosx_14_0_arm64.whl (21.4 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

bertini2-3.1.0-cp310-cp310-win_amd64.whl (28.3 MB view details)

Uploaded CPython 3.10Windows x86-64

bertini2-3.1.0-cp310-cp310-manylinux_2_34_x86_64.whl (33.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

bertini2-3.1.0-cp310-cp310-macosx_14_0_arm64.whl (21.4 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: bertini2-3.1.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 28.4 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.1.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 ca499b9626723f99fe36425d464c3c81fcf4976f23b341a24cfdc3d0077cf489
MD5 5c87367a90d019e6b3d3032b8f3a45dd
BLAKE2b-256 810d9d1053c14000f7fad4e25050ce19210fbff5525343eba3e28bf6d2b666e5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.1.0-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 48b93418e5e9e88f515a88d8f5cbecc9cf80473c6e2c9c0b204df7219d82765f
MD5 128ded293a89d90427352e9acfefce66
BLAKE2b-256 bfffdf07827d2ca47f33b31d28bdc4d5bf79a1d766a3b26e036244422c9a0d9d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.1.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 7522d04df2f04e5de7ef3cbf3ce8aa3c380ae8dd0c2a291566f2ebcd41834342
MD5 08b3069aebf0d87fadeffa89743b25dc
BLAKE2b-256 8f50ccd92dadaa6331b5a2ffe63dd294c269155656df76d61b9574885e69a489

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: bertini2-3.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 28.4 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.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 85b1b00d3374e8853bc64b9438cfaf0db9ea3f112fefa8f72eb8a32730ecd7e7
MD5 1e737099a6c96e7b931e4cb4ee94cd51
BLAKE2b-256 4e409b4ceedaaffb53b6b0f739ab3a88f61d8088cc10c8e7f08e2ce2a92fea2e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.1.0-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 f3b10fbf853205b385174addaf018b7755e88298521a2dd10f700443e07980fb
MD5 3011a0833d5ef5721e9434d21f23ad8f
BLAKE2b-256 0025aa3d343e498d75d083daa2ac06f4ea42e122ac6f302c92325f38f67a61c2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.1.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 6d7d6078bb1d46afb754510a3376d99c34f4ceac162f8a781c4a95ddebd78976
MD5 98ae9cc189574806d40d1087c14896ab
BLAKE2b-256 8bcf5c175926293b52bc34847447dd475897db19f60074bec099f51fa1a24b25

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: bertini2-3.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 28.4 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.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1688476ab707048cff4bbd5b225cd2daa8d73b19c141a439ef0d46d9f1649c3f
MD5 851d9e58a1dabbd675e1fb278f024eaf
BLAKE2b-256 3161abb6770057f721dda633c946033877708e85f77d10393525ad8ab18ec0d5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.1.0-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 863f161ffb6c0f30dd3bf28a0747ab76768d09e9e89a02efbd73adb0be1ad6f0
MD5 fd2291f81b761a01edf9335d96dcc469
BLAKE2b-256 9f913584948c219d418db5b4085a492b3ae9dd5a0ccf8890bd8d281a568db68c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.1.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 2c75747f5275ec5e714919cb90741180cb77ddf611637c65cf55ab58d9409387
MD5 e1b42e2c5954119e98c7a2c63a7b2625
BLAKE2b-256 866acfee438bf278e24f0dfb916b707bd561646742314c0b2c88fa5df98dbcde

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: bertini2-3.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 28.3 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.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 81c8c29f53b322a7adbf6d71488903cd347b908d1624c3f9525049b381e2088e
MD5 2c28314f0879465d26dbc01d55cd012d
BLAKE2b-256 e27db3e50a88b1c815e6191e25c8479a79705643558135125aaaac94b3db0487

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.1.0-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 7b323065c84220fba4d7e2ca232651ad6ce6a95188018551643b8ea929524f07
MD5 0cc0c872923c7baf53a3e77d574f8f33
BLAKE2b-256 dfa51b9594d633a31f89c2e3bbb1ef6c7d76262ef89d99e788dba692556efe0b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.1.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 f8f0eb45194465651cd439edf94e5fde0f14a0aa20635262f491a2be82ef4d3a
MD5 691800d2c7580ce7069d91174c8d5515
BLAKE2b-256 1a4c2d7a580a9e3a7759d21ef8bcece2582511bfcf75f8db4b8001f9003a94f1

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: bertini2-3.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 28.3 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.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 74a8fbfa722444f9524ad00b129a86edbbcc8f618763e5b28da9c53e61a55952
MD5 dca09a2d9571efd91909e7cb592c21f2
BLAKE2b-256 55621142d71ddf4ad82439a00e37f3ec9dec38bd6dfda558074b761edaeceacf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.1.0-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 8a52114fb2a8539a33d006891d8786268e7c28455cf8f04bfd4970fab0692aaf
MD5 b147886af6d9625bae02284ea9becf09
BLAKE2b-256 cc104e5c37019c519d1bbeb546a11261d61d33c15cdfbd197cbda4d41997ff9c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.1.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 7acd005acf49ea0686e9545fce072f2cb6a31331eebf94a14bfa2aadb1c49820
MD5 bf1c724536263fc3b1224a5bfa3f7379
BLAKE2b-256 e26f9d2b72932768eeb7d361642ceb43f03ab43a01817261cb0a29e111f097aa

See more details on using hashes here.

Provenance

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

3.3.0

15 files

3.2.0

15 files

This release

3.1.0 This release

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