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

Uploaded CPython 3.14Windows x86-64

bertini2-3.4.0-cp314-cp314-manylinux_2_34_x86_64.whl (35.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

bertini2-3.4.0-cp314-cp314-macosx_14_0_arm64.whl (23.0 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

bertini2-3.4.0-cp313-cp313-win_amd64.whl (30.0 MB view details)

Uploaded CPython 3.13Windows x86-64

bertini2-3.4.0-cp313-cp313-manylinux_2_34_x86_64.whl (35.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

bertini2-3.4.0-cp313-cp313-macosx_14_0_arm64.whl (23.0 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

bertini2-3.4.0-cp312-cp312-win_amd64.whl (30.0 MB view details)

Uploaded CPython 3.12Windows x86-64

bertini2-3.4.0-cp312-cp312-manylinux_2_34_x86_64.whl (35.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

bertini2-3.4.0-cp312-cp312-macosx_14_0_arm64.whl (23.0 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

bertini2-3.4.0-cp311-cp311-win_amd64.whl (30.0 MB view details)

Uploaded CPython 3.11Windows x86-64

bertini2-3.4.0-cp311-cp311-manylinux_2_34_x86_64.whl (35.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

bertini2-3.4.0-cp311-cp311-macosx_14_0_arm64.whl (23.0 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

bertini2-3.4.0-cp310-cp310-win_amd64.whl (30.0 MB view details)

Uploaded CPython 3.10Windows x86-64

bertini2-3.4.0-cp310-cp310-manylinux_2_34_x86_64.whl (35.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

bertini2-3.4.0-cp310-cp310-macosx_14_0_arm64.whl (23.0 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: bertini2-3.4.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 30.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.4.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 e440a046dc08d72d2c03a47d41c3979f44959065e119f232708c65334546c781
MD5 eaf25f29be970dc1df96f4ef48f1f3b3
BLAKE2b-256 4247e792094f5f208b9ce45e56930946713d6ce5c2594a14bf3ec254fe70aabc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.4.0-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 a154329bdedad5964fd76d4ffedaee5ec85df2ee23ac187a24e558039dee45e0
MD5 e38b6b747123cfd4cfeb3b1ad1072ca9
BLAKE2b-256 868b1904c7a37333a7270f13955676d72e9de48ddad1693e77e50998f8342d85

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.4.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 66fcb61d9a94374383226a7050921bcb9ba68ec845e5c2043aa2ca8e4b9086fe
MD5 ccb65b794a1607d303e22081b46b7f43
BLAKE2b-256 189af62c76799b37f02304abb32857026541950d2fb631e6d6718398d12261c7

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: bertini2-3.4.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 30.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.4.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 082ad27db54c575cd585d7ace95157afc49f7b732352ca136fb3477725066703
MD5 66a3a019548d5bf1afedd1ceffb55959
BLAKE2b-256 c51d8be683f404bae55be53feee76097743d30fa0b5b289e277ac834a5d73d1e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.4.0-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 807240202af232bdb1619569b6f22fc3e56cba51cf2aacb7e5a9c7d884069dfd
MD5 be1360399dc686d15772d53582daecb1
BLAKE2b-256 fdb7ff5c7e8e3bf99db91abcb214657fdde267bca7f718e487dc95f1d6ecae93

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.4.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 f135d789ec8901b579e3c9eed482fb4bdb5bf3664864a8414e6c3e092d4b8aae
MD5 ada5cad71e4f743ce847fc819f570b6d
BLAKE2b-256 7d62f1936396a70240b3765a73b4eb8889e5c07f6a3fc4cd4942f5652d683cce

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: bertini2-3.4.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 30.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.4.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4c45c520676bcdfb6e5e9d9b178f8da82d8463905f67429bccba11c7249c90ce
MD5 2e08f3ba1a7d8bec0417525ac92d6d5c
BLAKE2b-256 fb3dcbecf8dc004ab38af59e8b99967468e4c3081c4146ea1aaf3fabdd251935

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.4.0-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ab1a0ce7abc8faeaa677689dec799a9ed0ce3ec81c7e7f67133048009585a012
MD5 30a1c6c340646218c03624bdc5861960
BLAKE2b-256 dbf778100b801f01183aa5bf29bfaf95a7523ab8a24b1938f4a9540b42530d3e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.4.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 45ec2debdb654be648cdae8d2fb91c40d325c08fd6e2836f5529cb309420852e
MD5 746951266304fa206737cb1f6bc73e60
BLAKE2b-256 41f207d31029674ee91daee1637363794bfc7f324e08f6bc40ee2108f7f62780

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: bertini2-3.4.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 30.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.4.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 57865c0efb21e3b210bc421eb169a7bb5af9978bab4a568a559ef53444447bf8
MD5 543830d6b240624dd4e878ca03e1a967
BLAKE2b-256 9023c7e917f323ca420967cf12bf1931d10acf3f9c2e57dd39a64c288232b07d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.4.0-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 716adf622516d6d2d1a1396c57b965b8fc95e58957f3a3233c60a3a7556115b1
MD5 003a0014377f4dc19dab4608045ade80
BLAKE2b-256 4ad308ba897ab6290f0dc1eccf6084530d86c17756ea57560998ec6555bb2bc5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.4.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 46673099f044a94b4d95142dbb7be359cb0b0022f7fb6da42dbd562ba2aa1963
MD5 9076adba8515123422dd04e0ea856994
BLAKE2b-256 2a7d2ecb187ca6eec2fef48b61c532969fe36b38f8a5b9d2fcf53b04bf7ea2c8

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: bertini2-3.4.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 30.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.4.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6c9be9ad2dc39e6c6dab19e40bc478ff253de45be010ba4e00837b4b755dba69
MD5 7878d9882932f93cc1937e9167aee228
BLAKE2b-256 849dba1f8dfb3e65c844950d44e070eab709ae84b564e4d5b49b76bb92e1a62d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.4.0-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 1da7ab9f6e9433e6184a135f8a83421c0602d0b6760384fd0eb78511e5faee9d
MD5 eebe81c66935e5024f8c32c0fb71780b
BLAKE2b-256 13fde1906ed01fe15e9aac3be700fdc706bc5b23e123a6f992de7a813b421c85

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.4.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 b7cb8a169ce699231cc5481c6f84270172e8601fb75fa8e8fc6cf65c146bec38
MD5 a7c40e4557e7a12a6c49f867448ca618
BLAKE2b-256 016c469d33ec1d25d3f87cf9c408658c634b9f0967119ac08a951ca04110d5d0

See more details on using hashes here.

Provenance

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

This release

3.4.0 This release

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

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