qrisp.jasp.Jaspr.inverse#

Jaspr.inverse()[source]#

Returns the inverse Jaspr (if applicable). For Jaspr that contain realtime computations or measurements, the inverse does not exist.

Returns:
Jaspr

The daggered Jaspr.

Examples

We create a simple script and inspect the daggered version:

from qrisp import *
from qrisp.jasp import make_jaspr

def example_function(i):

    qv = QuantumVariable(i)
    cx(qv[0], qv[1])
    t(qv[1])
    return qv

jaspr = make_jaspr(example_function)(2)

print(jaspr.inverse())
# Yields
# { lambda ; a:QuantumCircuit b:i32[]. let
#     c:QuantumCircuit d:QubitArray = create_qubits a b
#     e:Qubit = get_qubit d 0
#     f:Qubit = get_qubit d 1
#     g:QuantumCircuit = t_dg c f
#     h:QuantumCircuit = cx g e f
#   in (h, d) }