SXdgGate
class qiskit.circuit.library.SXdgGate(*args, _force_mutable=False, **kwargs)
Bases : SingletonGate
La porte inverse Sqrt(X) à un qubit.
Peut être appliqué à un QuantumCircuit à l'aide de la sxdg() méthode.
Il existe une différence de phase globale entre les définitions de et .
Créer une nouvelle porte SXdg.
Attributs
base_class
Récupérer la classe de base de cette instruction. Cela figure à coup sûr dans l'arborescence d'héritage de self.
La « classe de base » d'une instruction est la classe la plus basse de son arbre d'héritage avec laquelle l'objet doit être considéré comme entièrement compatible pour toutes les applications de circuit. En général, cela signifie que la sous-classe est définie uniquement pour offrir une certaine facilité d'utilisation au programmeur par rapport à la classe de base, et que c'est cette dernière qui constitue la « véritable » classe d'un point de vue comportemental. En particulier, vous ne devez pas redéfinir base_class si vous définissez une version personnalisée d'une instruction qui sera mise en œuvre différemment par le matériel, comme une stratégie de mesure alternative, ou une version d'une porte paramétrée avec un ensemble particulier de paramètres afin de la distinguer dans un Target de la porte paramétrée complète.
Cela revient souvent exactement au même type(obj), sauf dans le cas des instances uniques d'instructions de la bibliothèque standard. Ces instances singleton sont des sous-classes spéciales de leur classe de base, et cette propriété renverra cette classe de base. Par exemple :
>>> isinstance(XGate(), XGate)
True
>>> type(XGate()) is XGate
False
>>> XGate().base_class is XGate
TrueEn règle générale, il ne faut pas se fier à la classe précise d'une instruction; au sein d'un circuit donné, on considère que Instruction.name constitue un critère de distinction plus approprié dans la plupart des cas.
decompositions
Récupérez les décompositions de l'instruction à partir de l' SessionEquivalenceLibrary.
definition
Définir la porte de retour en termes d'autres portes de base.
label
Étiquette d'instructions de retour
mutable
Cette instance est-elle une instance unique modifiable ou non?
Si cet attribut est défini, False l'instance de la porte est un singleton partagé et n'est pas modifiable.
name
Renvoie le nom.
num_clbits
Renvoie le nombre de clbits.
num_qubits
Renvoie le nombre de qubits.
params
Les paramètres de ce Instruction. Idéalement, il s'agira d'angles de porte.
Méthodes
add_decomposition
add_decomposition(decomposition)
Ajoutez une analyse de l'instruction à l' SessionEquivalenceLibrary.
broadcast_arguments
broadcast_arguments(qargs, cargs)
Validation et traitement des arguments et de leurs relations.
Par exemple, cx([q[0],q[1]], q[2]) signifie cx(q[0], q[2]); cx(q[1], q[2]). Cette méthode permet d'obtenir les arguments dans le bon ordre. Dans l'exemple donné :
in: [[q[0],q[1]], q[2]],[]
outs: [q[0], q[2]], []
[q[1], q[2]], []Les règles générales en matière de diffusion sont les suivantes :
Si len(qargs) == 1 :
[q[0], q[1]] -> [q[0]],[q[1]]Si 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]]Si len(qargs) est supérieur ou égal à 3 :
[q[0], q[1]], [r[0], r[1]], ...] -> [q[0], r[0], ...], [q[1], r[1], ...]
Paramètres
- qargs (list) – Liste des arguments relatifs aux bits quantiques.
- cargs (list) – Liste des arguments de bits classiques.
Retours
Un tuple à un seul argument.
Augmentations
CircuitError – Si la saisie n'est pas valide. Par exemple, le nombre d'arguments ne correspond pas à ce qu'on attend de la porte logique.
Type de retour
control
control(num_ctrl_qubits=1, label=None, ctrl_state=None, annotated=None)
Renvoie une instance de lui-même.
La porte contrôlée est mise en œuvre comme ControlledGate lorsque annotated est égal à False, et comme AnnotatedOperation lorsque annotated est égal à True.
qiskit.circuit.gate.Gate.control()L'argument annotated est obsolète depuis la version 2.3 de Qiskit. Elle sera supprimée dans la version 3.0 de Qiskit. La méthode Gate.control () n'accepte plus la valeur annotated=None. La nouvelle valeur par défaut est annotated=True, ce qui désigne la porte contrôlée comme une « porte contrôlée » ( AnnotatedOperation ) (à moins qu'une classe dédiée aux portes contrôlées n'existe déjà). Vous pouvez définir explicitement annotated=False pour conserver le comportement précédent. Il est toutefois recommandé d'utiliser annotated=True, car cela reporte la construction du circuit contrôlé au niveau du transpileur et permet en outre des optimisations supplémentaires au niveau des portes contrôlées (ce qui se traduit généralement par des circuits de meilleure qualité).
Paramètres
- num_ctrl_qubits (int) – Nombre de contrôles à ajouter. Prend par défaut la valeur
1. - label (str | None) – Étiquette de portail (facultative). Prend par défaut la valeur
None. Cette option est ignorée si la porte contrôlée est implémentée sous la forme d'une opération annotée. - ctrl_state (int |str | None) – L'état de commande de la porte, spécifié soit sous forme d'entier, soit sous forme de chaîne de bits (par exemple
"110"). SiNone, la valeur par défaut est l'état «2**num_ctrl_qubits - 1tout à 1 ». - annotated (bool | None) – Indique si la porte contrôlée doit être implémentée en tant que porte contrôlée ou en tant qu'opération annotée. Si
None, on considère queFalse.
Retours
Une version contrôlée de cette porte.
Augmentations
QiskitError – invalide num_ctrl_qubits ou ctrl_state.
copy
copy(name=None)
Copie de la notice.
Paramètres
name (str) – nom à attribuer au circuit copié; si None alors le nom reste inchangé.
Retours
une copie de l'instruction actuelle, avec le nom mis à jour s'il a été fourni
Type de retour
inverse
inverse(annotated=False)
Renvoie la porte inverse de SXdg (c'est-à-dire SX).
Paramètres
annotated (bool) – Lorsqu'il est défini sur True, cela sert généralement à renvoyer un AnnotatedOperation avec un modificateur inverse activé, plutôt qu'un concret Gate. Cependant, pour cette classe, cet argument est ignoré, car l'inverse de cette porte est toujours un SXGate.
Retours
inverse de SXdgGate
Type de retour
is_parameterized
is_parameterized()
Indique si la fonction Instruction contient des paramètres définis à la compilation.
power
power(exponent, annotated=False)
Élevez cette porte à la puissance de exponent.
Mis en œuvre sous la forme d'une porte unitaire (cf. UnitaryGate) ou sous forme d'opération annotée (cf. AnnotatedOperation). Dans le cas de plusieurs portes logiques standard, par exemple RXGate, lorsque la puissance d'une porte peut être exprimée en termes d'une autre porte standard qui est renvoyée directement.
Paramètres
- exponent (float) – le pouvoir de lever la barrière pour
- annotated (bool) – indique si la porte de puissance peut être implémentée sous forme d'opération annotée. Dans le cas de plusieurs portes standard, telles que
RXGate, cet argument est ignoré lorsque la puissance d'une porte peut être exprimée en termes d'une autre porte standard.
Retours
Une opération qui met en œuvre gate^exponent
Augmentations
CircuitError – Si la porte n'est pas unitaire
repeat
repeat(n)
Crée une instruction self répétée fois.
Paramètres
n (int) – Nombre de fois où l'instruction doit être répétée
Retours
Contenant la définition.
Type de retour
Augmentations
CircuitError – Si n < 1.
reverse_ops
reverse_ops()
Pour une instruction composite, inversez l'ordre des sous-instructions.
Pour ce faire, on inverse de manière récursive toutes les sous-instructions. Elle n'inverse aucune porte.
Retours
une nouvelle instruction avec
les sous-instructions ont été inversées.
Type de retour
soft_compare
soft_compare(other)
Comparaison douce entre les portes. Leurs noms, leur nombre de qubits et leur nombre de bits classiques doivent correspondre. Le nombre de paramètres doit correspondre. Chaque paramètre est comparé. Si l'on est un « ParameterExpression », cela n'est pas pris en compte.
Paramètres
other (instruction) – autre instruction.
Retours
« self » et « other » sont égaux jusqu'aux expressions de paramètres.
Type de retour
to_matrix
to_matrix()
Renvoie une matrice unitaire de type « Numpy.array » pour la porte.
Retours
si la sous-classe Gate comporte une définition de matrice.
Type de retour
np.ndarray
Augmentations
CircuitError – Si une sous-classe de Gate n'implémente pas cette méthode, une exception sera levée lors de l'appel de cette méthode de la classe de base.
to_mutable
to_mutable()
Renvoie une copie modifiable de cette porte.
Cette méthode renvoie une nouvelle copie modifiable de cette instance de porte. Si une instance singleton est utilisée, il s'agira d'une nouvelle instance unique pouvant être modifiée. Si l'instance est déjà modifiable, il s'agira d'une copie en profondeur de cette instance.
validate_parameter
validate_parameter(parameter)
Les paramètres de la porte doivent être de type int, float ou ParameterExpression