qml.debug_probs

debug_probs(wires=None, op=None)[source]

Compute the probability distribution for the state at the current point in the quantum circuit.

Debugging measurements do not alter the state, it remains the same until the next operation in the circuit.

Parameters
  • wires (Union[Iterable, int, str, list]) – the wires the operation acts on

  • op (Union[Observable, MeasurementValue]) – observable (with a diagonalizing_gates attribute) that rotates the computational basis, or a MeasurementValue corresponding to mid-circuit measurements.

Returns

the probability distribution of the bitstrings for the wires

Return type

Array(float)

Example

While in a “debugging context”, we can query the probability distribution as we would at the end of a circuit.

dev = qml.device("default.qubit", wires=2)

@qml.qnode(dev)
def circuit(x):
    qml.RX(x, wires=0)
    qml.Hadamard(wires=1)

    qml.breakpoint()

    qml.CNOT(wires=[0, 1])
    return qml.state()

circuit(1.23)

Running the above python script opens up the interactive [pldb] prompt in the terminal. We can query the probability distribution:

[pldb] longlist
  4     @qml.qnode(dev)
  5     def circuit(x):
  6         qml.RX(x, wires=0)
  7         qml.Hadamard(wires=1)
  8
  9         qml.breakpoint()
 10
 11  ->     qml.CNOT(wires=[0, 1])
 12         return qml.state()
[pldb] qml.debug_probs()
array([0.33355943, 0.33355943, 0.16644057, 0.16644057])

Contents

Using PennyLane

Release news

Development

API

Internals