SupportsApplyUnitaryPlaced
class SupportsApplyUnitaryPlaced(*args, **kwargs)
Bases: Protocol
Uma extensão específica do pacote que contém SupportsApplyUnitary um posicionamento de modo.
Ao contrário de ( SupportsApplyUnitary espelhamento ffsim.SupportsApplyUnitary), esse protocolo não possui um equivalente ffsim nem uma função auxiliar: _apply_unitary_placed_() é o único chamador, e o despacho é feito diretamente para ele por meio do getattr duck-typing, em vez de por meio de uma função livre. Ele existe aqui apenas para fins de tipagem e documentação, uma vez que toda instância concreta ( FermionicGate assim como a própria FermionicCircuit classe) implementa esse método.
Consulte FermionicCircuit._apply_unitary_placed_() para conhecer a semântica completa, incluindo como uma implementação SupportsApplyUnitary simples (sem argumento de posicionamento de modo) é aplicada apenas ao posicionamento de identidade.
Métodos do protocolo
_apply_unitary_placed_
_apply_unitary_placed_(vec, norb, nelec, copy, freg_indices)
Aplica uma transformação unitária a um vetor de estado, após mapear os modos locais para os globais.
Parâmetros
- vec (np.ndarray) – o vetor de estado ao qual se aplicará a transformação unitária.
- norb (int) – o número de orbitais espaciais do vetor de estado global.
- nelec (int |tuple[int, int]) – ou um único número inteiro representando o número de férmions para um sistema sem spin, ou um par de números inteiros que indicam o número de férmions de spin alfa e beta.
- copy (bool) – se é necessário copiar o vetor antes de realizar operações nele.
- freg_indices (list[int]) – os índices dos modos absolutos (globais) aos quais os modos locais deste objeto se mapeiam.
Retorna
O vetor transformado.
Tipo de retorno
np.ndarray