Enhanced quantum circuit execution results with comprehensive result types.
This namespace provides a systematic way to extract different types of results from quantum circuit executions, supporting both hardware and simulation backends with QASM 3 and Amazon Braket compatible result types.
Design Philosophy:
Result Types Supported:
Future Extensions:
The result specification format is flexible, allowing users to request multiple result types in a single execution. Each result type is extracted using dedicated functions that utilize existing domain logic, ensuring consistency and maintainability.
Example Result Spec:
{:measurements {:shots 1000 :qubits [0 1]}
:expectation {:observables [obs/pauli-z obs/pauli-x] :targets [0]}
:variance {:observables [obs/pauli-z] :targets [0]}
:hamiltonian my-hamiltonian
:probabilities {:targets [[1 0] [0 1]] :qubits [0 1]}
:amplitudes {:basis-states [0 1 2 3]}
:state-vector true
:density-matrix true
:fidelity {:references [|0⟩ |1⟩]}
:sample {:observables [obs/pauli-z] :shots 1000 :targets [0]}
Enhanced quantum circuit execution results with comprehensive result types. This namespace provides a systematic way to extract different types of results from quantum circuit executions, supporting both hardware and simulation backends with QASM 3 and Amazon Braket compatible result types. Design Philosophy: - Leverage existing functions from state, observables, and hamiltonian namespaces - Support QASM 3.0 and Amazon Braket result type specifications - Provide both simulation-only and hardware-compatible result types - Enable systematic extraction without code duplication Result Types Supported: - Measurement results (sample outcomes and probabilities) - Expectation values for observables - Variance values for observables - Hamiltonian energy measurements - Probability distributions for specific basis states - Amplitude extraction for basis states - Complete state vector (simulation only) - Density matrix representation (simulation only) - Fidelity measurements against reference states - Sample results for observables (hardware measurement simulation) Future Extensions: - Adjoint gradient computations (for parameterized circuits) (TODO) The result specification format is flexible, allowing users to request multiple result types in a single execution. Each result type is extracted using dedicated functions that utilize existing domain logic, ensuring consistency and maintainability. Example Result Spec: {:measurements {:shots 1000 :qubits [0 1]} :expectation {:observables [obs/pauli-z obs/pauli-x] :targets [0]} :variance {:observables [obs/pauli-z] :targets [0]} :hamiltonian my-hamiltonian :probabilities {:targets [[1 0] [0 1]] :qubits [0 1]} :amplitudes {:basis-states [0 1 2 3]} :state-vector true :density-matrix true :fidelity {:references [|0⟩ |1⟩]} :sample {:observables [obs/pauli-z] :shots 1000 :targets [0]}
(calculate-approximation-ratio qaoa-solution classical-optimum problem-type)
Calculate approximation ratio for optimization problems.
Parameters:
Returns: Approximation ratio (for maximization: qaoa/classical, for minimization: classical/qaoa)
Calculate approximation ratio for optimization problems. Parameters: - qaoa-solution: Solution value from QAOA - classical-optimum: Known or estimated classical optimum - problem-type: Type of problem (:max-cut, :max-sat, :tsp) Returns: Approximation ratio (for maximization: qaoa/classical, for minimization: classical/qaoa)
(decode-max-cut-solution index num-qubits graph)
Decode measurement outcomes for MaxCut problem.
Parameters:
Returns: Map with decoded MaxCut solution information
Decode measurement outcomes for MaxCut problem. Parameters: - index: Integer index from measurement - num-qubits: Number of qubits to determine bit vector length - graph: Collection of edges as [vertex1 vertex2 weight] tuples Returns: Map with decoded MaxCut solution information
(decode-max-sat-solution index num-qubits clauses)
Decode measurement outcomes for MaxSAT problem.
Parameters:
Returns: Map with decoded MaxSAT solution information
Decode measurement outcomes for MaxSAT problem. Parameters: - index: Integer index from measurement - num-qubits: Number of qubits to determine bit vector length - clauses: Collection of Boolean clauses Returns: Map with decoded MaxSAT solution information
(decode-tsp-solution index num-qubits distance-matrix)
Decode measurement outcomes for TSP problem.
Parameters:
Returns: Map with decoded TSP solution information
Decode measurement outcomes for TSP problem. Parameters: - index: Integer index from measurement - num-qubits: Number of qubits to determine bit vector length (should be n²) - distance-matrix: n×n matrix of distances between cities Returns: Map with decoded TSP solution information
(extract-amplitude-results final-state basis-states)
Extract amplitude results for specific computational basis states.
Leverages: qs/state-vector (direct access to amplitudes)
Parameters:
Returns: Map with complex amplitudes (Braket Amplitude format)
Extract amplitude results for specific computational basis states. Leverages: qs/state-vector (direct access to amplitudes) Parameters: - final-state: Final quantum state after circuit execution - basis-states: Vector of basis state indices to extract amplitudes for Returns: Map with complex amplitudes (Braket Amplitude format)
(extract-approximation-ratio final-state
problem-type
problem-instance
&
{:keys [classical-optimum]})
Extract approximation ratio for QAOA optimization problems.
Parameters:
Returns: Map with approximation ratio analysis
Extract approximation ratio for QAOA optimization problems. Parameters: - final-state: Final quantum state after QAOA execution - problem-type: Type of optimization problem (:max-cut, :max-sat, :tsp) - problem-instance: Problem-specific data (graph, clauses, distance matrix) - classical-optimum: Known classical optimum (optional) Returns: Map with approximation ratio analysis
(extract-best-solution solutions problem-type)
Extract the best solution from a collection of decoded solutions.
Parameters:
Returns: Best solution according to the problem objective
Extract the best solution from a collection of decoded solutions. Parameters: - solutions: Collection of solution maps with objective values - problem-type: Type of problem to determine maximization vs minimization Returns: Best solution according to the problem objective
(extract-density-matrix-result final-state)
Extract density matrix representation (simulation only).
Leverages: qs/density-matrix, qs/trace-one?
Parameters:
Returns: Density matrix representation (Braket style)
Extract density matrix representation (simulation only). Leverages: qs/density-matrix, qs/trace-one? Parameters: - final-state: Final quantum state after circuit execution Returns: Density matrix representation (Braket style)
(extract-expectation-results final-state observables & {:keys [target-qubits]})
Extract expectation value results for observables.
Leverages: obs/expectation-value, obs/tensor-product, obs/identity-op
Parameters:
Returns: Vector of expectation value results (Braket Expectation format)
Extract expectation value results for observables. Leverages: obs/expectation-value, obs/tensor-product, obs/identity-op Parameters: - final-state: Final quantum state after circuit execution - observables: Collection of observables to measure - target-qubits: (optional) Specific qubits for each observable Returns: Vector of expectation value results (Braket Expectation format)
(extract-fidelity-result final-state reference-states)
Extract fidelity between final state and reference states.
Leverages: qs/state-fidelity
Parameters:
Returns: Map with fidelity values for each reference state
Extract fidelity between final state and reference states. Leverages: qs/state-fidelity Parameters: - final-state: Final quantum state after circuit execution - reference-states: Vector of reference states to compare against Returns: Map with fidelity values for each reference state
(extract-hamiltonian-expectation final-state hamiltonian)
Extract expectation value for a Hamiltonian (energy measurement).
Leverages: ham/hamiltonian-expectation, ham/group-commuting-terms
Parameters:
Returns: Map with energy expectation value and measurement optimization info
Extract expectation value for a Hamiltonian (energy measurement). Leverages: ham/hamiltonian-expectation, ham/group-commuting-terms Parameters: - final-state: Final quantum state after circuit execution - hamiltonian: Hamiltonian to measure Returns: Map with energy expectation value and measurement optimization info
(extract-max-cut-solution final-state graph & {:keys [shots] :or {shots 1024}})
Extract MaxCut solution from quantum state measurements.
Parameters:
Returns: Map with MaxCut solution analysis
Extract MaxCut solution from quantum state measurements. Parameters: - final-state: Final quantum state after QAOA execution - graph: Collection of edges as [vertex1 vertex2 weight] tuples - shots: Number of measurement shots (default: 1024) Returns: Map with MaxCut solution analysis
(extract-max-sat-solution final-state
clauses
&
{:keys [shots] :or {shots 1024}})
Extract MaxSAT solution from quantum state measurements.
Parameters:
Returns: Map with MaxSAT solution analysis
Extract MaxSAT solution from quantum state measurements. Parameters: - final-state: Final quantum state after QAOA execution - clauses: Collection of Boolean clauses - shots: Number of measurement shots (default: 1024) Returns: Map with MaxSAT solution analysis
(extract-measurement-results final-state
&
{:keys [measurement-qubits shots] :or {shots 1}})
Extract measurement results from circuit execution using existing state functions.
Leverages: qs/measure-state, qs/measurement-probabilities
Parameters:
Returns: Map with measurement outcomes and probabilities (Braket Sample format)
Extract measurement results from circuit execution using existing state functions. Leverages: qs/measure-state, qs/measurement-probabilities Parameters: - final-state: Final quantum state after circuit execution - measurement-qubits: Qubits that were measured (optional, defaults to all) - shots: Number of measurement shots (default 1) Returns: Map with measurement outcomes and probabilities (Braket Sample format)
(extract-noisy-results base-result result-specs circuit)
Extract comprehensive results from noisy simulation data.
This function processes the raw simulation results and extracts various result types based on the result specifications, similar to the ideal simulator but adapted for noisy hardware simulation with trajectories.
Parameters:
Returns: Map of extracted results based on requested types
Extract comprehensive results from noisy simulation data. This function processes the raw simulation results and extracts various result types based on the result specifications, similar to the ideal simulator but adapted for noisy hardware simulation with trajectories. Parameters: - base-result: Raw simulation result from hardware simulator - result-specs: Map specifying what types of results to extract - circuit: Original circuit for context Returns: Map of extracted results based on requested types
(extract-probability-results final-state
&
{:keys [target-qubits target-states]})
Extract probability results for specific computational basis states.
Leverages: qs/probability, qs/measurement-probabilities
Parameters:
Returns: Map with probabilities (Braket Probability format)
Extract probability results for specific computational basis states. Leverages: qs/probability, qs/measurement-probabilities Parameters: - final-state: Final quantum state after circuit execution - target-qubits: (optional) Specific qubits to measure (defaults to all) - target-states: (optional) Specific target basis state indices or bit patterns Returns: Map with probabilities (Braket Probability format)
(extract-results result result-specs)
Extract specified results from the final quantum state after circuit execution.
Parameters:
Result specs format (all optional):
{:measurements {:shots 1000 :qubits [0 1]}
:expectation {:observables [pauli-z pauli-x] :targets [0]}
:variance {:observables [pauli-z] :targets [0]}
:hamiltonian my-hamiltonian
:probabilities {:targets [[1 0] [0 1]] :qubits [0 1]}
:amplitudes {:basis-states [0 1 2 3]}
:state-vector true
:density-matrix true
:fidelity {:references [|0⟩ |1⟩]}
:sample {:observables [pauli-z] :shots 1000 :targets [0]}}
Returns: Map of extracted results based on requested types
Extract specified results from the final quantum state after circuit execution. Parameters: - result: Result map containing :final-state (the final quantum state after executinga circuit) - result-specs: Map specifying which results to extract Result specs format (all optional): {:measurements {:shots 1000 :qubits [0 1]} :expectation {:observables [pauli-z pauli-x] :targets [0]} :variance {:observables [pauli-z] :targets [0]} :hamiltonian my-hamiltonian :probabilities {:targets [[1 0] [0 1]] :qubits [0 1]} :amplitudes {:basis-states [0 1 2 3]} :state-vector true :density-matrix true :fidelity {:references [|0⟩ |1⟩]} :sample {:observables [pauli-z] :shots 1000 :targets [0]}} Returns: Map of extracted results based on requested types
(extract-sample-results final-state observables shots & {:keys [target-qubits]})
Extract sample results for observables (hardware measurement simulation).
Leverages: obs/measurement-probabilities, simulated sampling
Parameters:
Returns: Vector of sample results (Braket Sample format)
Extract sample results for observables (hardware measurement simulation). Leverages: obs/measurement-probabilities, simulated sampling Parameters: - final-state: Final quantum state after circuit execution - observables: Collection of observables to sample - shots: Number of measurement shots - target-qubits: (optional) Specific qubits for each observable Returns: Vector of sample results (Braket Sample format)
(extract-solution-distribution final-state
problem-type
problem-instance
&
{:keys [top-solutions shots]
:or {top-solutions 10 shots 1024}})
Extract distribution of solution candidates from quantum measurements.
Parameters:
Returns: Map with solution distribution analysis
Extract distribution of solution candidates from quantum measurements. Parameters: - final-state: Final quantum state after QAOA execution - problem-type: Type of optimization problem - problem-instance: Problem-specific data - top-solutions: Number of top solutions to include (default: 10) - shots: Number of measurement shots (default: 1024) Returns: Map with solution distribution analysis
(extract-state-vector-result final-state)
Extract complete state vector (simulation only).
Leverages: qs/state-vector, qs/basis-labels
Parameters:
Returns: Complete state vector representation (Braket StateVector format)
Extract complete state vector (simulation only). Leverages: qs/state-vector, qs/basis-labels Parameters: - final-state: Final quantum state after circuit execution Returns: Complete state vector representation (Braket StateVector format)
(extract-tsp-solution final-state
distance-matrix
&
{:keys [shots] :or {shots 1024}})
Extract TSP solution from quantum state measurements.
Parameters:
Returns: Map with TSP solution analysis
Extract TSP solution from quantum state measurements. Parameters: - final-state: Final quantum state after QAOA execution - distance-matrix: n×n matrix of distances between cities - shots: Number of measurement shots (default: 1024) Returns: Map with TSP solution analysis
(extract-variance-results final-state observables & {:keys [target-qubits]})
Extract variance results for observables.
Leverages: obs/variance
Parameters:
Returns: Vector of variance results (Braket Variance format)
Extract variance results for observables. Leverages: obs/variance Parameters: - final-state: Final quantum state after circuit execution - observables: Collection of observables to measure - target-qubits: (optional) Specific qubits for each observable Returns: Vector of variance results (Braket Variance format)
(process-measurement-statistics final-state shots)
Extract and process measurement statistics from quantum state.
Common helper function for QAOA algorithms to extract measurement data using indices directly (no bitstring conversion).
Parameters:
Returns: Vector of [index count probability] tuples
Extract and process measurement statistics from quantum state. Common helper function for QAOA algorithms to extract measurement data using indices directly (no bitstring conversion). Parameters: - final-state: Final quantum state after QAOA execution - shots: Number of measurement shots Returns: Vector of [index count probability] tuples
(process-qaoa-solutions final-state decode-fn shots objective-key)
Process QAOA measurement data into solution analysis.
Common helper that converts measurement statistics into analyzed solutions with decoded problem-specific information.
Parameters:
Returns: Vector of solution analyses with :index, :count, :probability, and decoded data
Process QAOA measurement data into solution analysis. Common helper that converts measurement statistics into analyzed solutions with decoded problem-specific information. Parameters: - final-state: Final quantum state after QAOA execution - decode-fn: Function to decode index and num-qubits to problem solution - shots: Number of measurement shots - objective-key: Key to extract objective value from decoded solution Returns: Vector of solution analyses with :index, :count, :probability, and decoded data
(summarize-results results)
Create a human-readable summary of execution results.
Create a human-readable summary of execution results.
cljdoc builds & hosts documentation for Clojure/Script libraries
Ctrl+k | Jump to recent docs |
← | Move to previous article |
→ | Move to next article |
Ctrl+/ | Jump to the search field |