Qx.Draw.SVG.Circuit (Qx - Quantum Computing Simulator v0.5.0)
View SourceSVG rendering of quantum circuit diagrams.
This module provides sophisticated SVG-based circuit visualization with:
- Publication-quality IEEE-style gate notation
- Support for all common quantum gates
- Automatic gate layout with collision avoidance
- Multi-qubit gates (CNOT, CZ, Toffoli)
- Measurement operations with classical bit connections
- Conditional gates (classical feedback)
- Parametric gates with π-notation
- Barrier markers for circuit organization
Circuit Diagram Features
- Single-qubit gates: H, X, Y, Z, S, T, RX, RY, RZ, Phase
- Multi-qubit gates: CNOT (CX), Controlled-Z (CZ), Toffoli (CCX)
- Measurements: With visual connection to classical registers
- Conditionals: Gates controlled by classical bit values
- Barriers: Visual separators for circuit sections
Internal Module
This module is part of the Qx.Draw refactoring and should be accessed
through the public Qx.Draw API rather than directly.
Summary
Functions
Renders a quantum circuit as an SVG diagram.
Functions
Renders a quantum circuit as an SVG diagram.
Parameters
circuit-Qx.QuantumCircuitstruct to visualizetitle- Optional circuit title (default:nil)
Returns
SVG string representing the complete circuit diagram.
Validation
Raises ArgumentError if:
- Circuit exceeds 20 qubits
- Invalid gate types are present
- Qubit or classical bit indices are out of range
Examples
circuit = Qx.QuantumCircuit.new(2, 2)
|> Qx.Operations.h(0)
|> Qx.Operations.cx(0, 1)
svg = Qx.Draw.SVG.Circuit.render(circuit, "Bell State")
File.write!("bell_circuit.svg", svg)