sdim


Namesdim JSON
Version 1.1.0 PyPI version JSON
download
home_pageNone
SummaryA tableau Clifford simulator for qudits
upload_time2024-09-19 20:41:41
maintainerNone
docs_urlNone
authorSteven Nguyen
requires_python<4.0,>=3.7
licenseGPL-3.0-or-later
keywords quantum computing clifford simulator qudits
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # sdim

## Project Overview

Despite the growing research interest in qudits as an alternative way to scale certain quantum architectures, no publicly available stabilizer circuit simulators for **qudits** (multi-level quantum systems) are available. The two most prominent ones are [Cirq](https://quantumai.google/cirq/build/qudits) which is a statevector simulation and [True-Q™](https://trueq.quantumbenchmark.com/index.html) which is a licensed program.

The following are relevant details for the project:
- Supports **only Clifford** operations. 
- **Prime** dimensions are strongly tested while the "fast" solver for composite dimensions is known to have possible errors
    - The issue lies in math implementation details that can be found inside the [markdown](sdim/tableau/COMPOSITE.md) located in `sdim/tableau`
- Does not currently `.stim` circuit notation, only a variant based on Scott Aaronson's original `.chp`

## Project Installation
You can install the `sdim` Python module directly from PyPI using `pip install sdim`

## How to use sdim?
Take a look at the Python notebooks for an in-depth examples.
```python
from sdim import Circuit, Program

# Create a new quantum circuit
circuit = Circuit(4, 2) # Create a circuit with 4 qubits and dimension 2

# Add gates to the circuit
circuit.add_gate('H', 0)  # Hadamard gate on qubit 0
circuit.add_gate('CNOT', 0, 1)  # CNOT gate with control on qubit 0 and target on qubit 1
circuit.add_gate('CNOT', 0, [2, 3]) # Short-hand for multiple target qubits, applies CNOT between 0 -> 2 and 0 -> 3
circuit.add_gate('MEASURE', [0, 1, 2, 3]) # Short-hand for multiple single-qubit gates

# Create a program and add the circuit
program = Program(circuit) # Must be given an initial circuit as a constructor argument

# Execute the program
result = program.simulate(show_measurement=True) # Runs the program and prints the measurement results. Also returns the results as a list of MeasurementResult objects.
```

## Primary References
<a id="1">[1]
</a> Aaronson, Scott, and Daniel Gottesman. “Improved Simulation of Stabilizer Circuits.” Physical Review A, vol. 70, no. 5, Nov. 2004, p. 052328. arXiv.org, https://doi.org/10.1103/PhysRevA.70.052328.

<a id="2">[2]
</a>de Beaudrap, Niel. “A Linearized Stabilizer Formalism for Systems of Finite Dimension.” Quantum Information and Computation, vol. 13, no. 1 & 2, Jan. 2013, pp. 73–115. arXiv.org, https://doi.org/10.26421/QIC13.1-2-6.

<a id="3">[3]
</a>Gottesman, Daniel. “Fault-Tolerant Quantum Computation with Higher-Dimensional Systems.” Chaos, Solitons & Fractals, vol. 10, no. 10, Sept. 1999, pp. 1749–58. arXiv.org, https://doi.org/10.1016/S0960-0779(98)00218-5.

## Secondary References

<a id="1a">[4]
</a>Farinholt, J. M. “An Ideal Characterization of the Clifford Operators.” Journal of Physics A: Mathematical and Theoretical, vol. 47, no. 30, Aug. 2014, p. 305303. arXiv.org, https://doi.org/10.1088/1751-8113/47/30/305303.

<a id="2a">[5]
</a>Greenberg, H. (1971). *Integer Programming*. Academic Press. Chapter 6, Sections 2 and 3.

<a id="3a">[6]
</a>Extended gcd and Hermite normal form algorithms via lattice basis reduction, G. Havas, B.S. Majewski, K.R. Matthews, Experimental Mathematics, Vol 7 (1998) 125-136



            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "sdim",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.7",
    "maintainer_email": null,
    "keywords": "quantum computing, Clifford simulator, qudits",
    "author": "Steven Nguyen",
    "author_email": "steven.n.nguyen@rutgers.edu",
    "download_url": "https://files.pythonhosted.org/packages/4d/ef/fbf58a4d223303cff52d8c57659f8f3d0211a7d4a9ada8f4234945dcb89e/sdim-1.1.0.tar.gz",
    "platform": null,
    "description": "# sdim\n\n## Project Overview\n\nDespite the growing research interest in qudits as an alternative way to scale certain quantum architectures, no publicly available stabilizer circuit simulators for **qudits** (multi-level quantum systems) are available. The two most prominent ones are [Cirq](https://quantumai.google/cirq/build/qudits) which is a statevector simulation and [True-Q\u2122](https://trueq.quantumbenchmark.com/index.html) which is a licensed program.\n\nThe following are relevant details for the project:\n- Supports **only Clifford** operations. \n- **Prime** dimensions are strongly tested while the \"fast\" solver for composite dimensions is known to have possible errors\n    - The issue lies in math implementation details that can be found inside the [markdown](sdim/tableau/COMPOSITE.md) located in `sdim/tableau`\n- Does not currently `.stim` circuit notation, only a variant based on Scott Aaronson's original `.chp`\n\n## Project Installation\nYou can install the `sdim` Python module directly from PyPI using `pip install sdim`\n\n## How to use sdim?\nTake a look at the Python notebooks for an in-depth examples.\n```python\nfrom sdim import Circuit, Program\n\n# Create a new quantum circuit\ncircuit = Circuit(4, 2) # Create a circuit with 4 qubits and dimension 2\n\n# Add gates to the circuit\ncircuit.add_gate('H', 0)  # Hadamard gate on qubit 0\ncircuit.add_gate('CNOT', 0, 1)  # CNOT gate with control on qubit 0 and target on qubit 1\ncircuit.add_gate('CNOT', 0, [2, 3]) # Short-hand for multiple target qubits, applies CNOT between 0 -> 2 and 0 -> 3\ncircuit.add_gate('MEASURE', [0, 1, 2, 3]) # Short-hand for multiple single-qubit gates\n\n# Create a program and add the circuit\nprogram = Program(circuit) # Must be given an initial circuit as a constructor argument\n\n# Execute the program\nresult = program.simulate(show_measurement=True) # Runs the program and prints the measurement results. Also returns the results as a list of MeasurementResult objects.\n```\n\n## Primary References\n<a id=\"1\">[1]\n</a> Aaronson, Scott, and Daniel Gottesman. \u201cImproved Simulation of Stabilizer Circuits.\u201d Physical Review A, vol. 70, no. 5, Nov. 2004, p. 052328. arXiv.org, https://doi.org/10.1103/PhysRevA.70.052328.\n\n<a id=\"2\">[2]\n</a>de Beaudrap, Niel. \u201cA Linearized Stabilizer Formalism for Systems of Finite Dimension.\u201d Quantum Information and Computation, vol. 13, no. 1 & 2, Jan. 2013, pp. 73\u2013115. arXiv.org, https://doi.org/10.26421/QIC13.1-2-6.\n\n<a id=\"3\">[3]\n</a>Gottesman, Daniel. \u201cFault-Tolerant Quantum Computation with Higher-Dimensional Systems.\u201d Chaos, Solitons & Fractals, vol. 10, no. 10, Sept. 1999, pp. 1749\u201358. arXiv.org, https://doi.org/10.1016/S0960-0779(98)00218-5.\n\n## Secondary References\n\n<a id=\"1a\">[4]\n</a>Farinholt, J. M. \u201cAn Ideal Characterization of the Clifford Operators.\u201d Journal of Physics A: Mathematical and Theoretical, vol. 47, no. 30, Aug. 2014, p. 305303. arXiv.org, https://doi.org/10.1088/1751-8113/47/30/305303.\n\n<a id=\"2a\">[5]\n</a>Greenberg, H. (1971). *Integer Programming*. Academic Press. Chapter 6, Sections 2 and 3.\n\n<a id=\"3a\">[6]\n</a>Extended gcd and Hermite normal form algorithms via lattice basis reduction, G. Havas, B.S. Majewski, K.R. Matthews, Experimental Mathematics, Vol 7 (1998) 125-136\n\n\n",
    "bugtrack_url": null,
    "license": "GPL-3.0-or-later",
    "summary": "A tableau Clifford simulator for qudits",
    "version": "1.1.0",
    "project_urls": {
        "Documentation": "https://events555.github.io/sdim/sdim.html",
        "Homepage": "https://events555.github.io/sdim/sdim.html",
        "Repository": "https://github.com/events555/sdim"
    },
    "split_keywords": [
        "quantum computing",
        " clifford simulator",
        " qudits"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "732f2c48d30ff339a1501d791bcea0a78c515c7de670edff0076ee921db33df9",
                "md5": "23a451c02d43f6f2b00bf10d71dac1da",
                "sha256": "72d825f20957a3977fcbdfde656a854aaf5ac1613bf627ec138cfb492ceeeb50"
            },
            "downloads": -1,
            "filename": "sdim-1.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "23a451c02d43f6f2b00bf10d71dac1da",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.7",
            "size": 48575,
            "upload_time": "2024-09-19T20:41:39",
            "upload_time_iso_8601": "2024-09-19T20:41:39.667324Z",
            "url": "https://files.pythonhosted.org/packages/73/2f/2c48d30ff339a1501d791bcea0a78c515c7de670edff0076ee921db33df9/sdim-1.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4deffbf58a4d223303cff52d8c57659f8f3d0211a7d4a9ada8f4234945dcb89e",
                "md5": "adb867eb295e003db35dce2d51a48651",
                "sha256": "5904b6c3291671ba9663ecb64e82c08961d7d17f55b932160ee716140639d791"
            },
            "downloads": -1,
            "filename": "sdim-1.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "adb867eb295e003db35dce2d51a48651",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.7",
            "size": 44702,
            "upload_time": "2024-09-19T20:41:41",
            "upload_time_iso_8601": "2024-09-19T20:41:41.493930Z",
            "url": "https://files.pythonhosted.org/packages/4d/ef/fbf58a4d223303cff52d8c57659f8f3d0211a7d4a9ada8f4234945dcb89e/sdim-1.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-19 20:41:41",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "events555",
    "github_project": "sdim",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "sdim"
}
        
Elapsed time: 0.44663s