generated from amazon-archives/__template_Apache-2.0
-
Notifications
You must be signed in to change notification settings - Fork 161
Open
Description
Describe the feature you'd like
Creating a verbatim box needs target_circuit = Circuit().add_verbatim_box(target_circuit), which is the only instruction with this pattern. There is also is no way to easily remove a verbatim box from a circuit, besides creating a new circuit. This is questionable for partial verbatim boxes as well.
How would this feature be used? Please describe.
- Custom or piece-wise compilation
- Running verbatim on particular simulators (i.e. with noise models)
- Modifying nativized or previously modified circuits
- Simplifying creating verbatim circuits
There are a few options:
- Add self as an argument
target_circuit.add_verbatim_box(), since it is always implied that we have access to the targeted instructions of interest - Simplify the call, potentially to a ;
target_circuit.verbatim()with a flag for removal, or even to target particular ranges of instruction - Add a remove verbatim method, or add a remove flag to a .verbatim method could either (1) remove all verbatim boxes, or (2) remove the k-th box.
Describe alternatives you've considered
Current behavior for a single verbatim:
new = Circuit()
for ins in target_circuit.instructions:
if "verbatim" not in ins.name.lower():
new.add_instruction(ins)
or
from braket.circuis.compiler_directives import StartVerbatimBox, EndVerbatimBox
new = Circuit()
for ins in target_circuit.instructions:
if not isinstance(ins, (StartVerbatimBox, EndVerbatimBox)):
new.add_instruction(ins)
This is okay for removing all boxes, but it is slightly more complicated if you want to remove only a single box.
Additional context
Should require no changes to the existing serialization.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels