@@ -398,6 +398,37 @@ def _phase_flip_channel_deserializer():
398398 args = args )
399399
400400
401+ def _bit_flip_channel_serializer ():
402+ """Make standard serializer for BitFlip channel."""
403+ args = [
404+ # cirq channels can't contain symbols.
405+ cirq .google .SerializingArg (serialized_name = "p" ,
406+ serialized_type = float ,
407+ op_getter = lambda x : x .gate .p ),
408+ cirq .google .SerializingArg (serialized_name = "control_qubits" ,
409+ serialized_type = str ,
410+ op_getter = lambda x : '' ),
411+ cirq .google .SerializingArg (serialized_name = "control_values" ,
412+ serialized_type = str ,
413+ op_getter = lambda x : '' )
414+ ]
415+ return cirq .google .GateOpSerializer (gate_type = cirq .BitFlipChannel ,
416+ serialized_gate_id = "BF" ,
417+ args = args ,
418+ can_serialize_predicate = _CONSTANT_TRUE )
419+
420+
421+ def _bit_flip_channel_deserializer ():
422+ """Make standard deserializer for BitFlip channel."""
423+ args = [
424+ cirq .google .DeserializingArg (serialized_name = "p" ,
425+ constructor_arg_name = "p" )
426+ ]
427+ return cirq .google .GateOpDeserializer (serialized_gate_id = "BF" ,
428+ gate_constructor = cirq .BitFlipChannel ,
429+ args = args )
430+
431+
401432# Gates.
402433def _eigen_gate_serializer (gate_type , serialized_id ):
403434 """Make standard serializer for eigen gates."""
@@ -699,6 +730,7 @@ def _scalar_combiner(exponent, global_shift, exponent_scalar,
699730] + [
700731 _amplitude_damp_channel_serializer (),
701732 _asymmetric_depolarize_serializer (),
733+ _bit_flip_channel_serializer (),
702734 _depolarize_channel_serializer (),
703735 _fsim_gate_serializer (),
704736 _gad_channel_serializer (),
@@ -717,6 +749,7 @@ def _scalar_combiner(exponent, global_shift, exponent_scalar,
717749] + [
718750 _amplitude_damp_channel_deserializer (),
719751 _asymmetric_depolarize_deserializer (),
752+ _bit_flip_channel_deserializer (),
720753 _depolarize_channel_deserializer (),
721754 _fsim_gate_deserializer (),
722755 _gad_channel_deserializer (),
0 commit comments