Metadata-Version: 2.4
Name: geqo
Version: 0.1.2
Summary: A quantum computing framework
Project-URL: Homepage, https://github.com/JoSQUANTUM/geqo
Project-URL: Documentation, https://geqo.jos-quantum.de
Author: JoS QUANTUM GmbH
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Quantum Computing
Requires-Python: >=3.12
Provides-Extra: cupy
Requires-Dist: cupy-cuda12x<14.0.0,>=13.0.0; extra == 'cupy'
Provides-Extra: dev
Requires-Dist: jupyter-book>=1.0.4.post1; extra == 'dev'
Requires-Dist: pdoc>=15.0.3; extra == 'dev'
Requires-Dist: pytest-cov>=5.0.0; extra == 'dev'
Requires-Dist: pytest>=8.3.5; extra == 'dev'
Requires-Dist: ruff>=0.11.6; extra == 'dev'
Provides-Extra: numpy
Requires-Dist: numpy>=1.20; extra == 'numpy'
Provides-Extra: plugin
Requires-Dist: dotenv>=0.9.9; extra == 'plugin'
Provides-Extra: sympy
Requires-Dist: sympy>=1.14.0; extra == 'sympy'
Provides-Extra: visualization
Requires-Dist: ipykernel>=6.29.5; extra == 'visualization'
Requires-Dist: ipympl>=0.9.7; extra == 'visualization'
Requires-Dist: matplotlib>=3.10.1; extra == 'visualization'
Requires-Dist: mplcursors>=0.6; extra == 'visualization'
Description-Content-Type: text/markdown

# geqo
geqo is a framework for constructing and describing quantum circuits and executing them on simulators and on quantum hardware devices.

The documentation can be found [here](https://geqo.jos-quantum.de/intro.html).

## Quick installation and testing
1. clone the repository: `git clone https://github.com/JoSQUANTUM/geqo`
2. create a virtual environment: `python -m venv geqo-env`
3. enable environment: `source geqo-env/bin/activate`
4. install geqo with all options: `pip install geqo/[sympy,numpy,cupy,visualization,dev]`
5. optional: run unit tests: `python -m pytest geqo/tests/`

geqo is also available on [PyPI](https://pypi.org/project/geqo/). To install from PyPI just create
and activate an environment with steps 2 and 3 and then install geqo with
`pip install geqo[sympy,numpy,cupy,visualization,dev]`.

## Running a simple example
- the example task is to get unitary of a quantum circuit for the EPR pair generation
- start Python in the environment from the steps above
- run the following commands:

```
from geqo.gates import Hadamard, CNOT
from geqo.core import Sequence
seq=Sequence(["q1","q2"],[], [ (Hadamard(),["q1"], []), (CNOT(), ["q1","q2"], []) ])

from geqo.simulators import simulatorUnitarySymPy
sim=simulatorUnitarySymPy(2)
sim.apply(seq,[0,1])
sim.u
```

The expected result is
```
Matrix([
[sqrt(2)/2,         0,  sqrt(2)/2,          0],
[        0, sqrt(2)/2,          0,  sqrt(2)/2],
[        0, sqrt(2)/2,          0, -sqrt(2)/2],
[sqrt(2)/2,         0, -sqrt(2)/2,          0]])
```

