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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14macOS 14.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 14.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 14.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 14.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

bertini2-3.3.1-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.1-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.1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: bertini2-3.3.1-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.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 4e1380cebe62784778d8d67d90d9f6d761e624c2420790b0c2f999fb2dfb513b
MD5 cedeb381d3e8844a3190b5c94ca05ff5
BLAKE2b-256 8dd24407bd13d38f47eb6924c2362128ee01bd76c6a61f536ec539a023ef0621

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.3.1-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 9e7591036ba5b3c638c4a6ed2ce36c86ba49967300e8f2d71c2489ef7eb6ec49
MD5 0a282c9ed1b45eecb6dd1e7231627cf0
BLAKE2b-256 d6c7b487d6aa13fd9493dd599df3f82ee87c85a4baa8d04bdb29e0fdd2fdff7f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.3.1-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 2971e220c06dfe91e6a846d2c24e64dee513ebc4de9eb62c4d5fa154c6c662fc
MD5 ce333e18095c319ced1c256b6cd4774d
BLAKE2b-256 e09b7b5a8b390f88f303ad7a07bd3166cfec8fb4e28d13ba600660236f768eb2

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: bertini2-3.3.1-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.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 41f6d82d9f0ee3b22eb79a5729da89abb684377f30234cc26320a9a72ab66b19
MD5 b89cfec0de02df37bdd26e9fe08fa16a
BLAKE2b-256 230b3a25f31f869629efba39a98aa4fda5b2abb9731df6b1fd7e38ff7d6a712f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.3.1-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 0346090157c664f346411d4b99412e27ee65beb2831ec9efb41b124fc809a957
MD5 1c0132a8e4e60a055e90bccfe832d9a7
BLAKE2b-256 b604dd57b844454f3b67e7e73df00e3229bccee2d29f528d3b9f94922c07f3d8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.3.1-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d2569dd4de7ff23ff41f206350052eec05581380e4a4887e044b3dca4e16f610
MD5 1f5d750853fde8f10f1bc3fba94946ed
BLAKE2b-256 8be295c25e0c02d936876aa18604c861f16b23b83742b463d58bab82ac94e396

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: bertini2-3.3.1-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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a8ceccc0ee44fbb38ff36a67f04bddd08684017462ff9e8bf8346cc7004180cd
MD5 9bf83bbcca0aba236821ec5b9d9ba72f
BLAKE2b-256 36b06adb72f4e583980c99f73d0becc11a72c3cea2d1746eeb1f2c9257cc7002

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.3.1-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 529f26325cf2c8021d6b9482ebd7b38a9fb4288dc3c0ecbf10380a5b89837190
MD5 32d16bf3acc2b3ab629bd4da0de5f006
BLAKE2b-256 c5c2a20225357be2374a9088ad31aaab3d5c09957704e45144f3b47e3e04d235

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.3.1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 fd8933359961c42336bdadc8f54edfe406cf80ad533f885a53bbd3c0a747f551
MD5 e776283672f8c96bc8fd3f2e64726441
BLAKE2b-256 0e7a9e09fbd7752d2ce493dc301ed35cd02cea222daa8287cbcfe262ea262bf8

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: bertini2-3.3.1-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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9c34dce7d7e69c55cdb2133582492c64fadcd50370edf6d7be85b369537ea787
MD5 771f6668d40873c65954f3d5dd0dcb49
BLAKE2b-256 8d0c957f0d1ea535063bb42badde1858f10f305125c4a95efbb3f5ac574531d7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.3.1-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d5d6f3738020fbd196c427241aee6733177f8172e444410fa660010d089611a3
MD5 6dc8e253d096f3e69c9adbe60cbb63cb
BLAKE2b-256 b38cba6bef8e99a0ec552ee6c85cbf400a78e6968ab8f276ffbe21e6c2ed26ef

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.3.1-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 150baf90e360cbc70c94bb647cf6c433dee68fdd5dd03e7ada9623ea29bd8bb4
MD5 1394dd363bb7ff615387156f376df333
BLAKE2b-256 5baf899f7505b9a93cab636c3bfcb5bc33c847ec6914f9d89df82b69adfe753d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: bertini2-3.3.1-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.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ff3e45dfcace93afd971da131125abaee47928be51e6885ebf95c54397825224
MD5 aca0fcba536a1bedd46d00da81328084
BLAKE2b-256 cbe7db972fbcb7df061742637ed53f9339cbaed46749b452ae2c2adb3912e0de

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.3.1-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 0808e3c4ba53c7265102cf6ae4b27cd06bbebf0ce2614f917cd89789414820c0
MD5 40e6d789452afbbc4bbd2866e9d256e3
BLAKE2b-256 bc7fbb2988d828e05fa4c36d13cd31e07a1052a9b68684160a2ebd1824018f12

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.3.1-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d0de5b6042218c76a1715b4e1be822926d20f39160f7fecdf1030b9e6a303874
MD5 5c1abcf9b9f8ff16f6f92ec459fc1481
BLAKE2b-256 812e4513431bc7e2ce8fd64f83c41f876643a324a6f781fea7d369e2adad0a66

See more details on using hashes here.

Provenance

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

This release

3.3.1 This release

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