Metadata-Version: 2.2
Name: bertini
Version: 2.0.0
Summary: Software for numerical algebraic geometry
Author: Bertini Team
Maintainer-Email: silviana amethyst <amethyst@mpi-cbg.de>
Project-URL: Repository, https://github.com/bertiniteam/b2
Requires-Python: >=3.9
Requires-Dist: numpy
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Description-Content-Type: text/markdown

# Quick links

- [Wiki](https://github.com/bertiniteam/b2/wiki)
- [Overview](#Overview)
- [Current capabilites](#Current-capabilites)
- [Building and installing](#Building-and-installing)
- [Other information](#Other-information)

Thanks for checking out Bertini 2!

---

# Overview

The solution of arbitrary polynomial systems is an area of active research, and has many applications in math, science and engineering.  This program, Bertini 2, builds on the success of the first Bertini program, and seeks to eventually replace it entirely, as a powerful numerical engine.

The theoretical basis for the solution of polynomials with Bertini is a theorem which gives a statement on the number of solutions such a system may have, 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

Bertini2 currently has implemented the foundations of Numerical Algebraic Geometry.  Development is ongoing, but here's what we have so far:

- C++ functions and types, with Python bindings.
- Construction of multivariate polynomial and non-polynomial systems.
- Evaluation of systems and 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.

Development is ongoing, and we want your help!

---

# Missing functionality

* Parallel solving
* Numerical irreducible decomposition
* Membership testing
* and other algorithms

Users wanting a more developed implementation are recommended to use [Bertini 1](https://bertini.nd.edu) or [homotopycontinuation.jl](https://www.juliahomotopycontinuation.org/), or one of the other packages implementing the theory.  

---

# Installation

The Python package `bertini` provides pre-built wheels for Linux, macOS, and Windows. Requires Python 3.9--3.12.
The total number of wheels is 4 for Linux, 4 for macOS, and 3 for Windows excluding Python 3.12.

## Linux

```bash
pip install bertini
```

## macOS (Apple Silicon)

```bash
pip install bertini
```

Wheels are built for macOS 14.0+ on arm64.

## Windows

```bash
pip install bertini
```
Python 3.12 is excluded for Windows.
Wheels are built for Windows as Boost, GMP, MPFR, MPC, eigenpy are bundled.

## Building from source

Please see [the Wiki compiling section](https://github.com/bertiniteam/b2/wiki/Compilation-Guide) for instructions on compiling Bertini2's core library and companion Python bindings.

---

# Other information

The official project repository is hosted on GitHub at [github.com/bertiniteam/b2](https://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](https://github.com/bertiniteam/b2/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.


