Metadata-Version: 2.1
Name: qreservoir
Version: 0.3.3
Summary: Python package for quantum reservoir computing using Qulacs
Home-page: https://github.com/owenagnel/qreservoir
License: MIT
Author: Owen Agnel
Author-email: owen.agnel@gmail.com
Requires-Python: >=3.10,<3.12
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: colour (>=0.1.5,<0.2.0)
Requires-Dist: matplotlib (>=3.7.2,<4.0.0)
Requires-Dist: qulacs (>=0.6.1,<0.7.0)
Requires-Dist: qulacsvis (>=0.7.3,<0.8.0)
Requires-Dist: scikit-learn (>=1.3.0,<2.0.0)
Project-URL: Repository, https://github.com/owenagnel/qreservoir
Description-Content-Type: text/markdown

<p align="center">
  <img src="docs/logo.png" width="25%"/>
</p>

# Qreservoir

[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)


Qreservoir is a lightweight python package built on top of qulacs to simulate quantum extreme learning and quantum reservoir computing models.

Qreservoir is licensed under the [MIT license](https://github.com/owenagnel/qreservoir/blob/main/LICENSE).

## Tutorial and API documents

Documentation and API: [https://owenagnel.github.io/qreservoir](https://owenagnel.github.io/qreservoir).

## Quick Install for Python

```
pip install qreservoir
```

Uninstall Qreservoir:

```
pip uninstall qreservoir
```

## Features

Fast simulation of quantum extreme learning machine and quantum reservoir computing. 





### Python sample code

```python
from qreservoir.models.QELModel import QELModel
from qreservoir.reservoirs.HarrRandomReservoir import HarrRandomReservoir
from qreservoir.encoders.HEEncoder import HEEncoder
from qulacs import Observable
from sklearn.linear_model import LinearRegression
import numpy as np

# Define observable list
observable = Observable(2)
observable.add_operator(1.0, "Z 0")
observables = [observable]

# Define model
encoder = HEEncoder(2, 2)
reservoir = HarrRandomReservoir(encoder, 0)
subestimator = LinearRegression()
model = QELModel(reservoir, observables, subestimator)

# Training data
X = np.zeros((10, 2))
y = np.zeros(10)

# Train
model.fit(X, y)

# Predict
X_test = np.zeros((30, 2))
out = model.predict(X_test)
```

## How to cite

N/A

