SupportsApplyUnitaryPlaced
class SupportsApplyUnitaryPlaced(*args, **kwargs)
Bases : Protocol
Une extension spécifique à un paquet, comportant SupportsApplyUnitary un placement de mode.
Contrairement à SupportsApplyUnitary (mirroring ffsim.SupportsApplyUnitary), ce protocole n'a pas d'équivalent ffsim ni de fonction d'aide : _apply_unitary_placed_() est le seul appelant, et il lui transmet directement le contrôle via le « getattr duck-typing » plutôt que par l'intermédiaire d'une fonction libre. Elle n'est présente ici qu'à des fins de typage et de documentation, puisque chaque classe concrète ( FermionicGate ainsi que la classe elle-même FermionicCircuit ) implémente cette méthode.
Voir FermionicCircuit._apply_unitary_placed_() pour la sémantique complète, notamment pour comprendre pourquoi une implémentation SupportsApplyUnitary « simple » (sans argument de placement de mode) n'est prise en compte que pour le placement identitaire.
Méthodes protocolaires
_apply_unitary_placed_
_apply_unitary_placed_(vec, norb, nelec, copy, freg_indices)
Applique une transformation unitaire à un vecteur d'état, après avoir transposé les modes locaux en modes globaux.
Paramètres
- vec (np.ndarray) – le vecteur d'état auquel appliquer la transformation unitaire.
- norb (int) – le nombre d'orbitales spatiales du vecteur d'état global.
- nelec (int |tuple[int, int]) – soit un seul entier représentant le nombre de fermions pour un système sans spin, soit une paire d'entiers indiquant respectivement le nombre de fermions de spin alpha et de fermions de spin bêta.
- copy (bool) – s'il faut copier le vecteur avant d'effectuer une opération dessus.
- freg_indices (list[int]) – les indices des modes absolus (globaux) auxquels se mappent les modes locaux de cet objet.
Retours
Le vecteur transformé.
Type de retour
np.ndarray