Liking cljdoc? Tell your friends :D

org.soulspace.qclojure.domain.result

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]}

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]}
raw docstring

calculate-approximation-ratioclj

(calculate-approximation-ratio qaoa-solution classical-optimum problem-type)

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)

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)
sourceraw docstring

decode-max-cut-solutionclj

(decode-max-cut-solution index num-qubits graph)

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 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
sourceraw docstring

decode-max-sat-solutionclj

(decode-max-sat-solution index num-qubits clauses)

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 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
sourceraw docstring

decode-tsp-solutionclj

(decode-tsp-solution index num-qubits distance-matrix)

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

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
sourceraw docstring

extract-amplitude-resultsclj

(extract-amplitude-results final-state basis-states)

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 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)
sourceraw docstring

extract-approximation-ratioclj

(extract-approximation-ratio final-state
                             problem-type
                             problem-instance
                             &
                             {:keys [classical-optimum]})

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 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
sourceraw docstring

extract-best-solutionclj

(extract-best-solution solutions problem-type)

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 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
sourceraw docstring

extract-density-matrix-resultclj

(extract-density-matrix-result final-state)

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 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)
sourceraw docstring

extract-expectation-resultsclj

(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:

  • 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 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)
sourceraw docstring

extract-fidelity-resultclj

(extract-fidelity-result final-state reference-states)

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 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
sourceraw docstring

extract-hamiltonian-expectationclj

(extract-hamiltonian-expectation final-state hamiltonian)

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 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
sourceraw docstring

extract-max-cut-solutionclj

(extract-max-cut-solution final-state graph & {:keys [shots] :or {shots 1024}})

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 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
sourceraw docstring

extract-max-sat-solutionclj

(extract-max-sat-solution final-state
                          clauses
                          &
                          {:keys [shots] :or {shots 1024}})

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 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
sourceraw docstring

extract-measurement-resultsclj

(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:

  • 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 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)
sourceraw docstring

extract-noisy-resultsclj

(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:

  • 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 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
sourceraw docstring

extract-probability-resultsclj

(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:

  • 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 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)
sourceraw docstring

extract-resultsclj

(extract-results result result-specs)

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 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
sourceraw docstring

extract-sample-resultsclj

(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:

  • 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 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)
sourceraw docstring

extract-solution-distributionclj

(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:

  • 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 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
sourceraw docstring

extract-state-vector-resultclj

(extract-state-vector-result final-state)

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 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)
sourceraw docstring

extract-tsp-solutionclj

(extract-tsp-solution final-state
                      distance-matrix
                      &
                      {:keys [shots] :or {shots 1024}})

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 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
sourceraw docstring

extract-variance-resultsclj

(extract-variance-results final-state observables & {:keys [target-qubits]})

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)

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)
sourceraw docstring

process-measurement-statisticsclj

(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:

  • final-state: Final quantum state after QAOA execution
  • shots: Number of measurement shots

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
sourceraw docstring

process-qaoa-solutionsclj

(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:

  • 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

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
sourceraw docstring

summarize-resultsclj

(summarize-results results)

Create a human-readable summary of execution results.

Create a human-readable summary of execution results.
sourceraw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close