Metadata-Version: 2.4
Name: xpplab
Version: 0.1.1
Summary: XPPAUT's simulation and AUTO bifurcation engine for Python: pip install and go, no compiler, no X11
Keywords: xppaut,auto,bifurcation,continuation,dynamical systems,ode,neuroscience,nonlinear dynamics
License-Expression: GPL-2.0-or-later
License-File: LICENSE
License-File: engine/xppaut/LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Education
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: C
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Project-URL: Homepage, https://github.com/CesarPerdomoDiaz/xpplab
Project-URL: Documentation, https://cesarperdomodiaz.github.io/xpplab/
Project-URL: Source, https://github.com/CesarPerdomoDiaz/xpplab
Project-URL: Issues, https://github.com/CesarPerdomoDiaz/xpplab/issues
Project-URL: Download, https://github.com/CesarPerdomoDiaz/xpplab/releases/latest
Requires-Python: >=3.9
Requires-Dist: numpy>=1.21
Provides-Extra: plot
Requires-Dist: matplotlib>=3.5; extra == "plot"
Provides-Extra: pandas
Requires-Dist: pandas>=1.3; extra == "pandas"
Provides-Extra: mcp
Requires-Dist: mcp>=1.25; extra == "mcp"
Requires-Dist: matplotlib>=3.5; extra == "mcp"
Provides-Extra: all
Requires-Dist: matplotlib>=3.5; extra == "all"
Requires-Dist: pandas>=1.3; extra == "all"
Requires-Dist: mcp>=1.25; python_version >= "3.10" and extra == "all"
Provides-Extra: test
Requires-Dist: pytest>=7; extra == "test"
Requires-Dist: matplotlib>=3.5; extra == "test"
Requires-Dist: pandas>=1.3; extra == "test"
Description-Content-Type: text/markdown

# xpplab

XPPAUT's simulation and AUTO bifurcation engine for Python. Install it with
pip; there is nothing to compile and no X11 server is needed. Until version
0.1.1 this package was called `xppstudio`.

```python
import xpplab as xs

m = xs.load("lecar.ode")              # any XPPAUT .ode file
sol = m.run(total=200, iapp=0.1)     # NumPy arrays: sol.t, sol["V"]
eq = m.equilibrium()                 # eigenvalues and stability

d = m.auto.equilibria("iapp")        # AUTO continuation of steady states
hb = d.first("HB")                   # the first Hopf bifurcation
orbits = m.auto.continue_from(hb, "periodic")
m.auto.diagram.plot("V")             # matplotlib, XPPAUT's colours
```

- **Models**: every XPPAUT `.ode` file works unchanged. Parameters, initial
  values and options are live dictionaries, and named `set`s apply with one
  call.
- **Simulation**: all fifteen XPPAUT integrators (`meth="stiff"`,
  `"cvode"`, `"5dp"`, ...), delays, noise, maps, DAEs and Volterra
  equations.
- **AUTO**: steady states, periodic orbits from Hopf points, two-parameter
  curves of folds and Hopf points, branch switching, and period doubling.
  Results come back as Python objects, a pandas DataFrame and a
  ready-made plot.
- **Fidelity**: the numerics are XPPAUT 8.0's own C code. The test suite
  checks the output against unmodified XPPAUT bit for bit.

Part of [XPP Lab](https://github.com/CesarPerdomoDiaz/xpplab). GPL-2.0-or-later,
like XPPAUT.
