In the book "Q is for quantum", Terry Rudolph describes a formalism with white balls (|0>) and black balls (|1>), termed misty state, to teach quantum theory and quantum computing to folks with only a basic knowledge of arithmetic.
This formalism was for teaching adapted and further developed, amongst others, by Adrian German, Edwin Barnes, Marcelo Pias, Qiao Xiang, and Sophia Economou.
- https://arxiv.org/abs/2005.07874 # Economou, Rudolph, Barnes 2020
- https://arxiv.org/abs/2210.02868 # Economou, Barnes 2022
- https://dl.acm.org/doi/10.1145/3626253.3633435 # German, Pias, Xiang 2024
For quantum computing, International Business Machines developed Qiskit, a popular, Python based, free and open-source software stack.
All what Mistkit does is adding to Qiskit's state_drawer function the possibility to output Statevectors in misty state formalism, alongside the already available Statevectors output formats (text, latex, latex_source, qsphere, hinton, bloch, city, paulivec).
- Language: python >= 3.8
- Library dependencies: numpy, qiskit
- Date: 2024-07
- License: Apache 2.0
- Author: Elmar Bucher
- User manual: this README.md file
- Source code: https://github.com/elmbeech/mistkit
- Inspiration: Dan Adrian German's CSCI A590 quantum computing class at Indiana University.
- Install or update to the latest mistkit version:
pip install -U mistkit
- Load mistkit:
import mistkit
- Run minimal example:
# load libraries
from qiskit import QuantumCircuit
from qiskit.quantum_info import Statevector
import pylatex
import mistkit
# generate 8[qubit] quantum circuit
qc = QuantumCircuit(8)
qc.x([0,1,3,5,6,7]) # state 0b11101011
qc.draw()
# read out the quantum circuit state vector
sv = Statevector.from_instruction(qc)
print(sv.data) # numpy state vector array.
print(sv.draw('mist')) # state vector in Terry Rudolph's misty state notation.
sv.draw('latex') # state vector in Paul Dirac's ket notation.
- Uninstall mistkit:
pip uninstall mistkit
- Read the docstrings:
import mistkit
from qiskit import visualization
help(mistkit.state_to_mist)
help(visualization.state_visualization.state_drawer)
help(mistkit.mystify)
To be developed.
Within the mistkit library, we tried to stick to the documentation policy laid out by Daniele Procida in his "what nobody tells you about documentation" talk at PyCon 2017 in Portland, Oregon.
@Misc{bucher2024,
author = {Bucher, Elmar},
title = {elmbeech/mistkit: python3 based qiskit quantum computing language state_drawer function misty state output extension.},
year = {2024},
copyright = {Open Access},
doi = {10.5281/zenodo.13972868}
publisher = {Zenodo},
}
- ~
- version 0.1.1 ok implementation.
- version 0.0.0 miskit rises from the ashes.
All we know is falling.