Quantum Computation (QCOM) is a Python package originally developed as part of Avi Kaufman’s 2025 honors thesis, and now maintained as an ongoing project for quantum systems research.
QCOM offers a lightweight, extensible toolkit for building model Hamiltonians, evolving states, and analyzing classical/quantum information measures from simulated or experimental bitstring data.
pip install QCOMUpgrade to the latest release:
pip install --upgrade QCOM⸻
✅ Quick check in python
import qcom
print("QCOM version:", qcom.__version__)⸻
-
Hamiltonians
- Exact builders for Rydberg systems (chains/ladders)
- (Growing set) utilities to support additional models
-
Solvers
- Static: thin-spectrum eigen solve, ground-state utilities, dense full spectrum for small systems
- Dynamic: generic time evolution under time-dependent Hamiltonians via matrix exponentials
-
Metrics
- Classical: Shannon entropy, conditional entropy, mutual information
- Quantum: von Neumann entanglement entropy (from state vectors, density matrices, or Hamiltonians)
- Probability tools: cumulative distributions, N(p) diagnostic, statevector → probabilities
-
Data & Noise
- Parse/normalize/sample binary datasets (Plaintext, Parquet, Aquila JSON)
- Readout noise models (bit-flip) and optional mitigation via
mthree
-
I/O
- Save/load in plaintext and Parquet
- Lightweight JSON reader for QuEra Aquila results
-
Developer Ergonomics
ProgressManagerhooks for long tasks- Clear conventions (MSB ↔ site 0), endianness controls where relevant
- Build a ladder Rydberg Hamiltonian and compute its ground-state entropy
- Parse measurement data (e.g., from Aquila) and evaluate mutual information
- Simulate readout error on a probability distribution and apply mitigation
- Sample and merge large bitstring datasets for statistical analysis
Step-by-step notebooks live in the repository:
- Tutorials directory:
https://github.com/AviKaufman/QCOM/tree/main/tutorials
Suggested order:
- I/O basics (text, JSON, Parquet)
- Lattice registers and geometry
- Rydberg Hamiltonians
- Static eigen solvers (ground states)
- Control time series
- Dynamic time evolution
- Data utilities (noise, sampling, mitigation)
- Metrics (classical + entanglement)
From the project root:
pytest
# or restrict to the project tests folder
pytest tests/If you see an “import file mismatch” error, clear caches:
find . -name "__pycache__" -type d -exec rm -rf {} +
find . -name "*.pyc" -delete⸻
📂 Example Data
Curated toy datasets for quick experiments:
⸻
🗺️ Roadmap
- New Hamiltonians: Ising, Heisenberg, and additional lattice models
- Parameter sweeps for large optimization workloads
- Tensor-network methods: DMRG / TEBD for large Hilbert spaces
- Expanded I/O readers and richer plotting presets
Community feedback helps shape priorities—feel free to open issues or PRs.
⸻
🤝 Contributing
We welcome contributions of all sizes: • Bug reports, minimal reproductions • Tests and doc improvements • New examples/tutorials • Feature proposals via GitHub Issues
Repo: https://github.com/AviKaufman/QCOM
⸻
📬 Contact
Avi Kaufman — avigkaufman@gmail.com
⸻
Last updated: December 9, 2025