Skip to main content
IBM Quantum Platform

OperatorTrait

class OperatorTrait(*args, **kwargs)

Bases : Protocol

Un protocole répertoriant toutes les méthodes implémentées par les classes d'opérateurs.


Attributs

groups

Renvoie les indices des groupes.


Méthodes

adjoint

adjoint()

Renvoie l'adjoint de cet opérateur.

Type de retour

Soi

equiv

equiv(other, atol)

Vérifie si cet opérateur est équivalent à un autre, dans les limites de la tolérance absolue spécifiée.

Paramètres

Type de retour

booléen

from_terms

classmethod from_terms(terms)

Crée un nouvel opérateur à partir d'un itérateur (voir aussi iter_terms()).

Paramètres

terms (Iterable)

Type de retour

Soi

from_terms_with_groups

classmethod from_terms_with_groups(terms)

Crée un nouvel opérateur à partir d'un itérateur (voir aussi iter_terms_with_groups()).

Paramètres

terms (Iterable)

Type de retour

Soi

get_coeffs

get_coeffs()

Renvoie les coefficients des termes.

Type de retour

liste [ complexe ]

get_support

get_support()

Renvoie l'ensemble des indices de mode sur lesquels cet opérateur agit.

Type de retour

frozenset [ int ]

has_groups

has_groups()

Indique si cet opérateur prend en compte les indices de groupe.

Cela revient à vérifier (mais coûte moins cher que) op.groups is not None, car cela ne nécessite pas de copier les indices de groupe hors de l'opérateur pour les inspecter.

Type de retour

booléen

ichop

ichop(atol)

Réduit les coefficients de cet opérateur en dessous de la tolérance absolue.

Paramètres

atol (float)

is_hermitian

is_hermitian(atol=1e-08)

Indique si cet opérateur est hermitien.

Cette vérification ramène la différence entre cet opérateur et son adjoint() à une forme normale (voir normal_ordered()) et compare le résultat à zero(). Sa puissance ne dépasse donc pas celle de la forme normale à laquelle le type d'opérateur spécifique se réduit.

Remarque

Un résultat True est toujours fiable. Un résultat False n'est fiable que pour les types d'opérateurs dont la forme normale est une forme canonique véritable; pour les autres, cette vérification est prudente et peut renvoyer un résultat erroné False pour un opérateur qui est en réalité hermitien. Consultez l'implémentation spécifique pour déterminer laquelle des deux s'applique.

Paramètres

atol (float) – Précision numérique jusqu'à laquelle les coefficients sont considérés comme égaux. Cette valeur est définie par défaut sur 1e-8.

Retours

Si cet opérateur est hermitien.

Type de retour

booléen

iter_terms

iter_terms()

Parcourt les termes de cet opérateur.

Type de retour

Itérateur

iter_terms_with_groups

iter_terms_with_groups()

Parcourt les termes de cet opérateur en indiquant leurs indices de groupe.

Type de retour

Itérateur

normal_ordered

normal_ordered(*args, **kwargs)

Renvoie la forme normalisée de cet opérateur.

Remarque

Une implémentation spécifique de cette méthode peut accepter des arguments supplémentaires.

Type de retour

Soi

num_groups

num_groups()

Renvoie le nombre de groupes.

Type de retour

int | Aucun

one

classmethod one()

Construit l'opérateur d'identité multiplicative.

Type de retour

Soi

relabel_modes

relabel_modes(permutation)

Renomme les modes de l'opérateur.

Paramètres

permutation (list[int])

Type de retour

Soi

simplify

simplify(atol)

Simplifie les termes de cet opérateur en éliminant ceux qui se situent en dessous de la tolérance absolue.

Paramètres

atol (float)

Type de retour

Soi

split_out_groups

split_out_groups(group_indices=None)

Divise cet opérateur en une liste facultative de nouveaux opérateurs en fonction de son groups.

Remarque

Si group_indices est omis, tous les groupes sont construits, par ordre d'index. Sinon, seuls les index demandés sont créés, dans l'ordre indiqué.

Paramètres

group_indices (Sequence[int] | None)

Type de retour

liste [ Self ]

zero

classmethod zero()

Construit l'opérateur d'identité additive.

Type de retour

Soi

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.