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

Uploaded CPython 3.14Windows x86-64

bertini2-3.2.0-cp314-cp314-manylinux_2_34_x86_64.whl (34.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

bertini2-3.2.0-cp314-cp314-macosx_14_0_arm64.whl (22.4 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

bertini2-3.2.0-cp313-cp313-win_amd64.whl (28.9 MB view details)

Uploaded CPython 3.13Windows x86-64

bertini2-3.2.0-cp313-cp313-manylinux_2_34_x86_64.whl (34.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

bertini2-3.2.0-cp313-cp313-macosx_14_0_arm64.whl (22.4 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

bertini2-3.2.0-cp312-cp312-win_amd64.whl (28.9 MB view details)

Uploaded CPython 3.12Windows x86-64

bertini2-3.2.0-cp312-cp312-manylinux_2_34_x86_64.whl (34.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

bertini2-3.2.0-cp312-cp312-macosx_14_0_arm64.whl (22.4 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

bertini2-3.2.0-cp311-cp311-win_amd64.whl (28.9 MB view details)

Uploaded CPython 3.11Windows x86-64

bertini2-3.2.0-cp311-cp311-manylinux_2_34_x86_64.whl (34.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

bertini2-3.2.0-cp311-cp311-macosx_14_0_arm64.whl (22.4 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

bertini2-3.2.0-cp310-cp310-win_amd64.whl (28.9 MB view details)

Uploaded CPython 3.10Windows x86-64

bertini2-3.2.0-cp310-cp310-manylinux_2_34_x86_64.whl (34.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

bertini2-3.2.0-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.2.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: bertini2-3.2.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 28.9 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.2.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 5da163526ef56c463be4902eaf5acd41c919c7f15046752687d215ed43e1ebce
MD5 29475714429716bc8150c4636717dde0
BLAKE2b-256 a69c9cbb343fb763d77a84f02d2f070d66077b3bf7c198c282b02730879fc506

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.2.0-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 7e460e42229ec5da75d068863d226822b119c3ae030169e1c3e5d8a8888c2d1b
MD5 390c8e082014d65999a8d2f33187191a
BLAKE2b-256 36a42b37b590d67177c67da82f2a5c14e3c096b53acee213880615bc0e01bbe6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.2.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 dad0e8713fb7bb5b95796688ea56c0bde76b1f3b7433d1f1735c27404dfaf549
MD5 e738774490367609d483644bcfbebdc1
BLAKE2b-256 95d762094aeed4695b85a297d324fcd22a0d1aefa0f691946d3b3465c617fea9

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: bertini2-3.2.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 28.9 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.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4e103049230c48d3674be2f8ad4406c26c81410cf45c9a8ab855c51413a692ad
MD5 6082a55792149e9a0cb71d6711bf76a9
BLAKE2b-256 6253165add1dfce3e86bc23a878790d09b94503c190f338b88d1f9e5eddf2825

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.2.0-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 38e647aaddd9379f1077f06826259267baca1011e479263b4715009c0da8dba0
MD5 71e7a7accc2d406008b7760b57208919
BLAKE2b-256 658f942d5dc749c9e776c91cde6bc97457c2c7d84c8c57b4df76aaf277e22d87

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.2.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 bb2d31b9d604cfedcf8e02efbbe23e5b800f5fac377c9fc0531e8539572f9632
MD5 e2175095ef369dd5ae66915b1fc37e84
BLAKE2b-256 7cae370f0593d24c2c6d16b34a57e5f48b35416a5d25f4646eece0cdfbd6fbd7

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: bertini2-3.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 28.9 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.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0d543f019bf3e1f0cceb6923e60280cc0a35da336d8e1c2dc4d1b993b2cb79a5
MD5 db81b159449759615a33ba12ae8c6fec
BLAKE2b-256 24a3c60b2c2cbbdb4ee0ad51b494fb2beead7c7465cdf251eece56c299280090

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.2.0-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 891e3ef0ff2b632beb739c809db959108519aad0f6f75640e8c9a5703dc68a33
MD5 9a0b058d7e8db1a431b753487ef99965
BLAKE2b-256 ce2edd2a354282cbd5c76b8fe63f88c7277439f3f4ec66f410f56ed34caf5225

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.2.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 61cd0568475b9a965078566401172b3ea7794b85e9fd04ba80d5ea933e443c5a
MD5 107095b6dfc97765e8ad9eafa07b11bb
BLAKE2b-256 793b3c90aa57effeba8a05a81938331bdd6e33ff6d945891db85e735f7f8287d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: bertini2-3.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 28.9 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.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8c9b3f4f095831760e4790767309a581623f2867e2283b0b5c07273343243a49
MD5 3e93432687e2af135750de975ddb8cc7
BLAKE2b-256 3b4cbc767a177972da5855638670183e4dd3ae787833721ddf76c8c4a4b1a719

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.2.0-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 4f6e93fc79847cd61dd2f8e076538d861e8d6ff5869211e3da847bc93313b797
MD5 f5946971c4de55c63ddcfd1b96ba8a3b
BLAKE2b-256 017fb8fcf2aec4053e494c060df3ff3cd5ef3762abd4db60f4c32c8023eda78b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.2.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e711e3e696b75ac436f9c031c8481155f7722a6d1ac5470cd74e7ff20001b1fd
MD5 6195652d0d6dee4894f09ca57e33660c
BLAKE2b-256 2501615e295c3542444329c1c82a5d1459be175717a31c029f6e42f1e8279e08

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: bertini2-3.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 28.9 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.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2115faa8cca57f128336e40a8f0b03b82fde1d5342ee3c307366ada3b4442fd2
MD5 c1472fe6e1bbcc070d7682375dd491f6
BLAKE2b-256 2560c3b3f58e7823fe6d107cace1af174cbb8987e1d114a55f0eb26cee4c052b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.2.0-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d5790b54ff3b43208f3a5f9d489ec4a7bb28fba131ea7a08a55c886729929a7b
MD5 bfbf820c752d81a312c28163a57f6029
BLAKE2b-256 b3d806531dd59e9c5f6ddd5baf514b9409566cd38aaf7e8c568bdecf0c95a3d8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for bertini2-3.2.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 b6c2bacf4514892d90b583b830786faa0c3e21c8384ea3c537e8bd3d710daab5
MD5 6172fbd0192f939b30d28e97f3a8f74b
BLAKE2b-256 2d403a54be6f11fedaf7f0f2125b59dc64f630bc47cf2a76bce40c522484e8d2

See more details on using hashes here.

Provenance

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

This release

3.2.0 This release

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