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
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
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
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
get_coeffs
get_support
get_support()
Renvoie l'ensemble des indices de mode sur lesquels cet opérateur agit.
Type de retour
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
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.
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
iter_terms
iter_terms_with_groups
iter_terms_with_groups()
Parcourt les termes de cet opérateur en indiquant leurs indices de groupe.
Type de retour
normal_ordered
normal_ordered(*args, **kwargs)
Renvoie la forme normalisée de cet opérateur.
Une implémentation spécifique de cette méthode peut accepter des arguments supplémentaires.
Type de retour
num_groups
one
relabel_modes
relabel_modes(permutation)
Renomme les modes de l'opérateur.
Paramètres
Type de retour
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
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.
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