qutree
======

.. image:: https://img.shields.io/badge/License-MIT-yellow
    :target: https://github.com/alice4space/qutree/blob/main/LICENSE
    :alt: License: MIT

.. image:: https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow
    :target: https://conventionalcommits.org
    :alt: conventional commit

.. image:: https://img.shields.io/badge/code%20style-black-000000
    :target: https://github.com/psf/black
    :alt: Black badge

.. image:: https://img.shields.io/pypi/v/qutree?color=orange&logo=python&logoColor=white
    :target: https://pypi.org/project/qutree
    :alt: PyPI
    
.. image:: https://img.shields.io/pypi/dm/qutree?logo=python&logoColor=white
   :target: https://pypi.org/project/qutree
   :alt: PyPI - Downloads

.. image:: https://img.shields.io/github/actions/workflow/status/alice4space/qutree/unit.yml?logo=github&logoColor=white
    :target: https://github.com/alice4space/qutree/actions/workflows/unit.yml
    :alt: build

.. image:: https://img.shields.io/codecov/c/github/alice4space/qutree?logo=codecov&logoColor=white
    :target: https://codecov.io/gh/alice4space/qutree
    :alt: Test Coverage

.. image:: https://img.shields.io/codeclimate/maintainability/alice4space/qutree?logo=codeclimate&logoColor=white
    :target: https://codeclimate.com/github/alice4space/qutree/maintainability
    :alt: maintainability

.. image:: https://img.shields.io/readthedocs/pyqutree/latest?logo=readthedocs&logoColor=white
    :target: https://pyqutree.readthedocs.io/en/latest/
    :alt: Documentation Status

.. image:: https://img.shields.io/badge/all_contributors-2-blue
    :target: https://github.com/alice4space/qutree/blob/main/AUTHORS.rst
    :alt: All contributors

.. image:: https://img.shields.io/badge/-open%20in%20colab-blue?logo=googlecolab&labelColor=555&logoColor=white
    :target: https://colab.research.google.com/github/alice4space/qutree/blob/main/docs/source/examples/demo.ipynb
    :alt: colab

.. image:: https://img.shields.io/badge/-open%20in%20mybinder-blue?logo=jupyter&labelColor=555&logoColor=white
    :target: https://mybinder.org/v2/gh/alice4space/qutree/main?labpath=docs%2Fsource%2Fexamples%2Fdemo.ipynb
    :alt: binder


Overview
--------

Plot sets of multiqubit quantum pure states as a binary tree of Bloch spheres.

We present a representation that can display several arbitrary multi-qubit pure states, using a combination of the Bloch Sphere and the Schmidt decomposition.

Our current approaches to visualization of quantum states allow to display:

- several mono-qubit states, using the Bloch sphere
- a single multi-qubit state, sometimes with additional restrictions such as symmetry

Usage
-----

install with pip:

.. code-block:: console

    pip install qutree

And you will be able to produce this type of Bloch sphere's tree:

.. image::  https://raw.githubusercontent.com/alice4space/qutree/main/docs/source/_static/example.png
    :alt: example tree

More information can be found in our `documentation <https://pyqutree.readthedocs.io/en/latest/>`__.

Citing
------

If you find qutree useful in your research, please consider citing the following papers to support our work. Thank you for your support.

-   Barthe, A., Grossi, M., Tura, J., and Dunjko, V.. (2023). Bloch Sphere Binary Trees: A method for the visualization of sets of multi-qubit systems pure states.
    https://doi.org/10.48550/arXiv.2302.02957

Contribute
----------

If you want to contribute you can fork the project in your own repository and then use it. If you consider working with us, please follow the `contributing guidelines <https://pyqutree.readthedocs.io/en/latest/contribute.html>`__.

Meet our `contributor <https://pyqutree.readthedocs.io/en/latest/authors.html>`__.
