How songhaotian694-oss/cpp-quantum-circuit-simulator works
This is a small C++ state-vector quantum-circuit simulator, with command-line access to Deutsch’s algorithm and library implementations of Deutsch and Deutsch–Jozsa. The workflow accepts an oracle choice, builds a circuit, simulates its gates on a quantum state, and reports probabilities and the inferred function class. Gate operations are the internal execution layer. The tree documents optimization as a goal, but its optimizer directories contain only placeholders, so no optimizer behavior is mapped.
Main entry points: Simulator.cpp Simulator · Deutsch.cpp Deutsch · main.cpp CLI demo · DeutschJozsa.cpp Deutsch–Jozsa
Components 10
User interface
- CLI demo
app/cli/main.cpp
Quantum algorithms
- Deutsch
src/algorithms/Deutsch.cpp - Deutsch–Jozsa
src/algorithms/DeutschJozsa.cpp
Simulation core
- Circuit
src/core/Circuit.cpp - Gate model
src/core/Gate.cpp - Simulator
src/core/Simulator.cpp - Quantum state
src/core/QuantumState.cpp
Gate operations
- Single-qubit gates
src/gates/SingleQubitGate.cpp - Controlled gates
src/gates/ControlledGate.cpp
Other components
- User
Connections 16
- User → CLI demo: chooses oracle
- CLI demo → Deutsch: calls algorithm
- Deutsch → Circuit: adds gates
- Deutsch → Gate model: creates gates
- Deutsch–Jozsa → Circuit: adds gates
- Deutsch–Jozsa → Gate model: creates gates
- Deutsch → Simulator: runs circuit
- Deutsch–Jozsa → Simulator: runs circuit
- Simulator → Circuit: reads gates
- Simulator → Quantum state: creates state
- Simulator → Single-qubit gates: dispatches gates
- Simulator → Controlled gates: dispatches gates
- Single-qubit gates → Quantum state: mutates amplitudes
- Controlled gates → Quantum state: mutates amplitudes
- Deutsch → CLI demo: returns result
- CLI demo → User: prints result