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

Uploaded CPython 3.14Windows x86-64

bertini2-3.0.0-cp314-cp314-manylinux_2_34_x86_64.whl (33.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

bertini2-3.0.0-cp314-cp314-macosx_14_0_arm64.whl (21.3 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

bertini2-3.0.0-cp313-cp313-win_amd64.whl (28.2 MB view details)

Uploaded CPython 3.13Windows x86-64

bertini2-3.0.0-cp313-cp313-manylinux_2_34_x86_64.whl (33.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

bertini2-3.0.0-cp313-cp313-macosx_14_0_arm64.whl (21.3 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

bertini2-3.0.0-cp312-cp312-win_amd64.whl (28.2 MB view details)

Uploaded CPython 3.12Windows x86-64

bertini2-3.0.0-cp312-cp312-manylinux_2_34_x86_64.whl (33.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

bertini2-3.0.0-cp312-cp312-macosx_14_0_arm64.whl (21.3 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

bertini2-3.0.0-cp311-cp311-win_amd64.whl (28.2 MB view details)

Uploaded CPython 3.11Windows x86-64

bertini2-3.0.0-cp311-cp311-manylinux_2_34_x86_64.whl (33.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

bertini2-3.0.0-cp311-cp311-macosx_14_0_arm64.whl (21.3 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

bertini2-3.0.0-cp310-cp310-win_amd64.whl (28.2 MB view details)

Uploaded CPython 3.10Windows x86-64

bertini2-3.0.0-cp310-cp310-manylinux_2_34_x86_64.whl (33.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

bertini2-3.0.0-cp310-cp310-macosx_14_0_arm64.whl (21.3 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: bertini2-3.0.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 28.2 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.0.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 cd45e348026e0352e740f36e5c1c7fb247add47b53b78519908d8f4797b4d762
MD5 e934109b735b7f274d3c92fc452251a6
BLAKE2b-256 c19188905039e045bb20e4bee829065369020fa363fe59cc8f74915ca41c39bf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.0.0-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 4768a2cb33bf4f803d17c272c1b6e7a35132cc7461ada847e7dc5a970d2b0084
MD5 0684ed718322a2b96477e6a3d86606d5
BLAKE2b-256 ccb7fb6341f17b2963f9b133d31114962cab9bcb4d0163c34a6bc841f6fb1458

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.0.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 58bbc8f22909b122656da1611c2b47d82a98b8f4860b7962c8276b1dc445c8af
MD5 411836909b5c2c2a2c2346571a83d03b
BLAKE2b-256 74b62571744e5eaf92fbe6a197f9d5db7eecede7eef992fe68602ef2293b827d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: bertini2-3.0.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 28.2 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.0.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7ffde6ce5b36ba0dab11a40058ade078dfe93226066fdbb8a2f97c65df12e493
MD5 fe04102468c66d81664dbb49f9770071
BLAKE2b-256 a54a16fe7eaccc53e377b820d0d8651592be88c2656d46a1efb07d4bc7827054

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.0.0-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d9082389f9fd5cc6aab383581b23352f8a1b5739e3e8f8590f44eba46cbeaae3
MD5 f21e853bac88ecaea82f77a49f8676be
BLAKE2b-256 b9e9477e18620538b3fa7ac5a83f0bb6fc64a00dc1bc02c4215938a92e6b9fa2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.0.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 70ebe44522608f038ea91b38d83ec3728dd0c39c43e88b33b05731eae8601d2a
MD5 f7fc1849d229a6e8a033a2234f0e74ca
BLAKE2b-256 52ef0d2387ff73c8efb32a6823f1dac69e4721f443f67c21178ae08a541cdf37

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: bertini2-3.0.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 28.2 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.0.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 aedf17bad82ce3a63086f900e3a796be46b4f92ea35b3859ed4d071accce489c
MD5 da4ad4a2ebf114950e5584582260eac0
BLAKE2b-256 cbb1c9459bc242df4696cbfa81985a898299c3968bf32ab040a487f31e81caf7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.0.0-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 b489ee9d0b497fc156e645962fe2f675b31fd2f0d7a989aa40a649c0ded29641
MD5 f2a9bd1a1e99263cf4c8d6bf88fbd628
BLAKE2b-256 b68f24cd821a74139ddce644d88cf9c8f60463c0996c595ad9cb8ec3e3b16ac5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.0.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 03f5eae46ff7a949e303ec8ca501045e2979928cc0146df3d1b10dacab4b92a9
MD5 6b8809d766842066b1bd9896711e1a1d
BLAKE2b-256 0541776573f6e933e648e7c20434e806063246d1532da01e7f6c7f421174b7b9

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: bertini2-3.0.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 28.2 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.0.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 317da0280821e45354aa7f2c2fa87eeae467c2d49c1127855496b81177014d1e
MD5 625da9d3532c2ac2bd1300a2ab5f4a7a
BLAKE2b-256 379b960c1924923e37614f4bc89ae643d1727718d84edddc643909ab84169213

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.0.0-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 5d062d40ee03aecc7c15af773dbb0aa773ffa6f9030b423edcb1b575e628662e
MD5 a71ab52ee2d95456882127c33e8dfed9
BLAKE2b-256 4fab952bba3ad64ea5c18d61efa563c009390901ff0a4097cf4f291752908276

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.0.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 4ae05e48f87169e66d0ef3ffa22a61a2ed856f9e4a3fc97d1f5d312563781811
MD5 a6f98e221900d0739bc6c11d00b19625
BLAKE2b-256 538f2253535002514d98d98fdc276cd115b57978a9365920d6c008a44bdda1f4

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: bertini2-3.0.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 28.2 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.0.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5067c2d65f69f0e4881e239fc059260e86dbd91fbdbd6a2474ebaea48c5683da
MD5 73c6ab6d6be679fa93d4e6d2f6135a5d
BLAKE2b-256 1f517c31c37a3ffe7c7431725a60f1740ca4b73f2324cc9674f88fc1b4479b9b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.0.0-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 da32c1013452c961339f85af2929c496ea30e1ec1d132e06eedb3f8b139e25d9
MD5 b57bba146e25198cfee7e70ff1d1dcd8
BLAKE2b-256 8df80d9c26cb14dd2485d4a3e9835f1cd177e282a66fc0330a72f02409049304

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.0.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 fbffbf175beff713c7674fc75a4f27e848955accb48a1a73d31f6e360e637cbd
MD5 a15a7969a316b8cc52e0c4f74db52340
BLAKE2b-256 24a83363bffaae770041482503ad99328f466d8bb3d98d7e93200002a6321a30

See more details on using hashes here.

Provenance

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

3.1.0

15 files

This release

3.0.0 This release

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