SupportsApplyUnitaryPlaced
class SupportsApplyUnitaryPlaced(*args, **kwargs)
Bases: Protocol
Una extensión específica del paquete que incluye SupportsApplyUnitary una ubicación de modo.
A diferencia de SupportsApplyUnitary (mirroring ffsim.SupportsApplyUnitary), este protocolo no tiene un equivalente en ffsim ni ninguna función auxiliar: _apply_unitary_placed_() es el único llamante, y se le transfiere directamente mediante duck-typing getattr en lugar de a través de una función libre. Aparece aquí únicamente con fines de tipificación y documentación, ya que cada clase concreta ( FermionicGate así como la propia FermionicCircuit clase) implementa este método.
Consulta FermionicCircuit._apply_unitary_placed_() para conocer la semántica completa, incluyendo cómo una implementación SupportsApplyUnitary simple (sin argumento de ubicación de modo) solo se aplica a la ubicación de identidad.
Métodos del protocolo
_apply_unitary_placed_
_apply_unitary_placed_(vec, norb, nelec, copy, freg_indices)
Aplica una transformación unitaria a un vector de estado, tras convertir los modos locales en modos globales.
Parámetros
- vec (np.ndarray) – el vector de estado al que se va a aplicar la transformación unitaria.
- norb (int) – el número de orbitales espaciales del vector de estado global.
- nelec (int |tuple[int, int]) – o bien un único número entero que represente el número de fermiones en un sistema sin espín, o bien un par de números enteros que indiquen el número de fermiones de espín alfa y de espín beta.
- copy (bool) – si hay que copiar el vector antes de realizar operaciones con él.
- freg_indices (list[int]) – los índices de los modos absolutos (globales) a los que se asignan los modos locales de este objeto.
Devuelve
El vector transformado.
Tipo de retorno
np.ndarray