SXdgGate
class qiskit.circuit.library.SXdgGate(*args, _force_mutable=False, **kwargs)
Bases: SingletonGate
A porta Sqrt(X) inversa de um único qubit.
Pode ser aplicado a um QuantumCircuit usando o sxdg() método.
Existe uma diferença global entre as definições de e .
Criar um novo portão SXdg.
Atributos
base_class
Obtenha a classe base desta instrução. Isso certamente estará na árvore de herança de self.
A “classe base” de uma instrução é a classe mais baixa em sua árvore de herança com a qual o objeto deve ser considerado totalmente compatível para _todas_ as aplicações de circuitos. Isso geralmente significa que a subclasse é definida exclusivamente para oferecer algum tipo de conveniência ao programador em relação à classe base, sendo que a classe base é a “verdadeira” classe do ponto de vista comportamental. Em particular, você não deve substituir base_class se estiver definindo uma versão personalizada de uma instrução que será implementada de maneira diferente pelo hardware, como uma estratégia de medição alternativa, ou uma versão de uma porta parametrizada com um conjunto específico de parâmetros com o objetivo de distingui-la em um Target da porta parametrizada completa.
Isso costuma ser exatamente equivalente a type(obj), exceto no caso de instâncias únicas de instruções da biblioteca padrão. Essas instâncias singleton são subclasses especiais de sua classe base, e essa propriedade retornará essa classe base. Por exemplo:
>>> isinstance(XGate(), XGate)
True
>>> type(XGate()) is XGate
False
>>> XGate().base_class is XGate
TrueEm geral, não se deve confiar na classe exata de uma instrução; dentro de um determinado circuito, espera-se que Instruction.name seja um discriminador mais adequado na maioria das situações.
decompositions
Obtenha as decomposições da instrução no site SessionEquivalenceLibrary.
definition
Defina a função de retorno em termos de outras portas lógicas básicas.
label
Etiqueta com instruções para devolução
mutable
Esta instância é uma instância única mutável ou não?
Se este atributo estiver definido, a False instância do gate é um singleton compartilhado e não é mutável.
name
Retorne o nome.
num_clbits
Retorna o número de clbits.
num_qubits
Retorne o número de qubits.
params
Os parâmetros deste Instruction. Idealmente, esses serão ângulos de porta.
Métodos
add_decomposition
add_decomposition(decomposition)
Adicione uma descrição detalhada da instrução ao documento " SessionEquivalenceLibrary ".
broadcast_arguments
broadcast_arguments(qargs, cargs)
Validação e tratamento dos argumentos e sua relação.
Por exemplo, cx([q[0],q[1]], q[2]) significa cx(q[0], q[2]); cx(q[1], q[2]). Este método apresenta os argumentos no agrupamento correto. No exemplo apresentado:
in: [[q[0],q[1]], q[2]],[]
outs: [q[0], q[2]], []
[q[1], q[2]], []As regras gerais de transmissão são:
Se len(qargs) == 1:
[q[0], q[1]] -> [q[0]],[q[1]]Se len(qargs) == 2:
[[q[0], q[1]], [r[0], r[1]]] -> [q[0], r[0]], [q[1], r[1]] [[q[0]], [r[0], r[1]]] -> [q[0], r[0]], [q[0], r[1]] [[q[0], q[1]], [r[0]]] -> [q[0], r[0]], [q[1], r[0]]Se len(qargs) >= 3:
[q[0], q[1]], [r[0], r[1]], ...] -> [q[0], r[0], ...], [q[1], r[1], ...]
Parâmetros
- qargs (list) – Lista de argumentos para bits quânticos.
- cargs (list) – Lista de argumentos clássicos de bits.
Retorna
Uma tupla com um único argumento.
Aumentos
CircuitError – Se a entrada não for válida. Por exemplo, o número de argumentos não corresponde ao esperado pela porta lógica.
Tipo de retorno
control
control(num_ctrl_qubits=1, label=None, ctrl_state=None, annotated=None)
Retorna a versão controlada de si mesmo.
A porta controlada é implementada como ControlledGate quando annotated é False, e como AnnotatedOperation quando annotated é True.
qiskit.circuit.gate.Gate.control()O argumento annotated está obsoleto a partir da versão 2.3 do Qiskit. Será removido no Qiskit 3.0. O método Gate.control () não aceita mais annotated=None. O novo padrão é annotated=True, o que representa o portão controlado como um AnnotatedOperation (a menos que já exista uma classe dedicada para portões controlados). Você pode definir explicitamente annotated=False para manter o comportamento anterior. No entanto, recomenda-se usar annotated=True, pois isso adia a construção do circuito controlado para o transpiler e, além disso, permite otimizações adicionais de portas controladas (o que normalmente resulta em circuitos de melhor qualidade).
Parâmetros
- num_ctrl_qubits (int) – Número de controles a serem adicionados. Padroniza para
1. - label (str | None) – Etiqueta opcional para o portão. Padroniza para
None. Ignorado se o portão controlado for implementado como uma operação anotada. - ctrl_state (int |str | None) – O estado de controle da porta, especificado como um número inteiro ou uma sequência de bits (por exemplo,
"110"). SeNone, o padrão é o estado em que todos os bits estão2**num_ctrl_qubits - 1definidos como 1. - annotated (bool | None) – Indica se a porta controlada deve ser implementada como uma porta controlada ou como uma operação anotada. Se
None, considerado comoFalse.
Retorna
Uma versão controlada deste portão.
Aumentos
QiskitError – inválido num_ctrl_qubits ou ctrl_state.
copy
copy(name=None)
Cópia da instrução.
Parâmetros
name (str) – nome a ser atribuído ao circuito copiado; caso None contrário, o nome permanece o mesmo.
Retorna
uma cópia da instrução atual, com o nome atualizado, caso tenha sido fornecido
Tipo de retorno
inverse
inverse(annotated=False)
Retornar a porta SXdg inversa (ou seja, SX).
Parâmetros
annotated (bool) – Quando definido como True, isso é normalmente usado para retornar um AnnotatedOperation com um modificador inverso definido, em vez de um concreto Gate. No entanto, para essa classe, esse argumento é ignorado, pois a inversa dessa porta é sempre um SXGate.
Retorna
inverso de SXdgGate
Tipo de retorno
is_parameterized
power
power(exponent, annotated=False)
Eleve este portão à potência de exponent.
Implementado como um portão unitário (ref. UnitaryGate) ou como uma operação anotada (ref. AnnotatedOperation). No caso de várias portas padrão, como RXGate, quando a potência de uma porta pode ser expressa em termos de outra porta padrão que é retornada diretamente.
Parâmetros
- exponent (float) – o mecanismo para levantar o portão
- annotated (bool) – indica se o power gate pode ser implementado como uma operação anotada. No caso de várias portas lógicas padrão, como
RXGate, esse argumento é ignorado quando a potência de uma porta pode ser expressa em termos de outra porta lógica padrão.
Retorna
Uma operação que implementa gate^exponent
Aumentos
CircuitError – Se a porta não for unitária
repeat
repeat(n)
Cria uma instrução com self repetido vezes.
Parâmetros
n (int) – Número de vezes que a instrução deve ser repetida
Retorna
Contendo a definição.
Tipo de retorno
Aumentos
CircuitError – Se n < 1.
reverse_ops
reverse_ops()
Para uma instrução composta, inverta a ordem das subinstruções.
Isso é feito invertendo recursivamente todas as subinstruções. Não inverte nenhuma porta lógica.
Retorna
uma nova instrução com
subinstruções invertidas.
Tipo de retorno
soft_compare
soft_compare(other)
Comparação suave entre portas. Seus nomes, o número de qubits e o número de bits clássicos devem coincidir. O número de parâmetros deve corresponder. Cada parâmetro é comparado. Se for um ParameterExpression, isso não é levado em consideração.
Parâmetros
other (instruction) – outras instruções.
Retorna
"self" e "other" são iguais nas expressões de parâmetros.
Tipo de retorno
to_matrix
to_matrix()
Retorna um objeto Numpy.array para a matriz unitária da porta.
Retorna
se a subclasse Gate tiver uma definição de matriz.
Tipo de retorno
np.ndarray
Aumentos
CircuitError – Se uma subclasse de Gate não implementar este método, será lançada uma exceção quando este método da classe base for chamado.
to_mutable
to_mutable()
Retorna uma cópia mutável desta porta.
Este método retornará uma nova cópia mutável desta instância de gate. Se estiver sendo usada uma instância singleton, esta será uma nova instância única que poderá ser alterada. Se a instância já for mutável, será criada uma cópia profunda dessa instância.
validate_parameter
validate_parameter(parameter)
Os parâmetros da porta devem ser do tipo int, float ou ParameterExpression