qrisp.jasp.Jaspr.inverse#

Jaspr.inverse() Jaspr[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:i64[] b:QuantumState. let
#     c:QubitArray d:QuantumState = jasp.create_qubits a b
#     e:Qubit = jasp.get_qubit c 0:i64[]
#     f:Qubit = jasp.get_qubit c 1:i64[]
#     g:QuantumState = jasp.quantum_gate[gate=t_dg] f d
#     h:QuantumState = jasp.quantum_gate[gate=cx] e f g
#   in (c, h) }