# Qiskit GridSynth plugin
This package integrates angle decomposition with ``gridsynth`` [1] into the ``qiskit`` [2]
software stack, facilitating efficient transpilation to the Clifford+T gate set.
## Installation
Install via pip:
```
pip install qiskit_gridsynth_plugin
```
## Example Usage
Read a circuit from a qasm file `circ.qasm`, transpile to Clifford+T, and write the result to ``out.qasm``
```
from qiskit import QuantumCircuit
from qiskit_gridsynth_plugin.decompose import clifford_t_transpile
circ = QuantumCircuit.from_qasm_file('circ.qasm')
decomposed = clifford_t_transpile(circ, approx_exp=-4)
qiskit.qasm2.dump(decomposed, "out.qasm")
```
Include ``gridsynth`` angle decomposition as part of a qiskit compilation pipeline that also cancels out back-to-back CNOT gates.
```
from qiskit.circuit.library.standard_gates import CXGate
from qiskit.transpiler import PassManager
from qiskit.transpiler.passes import InverseCancellation
from qiskit_gridsynth_plugin.decompose import GridSynth
circ = QuantumCircuit.from_qasm_file('circ.qasm')
pm = PassManager(InverseCancellation([CXGate()]), GridSynth(-4))
decomposed = pm.run(circ)
```
## References
[1] N. J. Ross and P. Selinger, "Optimal ancilla-free Clifford+T approximation of z-rotations", arXiv:1403.2975 \
[2] https://www.ibm.com/quantum/qiskit
Raw data
{
"_id": null,
"home_page": null,
"name": "qiskit-gridsynth-plugin",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "qiskit, quantum circuit, quantum computing, quantum, fault tolerant quantum computing",
"author": null,
"author_email": "Abtin Molavi <amolavi@wisc.edu>",
"download_url": "https://files.pythonhosted.org/packages/a6/1a/0f235a14a3982b9c2222ece88585b2baf59547623baeb11986a829a4a3a7/qiskit_gridsynth_plugin-0.0.5.tar.gz",
"platform": null,
"description": "# Qiskit GridSynth plugin\n\nThis package integrates angle decomposition with ``gridsynth`` [1] into the ``qiskit`` [2]\nsoftware stack, facilitating efficient transpilation to the Clifford+T gate set.\n\n## Installation \nInstall via pip:\n```\npip install qiskit_gridsynth_plugin\n```\n\n## Example Usage\nRead a circuit from a qasm file `circ.qasm`, transpile to Clifford+T, and write the result to ``out.qasm``\n```\nfrom qiskit import QuantumCircuit\nfrom qiskit_gridsynth_plugin.decompose import clifford_t_transpile\ncirc = QuantumCircuit.from_qasm_file('circ.qasm')\ndecomposed = clifford_t_transpile(circ, approx_exp=-4)\nqiskit.qasm2.dump(decomposed, \"out.qasm\")\n```\nInclude ``gridsynth`` angle decomposition as part of a qiskit compilation pipeline that also cancels out back-to-back CNOT gates.\n\n```\nfrom qiskit.circuit.library.standard_gates import CXGate\nfrom qiskit.transpiler import PassManager\nfrom qiskit.transpiler.passes import InverseCancellation\nfrom qiskit_gridsynth_plugin.decompose import GridSynth\ncirc = QuantumCircuit.from_qasm_file('circ.qasm')\npm = PassManager(InverseCancellation([CXGate()]), GridSynth(-4))\ndecomposed = pm.run(circ)\n```\n\n\n## References\n[1] N. J. Ross and P. Selinger, \"Optimal ancilla-free Clifford+T approximation of z-rotations\", arXiv:1403.2975 \\\n[2] https://www.ibm.com/quantum/qiskit\n",
"bugtrack_url": null,
"license": null,
"summary": "A small package for integrating gridsynth angle decomposition into qiskit.",
"version": "0.0.5",
"project_urls": null,
"split_keywords": [
"qiskit",
" quantum circuit",
" quantum computing",
" quantum",
" fault tolerant quantum computing"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a680c57fba9b13159e318dcbb19dcf0459052c264004b3bdae02a65539309633",
"md5": "17294fbc977e6a0c69e9ef566640c169",
"sha256": "1114b48a16abb1481fa400a024146607c0eebbffcff10d0017aca5254fe63754"
},
"downloads": -1,
"filename": "qiskit_gridsynth_plugin-0.0.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "17294fbc977e6a0c69e9ef566640c169",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 4395321,
"upload_time": "2024-08-07T15:33:52",
"upload_time_iso_8601": "2024-08-07T15:33:52.566781Z",
"url": "https://files.pythonhosted.org/packages/a6/80/c57fba9b13159e318dcbb19dcf0459052c264004b3bdae02a65539309633/qiskit_gridsynth_plugin-0.0.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a61a0f235a14a3982b9c2222ece88585b2baf59547623baeb11986a829a4a3a7",
"md5": "38a3f81a3daf1068a491cfb7a45021b5",
"sha256": "72df21c2a14d08c16efb61ea8e7cdf492eb8df9c159cf23124c73ee0773df54a"
},
"downloads": -1,
"filename": "qiskit_gridsynth_plugin-0.0.5.tar.gz",
"has_sig": false,
"md5_digest": "38a3f81a3daf1068a491cfb7a45021b5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 4354642,
"upload_time": "2024-08-07T15:33:55",
"upload_time_iso_8601": "2024-08-07T15:33:55.268799Z",
"url": "https://files.pythonhosted.org/packages/a6/1a/0f235a14a3982b9c2222ece88585b2baf59547623baeb11986a829a4a3a7/qiskit_gridsynth_plugin-0.0.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-07 15:33:55",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "qiskit-gridsynth-plugin"
}