SupportsApplyUnitaryPlaced
class SupportsApplyUnitaryPlaced(*args, **kwargs)
Basi: Protocol
Un'estensione specifica per il pacchetto ffsim.SupportsApplyUnitary.
Mentre il protocollo di ffsim applica un oggetto a un intero vettore di stato, questo aggiunge il posizionamento delle modalità locali dell’oggetto a quelle globali su cui agisce. Non ha alcun equivalente in ffsim: _apply_unitary_placed_() è l'unico chiamante e il controllo viene inoltrato direttamente ad esso tramite il duck-typing getattr . È 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 _apply_unitary_ 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 senza 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 effettuare 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