77from pyqrack import Pauli
88from bloqade .pyqrack import PyQrackQubit
99from bloqade .pyqrack .base import PyQrackInterpreter
10- from bloqade .native .dialects import gates
10+ from bloqade .native .dialects import gate
1111
1212
13- @gates .dialect .register (key = "pyqrack" )
13+ @gate .dialect .register (key = "pyqrack" )
1414class NativeMethods (interp .MethodTable ):
1515
16- @interp .impl (gates .CZ )
17- def cz (self , _interp : PyQrackInterpreter , frame : interp .Frame , stmt : gates .CZ ):
18- ctrls = frame .get_casted (stmt .ctrls , ilist .IList [PyQrackQubit , Any ])
19- qargs = frame .get_casted (stmt .qargs , ilist .IList [PyQrackQubit , Any ])
16+ @interp .impl (gate .CZ )
17+ def cz (self , _interp : PyQrackInterpreter , frame : interp .Frame , stmt : gate .CZ ):
18+ ctrls = frame .get_casted (stmt .controls , ilist .IList [PyQrackQubit , Any ])
19+ qargs = frame .get_casted (stmt .targets , ilist .IList [PyQrackQubit , Any ])
2020
2121 for ctrl , qarg in zip (ctrls , qargs ):
2222 if ctrl .is_active () and qarg .is_active ():
2323 ctrl .sim_reg .mcz ([ctrl .addr ], qarg .addr )
2424
2525 return ()
2626
27- @interp .impl (gates .R )
28- def r (self , _interp : PyQrackInterpreter , frame : interp .Frame , stmt : gates .R ):
29- inputs = frame .get_casted (stmt .inputs , ilist .IList [PyQrackQubit , Any ])
27+ @interp .impl (gate .R )
28+ def r (self , _interp : PyQrackInterpreter , frame : interp .Frame , stmt : gate .R ):
29+ inputs = frame .get_casted (stmt .qubits , ilist .IList [PyQrackQubit , Any ])
3030 rotation_angle = 2 * math .pi * frame .get_casted (stmt .rotation_angle , float )
3131 axis_angle = 2 * math .pi * frame .get_casted (stmt .axis_angle , float )
3232 for qubit in inputs :
@@ -37,9 +37,9 @@ def r(self, _interp: PyQrackInterpreter, frame: interp.Frame, stmt: gates.R):
3737
3838 return ()
3939
40- @interp .impl (gates .Rz )
41- def rz (self , _interp : PyQrackInterpreter , frame : interp .Frame , stmt : gates .Rz ):
42- inputs = frame .get_casted (stmt .inputs , ilist .IList [PyQrackQubit , Any ])
40+ @interp .impl (gate .Rz )
41+ def rz (self , _interp : PyQrackInterpreter , frame : interp .Frame , stmt : gate .Rz ):
42+ inputs = frame .get_casted (stmt .qubits , ilist .IList [PyQrackQubit , Any ])
4343 rotation_angle = 2 * math .pi * frame .get_casted (stmt .rotation_angle , float )
4444
4545 for qubit in inputs :
0 commit comments