Metadata-Version: 2.4
Name: slicot
Version: 1.0.15
Summary: Python bindings for SLICOT C library (control theory)
License-Expression: BSD-3-Clause
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: C
Classifier: Programming Language :: Python :: 3
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: Topic :: Scientific/Engineering
Project-URL: Homepage, https://github.com/slicot/slicot.c
Requires-Python: >=3.11
Requires-Dist: numpy>=2.0
Provides-Extra: test
Requires-Dist: pytest>=7.0.0; extra == "test"
Requires-Dist: pytest-xdist>=3.0.0; extra == "test"
Requires-Dist: pytest-rerunfailures>=14.0; extra == "test"
Provides-Extra: dev
Requires-Dist: scipy>=1.7.0; extra == "dev"
Requires-Dist: slycot>=0.6.0; extra == "dev"
Requires-Dist: control>=0.10.2; extra == "dev"
Description-Content-Type: text/markdown

# slicot.c

C11 translation of SLICOT (Subroutine Library In Control Theory) from Fortran77.

**Based on:** [SLICOT-Reference](https://github.com/SLICOT/SLICOT-Reference) (BSD 3-Clause License)
**License:** BSD 3-Clause (see [LICENSE](LICENSE))

## Quick Start

```bash
# Install with uv
uv pip install ".[test]"

# Run tests
.venv/bin/pytest tests/python/ -v
```

## Translation Status

**552/627 routines translated (88%)**

| Family | Translated |
|--------|------------|
| AB | 55 |
| MB | 229 |
| SB | 113 |
| MA | 37 |
| MC | 19 |
| IB | 16 |
| Others | 83 |

513 test files covering translated routines.

## Features

- Column-major storage (Fortran-compatible)
- Python bindings (NumPy arrays)
- TDD workflow (RED→GREEN→REFACTOR)

## Docs

- **[CLAUDE.md](CLAUDE.md)** - Development workflow & translation patterns

## Contributions

I don't accept direct contributions. Issues and PRs are welcome for illustration, but won't be merged directly. An AI agent reviews submissions and independently decides whether/how to address them. Bug reports appreciated.
