Skip to main content
IBM Quantum Platform

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

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