in src/braket/circuits/moments.py [0:0]
def sort_moments(self) -> None:
"""
Make the disordered moments in order.
1. Make the readout noise in the end
2. Make the initialization noise at the beginning
"""
# key for NOISE, GATE and GATE_NOISE
key_noise = []
# key for INITIALIZATION_NOISE
key_initialization_noise = []
# key for READOUT_NOISE
key_readout_noise = []
moment_copy = OrderedDict()
sorted_moment = OrderedDict()
for key, instruction in self._moments.items():
moment_copy[key] = instruction
if key.moment_type == MomentType.READOUT_NOISE:
key_readout_noise.append(key)
elif key.moment_type == MomentType.INITIALIZATION_NOISE:
key_initialization_noise.append(key)
else:
key_noise.append(key)
for key in key_initialization_noise:
sorted_moment[key] = moment_copy[key]
for key in key_noise:
sorted_moment[key] = moment_copy[key]
# find the max time in the circuit and make it the time for readout noise
max_time = max(self._depth - 1, 0)
for key in key_readout_noise:
sorted_moment[
MomentsKey(max_time, key.qubits, MomentType.READOUT_NOISE, key.noise_index)
] = moment_copy[key]
self._moments = sorted_moment