Metadata-Version: 2.2
Name: mathInterval
Version: 0.3.1
Summary: Fast C++ interval math bindings
Author-Email: Fedorrracora <valyanskiy.f2009@yandex.ru>
License: Apache-2.0
Requires-Python: >=3.8
Description-Content-Type: text/markdown

# mathInterval
[![PyPI](https://img.shields.io/pypi/v/mathInterval)](https://pypi.org/project/mathInterval/)
[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE)
[![C++](https://img.shields.io/badge/C++-20-blue.svg)]()
[![Python](https://img.shields.io/badge/Python-3.8+-green.svg)]()

[🇷🇺 Читать на русском (на Github)](https://github.com/Fedorrracora/mathInterval/blob/main/README.ru.md)

C++ interval arithmetic exposed to Python.  
It can also be used directly in C++.

This module provides classes and algorithms for working
with mathematical intervals (multitudes). It supports:

- Construction of intervals with finite or infinite bounds.
- Smart search algorithms using user-provided lambdas.
- Conversion and custom transfer of interval data.
- Execution of arithmetic operators between intervals.

All classes and functions include Python-style docstrings,
which can be viewed via `help()` in a Python console.

In C++, each function is documented directly in the header
(`interval.h`) before its declaration.

## Installation

### C++

Copy the `interval.h` file to your project and include it
using standard C++ mechanisms (`#include "interval.h"`).

### Python

The package may be downloaded on PyPI. Also, you can build
and install library manually:

> ⚠️ Before building, make sure that the **build** module for `pip` is installed:
> ```bash
> pip install build
> ```

```bash
git clone https://github.com/Fedorrracora/mathInterval --recurse-submodules
cd mathInterval
./load_stubgen.sh
python -m build
pip install dist/*.whl
```

### Tip:

To build a universal wheel you may use:

```bash
cibuildwheel --platform auto
```

## Usage

[You can view the full reference here (on GitHub)](https://github.com/Fedorrracora/mathInterval/blob/main/docs/reference.md)

## Uninstallation (Python)

```bash
pip uninstall mathInterval
```
