SupportsApplyUnitaryPlaced
class SupportsApplyUnitaryPlaced(*args, **kwargs)
Basi: Protocol
Un'estensione specifica del pacchetto che prevede SupportsApplyUnitary un posizionamento in modalità.
A differenza di SupportsApplyUnitary (mirroring ffsim.SupportsApplyUnitary), questo protocollo non ha un equivalente ffsim né una funzione di supporto: _apply_unitary_placed_() è l'unico chiamante e il protocollo viene distribuito direttamente a esso tramite il getattr duck-typing, anziché attraverso una funzione libera. È presente qui esclusivamente a scopo di digitazione e documentazione, poiché ogni classe concreta ( FermionicGate così come la classe stessa FermionicCircuit ) implementa questo metodo.
Vedi FermionicCircuit._apply_unitary_placed_() per la semantica completa, compreso il modo in cui un’implementazione SupportsApplyUnitary semplice (senza argomento di posizionamento della modalità) viene applicata solo al posizionamento identitario.
Metodi del protocollo
_apply_unitary_placed_
_apply_unitary_placed_(vec, norb, nelec, copy, freg_indices)
Applica una trasformazione unitaria a un vettore di stato, dopo aver mappato le modalità locali su quelle globali.
Parametri
- vec (np.ndarray) – il vettore di stato a cui applicare la trasformazione unitaria.
- norb (int) – il numero di orbitali spaziali del vettore di stato globale.
- nelec (int |tuple[int, int]) – o un singolo numero intero che rappresenta il numero di fermioni in un sistema privo di spin, oppure una coppia di numeri interi che indica il numero di fermioni con spin alfa e beta.
- copy (bool) – se copiare il vettore prima di eseguire operazioni su di esso.
- freg_indices (list[int]) – gli indici delle modalità assolute (globali) a cui si mappano le modalità locali di questo oggetto.
Risultati
Il vettore trasformato.
Tipo di restituzione
np.ndarray