SupportsApplyUnitary
class SupportsApplyUnitary(*args, **kwargs)
Bases : Protocol
Un miroir du protocole ffsim.SupportsApplyUnitary .
Voir apply_unitary() pour la fonction d'aide indépendante du type qui redirige vers la méthode ci-dessous.
>>> import numpy as np
>>> from qiskit_fermions.circuit.library import OrbitalRotation
>>> gate = OrbitalRotation(np.eye(2))
>>> vec = np.array([1.0, 0.0], dtype=complex)
>>> gate._apply_unitary_(vec, norb=2, nelec=1, copy=True)
array([1.+0.j, 0.+0.j])
Méthodes protocolaires
_apply_unitary_
_apply_unitary_(vec, norb, nelec, copy)
Applique une transformation unitaire à un vecteur d'état.
Paramètres
-
vec (np.ndarray) – le vecteur d'état auquel appliquer la transformation unitaire.
-
norb (int) – le nombre d'orbitales spatiales.
-
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.
- Si
copy=Truealors cette méthode renvoie toujours un vecteur nouvellement alloué et le vecteur d'origine reste inchangé. - Si
copy=Falsealors cette méthode peut toujours renvoyer un vecteur nouvellement alloué, mais les données du vecteur d'origine risquent d'être écrasées. Il est également possible que le vecteur d'origine soit renvoyé, après avoir été modifié sur place.
- Si
Retours
Le vecteur transformé.
Type de retour
np.ndarray