@@ -219,12 +219,13 @@ def _circuit_diagram_info_(
219
219
220
220
def _qasm_ (self , args : 'cirq.QasmArgs' , qubits : Tuple ['cirq.Qid' , ...]) -> Optional [str ]:
221
221
args .validate_version ('2.0' )
222
- if self ._exponent == 1 and self ._global_shift != - 0.5 :
223
- return args .format ('x {0};\n ' , qubits [0 ])
224
- elif self ._exponent == 0.5 :
225
- return args .format ('sx {0};\n ' , qubits [0 ])
226
- elif self ._exponent == - 0.5 :
227
- return args .format ('sxdg {0};\n ' , qubits [0 ])
222
+ if self ._global_shift == 0 :
223
+ if self ._exponent == 1 :
224
+ return args .format ('x {0};\n ' , qubits [0 ])
225
+ elif self ._exponent == 0.5 :
226
+ return args .format ('sx {0};\n ' , qubits [0 ])
227
+ elif self ._exponent == - 0.5 :
228
+ return args .format ('sxdg {0};\n ' , qubits [0 ])
228
229
return args .format ('rx({0:half_turns}) {1};\n ' , self ._exponent , qubits [0 ])
229
230
230
231
def _quil_ (
@@ -308,6 +309,10 @@ def __str__(self) -> str:
308
309
def __repr__ (self ) -> str :
309
310
return f'cirq.Rx(rads={ proper_repr (self ._rads )} )'
310
311
312
+ def _qasm_ (self , args : 'cirq.QasmArgs' , qubits : Tuple ['cirq.Qid' , ...]) -> Optional [str ]:
313
+ args .validate_version ('2.0' )
314
+ return args .format ('rx({0:half_turns}) {1};\n ' , self ._exponent , qubits [0 ])
315
+
311
316
def _json_dict_ (self ) -> Dict [str , Any ]:
312
317
return {'rads' : self ._rads }
313
318
@@ -480,6 +485,10 @@ def __str__(self) -> str:
480
485
def __repr__ (self ) -> str :
481
486
return f'cirq.Ry(rads={ proper_repr (self ._rads )} )'
482
487
488
+ def _qasm_ (self , args : 'cirq.QasmArgs' , qubits : Tuple ['cirq.Qid' , ...]) -> Optional [str ]:
489
+ args .validate_version ('2.0' )
490
+ return args .format ('ry({0:half_turns}) {1};\n ' , self ._exponent , qubits [0 ])
491
+
483
492
def _json_dict_ (self ) -> Dict [str , Any ]:
484
493
return {'rads' : self ._rads }
485
494
@@ -654,13 +663,18 @@ def _circuit_diagram_info_(
654
663
655
664
def _qasm_ (self , args : 'cirq.QasmArgs' , qubits : Tuple ['cirq.Qid' , ...]) -> Optional [str ]:
656
665
args .validate_version ('2.0' )
657
- if self ._exponent == 1 and self .global_shift != - 0.5 :
658
- return args .format ('z {0};\n ' , qubits [0 ])
659
- elif self ._exponent == 0.5 :
660
- return args .format ('s {0};\n ' , qubits [0 ])
661
- elif self ._exponent == - 0.5 :
662
- return args .format ('sdg {0};\n ' , qubits [0 ])
663
666
667
+ if self .global_shift == 0 :
668
+ if self ._exponent == 1 :
669
+ return args .format ('z {0};\n ' , qubits [0 ])
670
+ elif self ._exponent == 0.5 :
671
+ return args .format ('s {0};\n ' , qubits [0 ])
672
+ elif self ._exponent == - 0.5 :
673
+ return args .format ('sdg {0};\n ' , qubits [0 ])
674
+ elif self ._exponent == 0.25 :
675
+ return args .format ('t {0};\n ' , qubits [0 ])
676
+ elif self ._exponent == - 0.25 :
677
+ return args .format ('tdg {0};\n ' , qubits [0 ])
664
678
return args .format ('rz({0:half_turns}) {1};\n ' , self ._exponent , qubits [0 ])
665
679
666
680
def _quil_ (
@@ -756,6 +770,10 @@ def __str__(self) -> str:
756
770
def __repr__ (self ) -> str :
757
771
return f'cirq.Rz(rads={ proper_repr (self ._rads )} )'
758
772
773
+ def _qasm_ (self , args : 'cirq.QasmArgs' , qubits : Tuple ['cirq.Qid' , ...]) -> Optional [str ]:
774
+ args .validate_version ('2.0' )
775
+ return args .format ('rz({0:half_turns}) {1};\n ' , self ._exponent , qubits [0 ])
776
+
759
777
def _json_dict_ (self ) -> Dict [str , Any ]:
760
778
return {'rads' : self ._rads }
761
779
@@ -860,7 +878,9 @@ def _circuit_diagram_info_(
860
878
861
879
def _qasm_ (self , args : 'cirq.QasmArgs' , qubits : Tuple ['cirq.Qid' , ...]) -> Optional [str ]:
862
880
args .validate_version ('2.0' )
863
- if self ._exponent == 1 :
881
+ if self ._exponent == 0 :
882
+ return args .format ('id {0};\n ' , qubits [0 ])
883
+ elif self ._exponent == 1 and self ._global_shift == 0 :
864
884
return args .format ('h {0};\n ' , qubits [0 ])
865
885
866
886
return args .format (
0 commit comments