Skip to content

Commit

Permalink
Attempting to integrate transforms with execution
Browse files Browse the repository at this point in the history
  • Loading branch information
mudit2812 committed Jan 31, 2025
1 parent 0569313 commit 7eeac8e
Showing 1 changed file with 10 additions and 3 deletions.
13 changes: 10 additions & 3 deletions pennylane/transforms/core/transform_dispatcher.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ def processing_fn(results):

if isinstance(obj, qml.QNode):
if qml.capture.enabled():
return self._capture_callable_transform(obj, targs, tkwargs)
return self._capture_qnode_transform(obj, targs, tkwargs)
return self._qnode_transform(obj, targs, tkwargs)

if isinstance(obj, qml.devices.Device):
Expand All @@ -173,7 +173,7 @@ def processing_fn(results):

if callable(obj):
if qml.capture.enabled():
return self._capture_callable_transform(obj, targs, tkwargs)
return self._capture_qfunc_transform(obj, targs, tkwargs)
return self._qfunc_transform(obj, targs, tkwargs)

if isinstance(obj, Sequence) and all(isinstance(q, qml.tape.QuantumScript) for q in obj):
Expand Down Expand Up @@ -286,7 +286,14 @@ def default_qnode_transform(self, qnode, targs, tkwargs):
)
return qnode

def _capture_callable_transform(self, qfunc, targs, tkwargs):
def _capture_qnode_transform(self, qnode, targs, tkwargs):
# qfunc = qnode.func
# transformed_qfunc = self._capture_qfunc_transform(qfunc, targs, tkwargs)
# return qnode.update(func=transformed_qfunc)
qnode = self.default_qnode_transform(qnode, targs, tkwargs)
return self._capture_qfunc_transform(qnode, targs, tkwargs)

def _capture_qfunc_transform(self, qfunc, targs, tkwargs):
"""Apply the transform on a quantum function when program capture is enabled"""

@functools.wraps(qfunc)
Expand Down

0 comments on commit 7eeac8e

Please sign in to comment.