Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Nome totalmente qualificado: Std.Diagnostics.CheckOperationsAreEqual
operation CheckOperationsAreEqual(nQubits : Int, actual : (Qubit[] => Unit), expected : (Qubit[] => Unit is Adj)) : Bool
Resumo
Dadas duas operações, verifica se elas agem de forma idêntica para todos os estados de entrada.
Descrição
Esta verificação é implementada usando o isomorfismo Choi-Jamiołkowski para reduzir esta verificação a uma verificação em dois registos emaranhados. Assim, essa operação precisa apenas de uma única chamada para cada operação que está sendo testada, mas requer o dobro de qubits para ser alocada. Esta verificação pode ser usada para garantir, por exemplo, que uma versão otimizada de uma operação age de forma idêntica à sua implementação ingênua, ou que uma operação que atua em uma variedade de entradas não quânticas concorda com casos conhecidos.
Comentários
Esta operação requer que a operação modelando o comportamento esperado seja adjunto, para que o inverso possa ser executado apenas no registro de destino. Formalmente, pode-se especificar uma operação de transposição, o que relaxa esse requisito, mas a operação de transposição não é, em geral, fisicamente realizável para operações quânticas arbitrárias e, portanto, não é incluída aqui como uma opção.
Entrada
nQubits
Número de qubits a serem passados para cada operação.
real
Operação a ensaiar.
esperado
Operação que define o comportamento esperado para a operação em teste.
Realização
True se as operações forem iguais, false caso contrário.