Metadata-Version: 2.4
Name: hypercube-rc
Version: 0.2.5
Summary: DEPRECATED — renamed to hypercube-esn. Install `hypercube-esn` instead (drop-in successor).
License-Expression: Apache-2.0
Classifier: Development Status :: 7 - Inactive
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
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 :: C++
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS
Project-URL: Homepage, https://github.com/dliptak001/HypercubeRC
Project-URL: Repository, https://github.com/dliptak001/HypercubeRC
Project-URL: Documentation, https://github.com/dliptak001/HypercubeRC/blob/master/docs/Python_SDK.md
Requires-Python: >=3.10
Requires-Dist: numpy>=1.21
Provides-Extra: test
Requires-Dist: pytest>=7.0; extra == "test"
Description-Content-Type: text/markdown

# HypercubeRC

[![Build wheels](https://github.com/dliptak001/HypercubeRC/actions/workflows/wheels.yml/badge.svg)](https://github.com/dliptak001/HypercubeRC/actions/workflows/wheels.yml)

> ⚠️ **DEPRECATED — renamed to [hypercube-esn](https://pypi.org/project/hypercube-esn/).**
> `hypercube-rc` is no longer maintained; `0.2.5` is the final release. Install the
> drop-in successor instead:
>
> ```bash
> pip install hypercube-esn
> ```
>
> Then update imports from `hypercube_rc` to `hypercube_esn`.

Python bindings for a reservoir computer whose neurons live on a Boolean hypercube — a
DIM-dimensional graph where each vertex is addressed by a DIM-bit binary
index, with all connectivity defined by XOR operations on those indices.
**Neuron states are continuous real values** (driven through `tanh`
nonlinearity); only the *addressing scheme* is binary. No adjacency list
is stored. N = 2^DIM neurons (DIM 5-16, i.e. 32 to 65,536 neurons).
Scale-invariant hyperparameters: the same SR and input_scaling work at every DIM.

## Installation

```bash
pip install hypercube-rc
```

Pre-built wheels for Python 3.10-3.13 on Windows (x64), Linux (x86_64,
aarch64), and macOS (x86_64, arm64). No compiler required.

## Quick Start

```python
import numpy as np
import hypercube_rc as hrc

# One-step-ahead sine prediction
signal = np.sin(np.linspace(0, 20 * np.pi, 2000)).astype(np.float32)
esn = hrc.ESN(dim=7, seed=42)
esn.fit(signal, warmup=200)
print(f"R2 = {esn.r2():.6f}")      # R2 = 0.999999
print(f"NRMSE = {esn.nrmse():.6f}") # NRMSE = 0.000129
```

## Features

- **Simple API** -- `fit()` handles warmup, run, and train in one call
- **DIM 5-16** -- 32 to 65,536 neurons, scale-invariant defaults
- **HCNN readout** -- learned convolutional readout on raw reservoir state
- **Multi-input** -- multiple input channels via stride-interleaved driving
- **Streaming mode** -- online training for real-time applications
- **Model persistence** -- pickle, save/load to disk

## Documentation

Full API reference: [docs/Python_SDK.md](https://github.com/dliptak001/HypercubeRC/blob/master/docs/Python_SDK.md)

Project repository: [github.com/dliptak001/HypercubeRC](https://github.com/dliptak001/HypercubeRC)
