예제 #1
0
 def _custom_density_matrix_call(self, state):
     state = self.gate_op(state, self.cache.qubits_tensor + self.nqubits,
                          2 * self.nqubits, *self.target_qubits,
                          K.get_threads())
     matrix = K.conj(K.matrices.Y)
     state = K.op.apply_gate(state, matrix, self.cache.qubits_tensor,
                             2 * self.nqubits, *self.cache.target_qubits_dm,
                             K.get_threads())
     return state
예제 #2
0
 def density_matrix_call(self, state):
     if K.name == "custom":
         return self.gate_op(state, self.matrix, self.cache.qubits_tensor,
                             2 * self.nqubits, *self.cache.target_qubits_dm,
                             K.get_threads())
     return K.state_vector_call(self, state)