sdim

A d-dimensional stabilizer circuit simulator

https://github.com/events555/sdim

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 8 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.3%) to scientific vocabulary

Keywords

quantum-computing stabilizer-circuits
Last synced: 7 months ago · JSON representation ·

Repository

A d-dimensional stabilizer circuit simulator

Basic Info
Statistics
  • Stars: 4
  • Watchers: 3
  • Forks: 0
  • Open Issues: 0
  • Releases: 4
Topics
quantum-computing stabilizer-circuits
Created about 2 years ago · Last pushed 7 months ago
Metadata Files
Readme Changelog License Citation

README.md

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 which is a statevector simulation and True-Q™ 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 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.addgate('H', 0) # Hadamard gate on qubit 0 circuit.addgate('CNOT', 0, 1) # CNOT gate with control on qubit 0 and target on qubit 1 circuit.addgate('CNOT', 0, [2, 3]) # Short-hand for multiple target qubits, applies CNOT between 0 -> 2 and 0 -> 3 circuit.addgate('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

[1] 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.

[2] 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.

[3] 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

[4] 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.

[5] Greenberg, H. (1971). Integer Programming. Academic Press. Chapter 6, Sections 2 and 3.

[6] 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

Owner

  • Name: Steven Nguyen
  • Login: events555
  • Kind: user

Citation (CITATION.cff)

cff-version: "1.0.0"
message: "If you use this software, please cite it as below."
authors:
  - family-names: "Nguyen"
    given-names: "Steven"
    orcid: "https://orcid.org/0009-0009-2786-6705"
  - family-names: "Kabir"
    given-names: "Adeeb"
    orcid: "https://orcid.org/0009-0001-1287-5512"
title: "Sdim: A Qudit Stabilizer Simulator"
version: "1.3.0"
date-released: "2025-02-18"

GitHub Events

Total
  • Release event: 2
  • Watch event: 2
  • Delete event: 2
  • Push event: 34
  • Pull request review event: 3
  • Pull request review comment event: 2
  • Pull request event: 4
  • Create event: 4
Last Year
  • Release event: 2
  • Watch event: 2
  • Delete event: 2
  • Push event: 34
  • Pull request review event: 3
  • Pull request review comment event: 2
  • Pull request event: 4
  • Create event: 4

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 0
  • Total pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: 3 days
  • Total issue authors: 0
  • Total pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: 3 days
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • dweebyk (2)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 21 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 3
  • Total maintainers: 2
pypi.org: sdim

A tableau Clifford simulator for qudits

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 21 Last month
Rankings
Dependent packages count: 10.3%
Average: 34.2%
Dependent repos count: 58.1%
Maintainers (2)
Last synced: 7 months ago