My SELECT circuit isn’t quite right. Can you please check what I did wrong and help me debug my code.
def my_select(U_list):
k = len(U_list)
n = int(np.log2(k))
m = int(np.ceil(np.log2(k)))
control_wires = list(range(m))
target_wires = list(range(m, m + n))
if m == 0:
qml.QubitUnitary(np.array(U_list\[0\]), wires=target_wires)
else:
for i in range(k):
bin_str = np.binary_repr(i, width=m)
U_matrix = np.array(U_list\[i\])
qml.ControlledQubitUnitary(U_matrix, control_wires=control_wires, wires=target_wires, control_values=bin_str)