interop Pacote
Classes
| PeakUsageGreedyQubitManager |
Um gerenciador de qubits que acompanha a computação e os qubits de memória separadamente. Ele consiste em dois gerentes de qubit independentes para cada tipo de qubit. Cada gerente usa a estratégia de alocação greedy de Qubits de um tipo, após liberados, não podem ser reutilizados como qubits de tipo diferente. Portanto, a contagem de qubits de pico é igual à soma de contagens de qubit de pico para cada tipo. Inicialize o PeakUsageGreedyQubitManager. |
| PopBlock |
Sinaliza o fim do bloco repetido atual no rastreamento. |
| PushBlock |
Sinaliza o início de um bloco repetido no rastreamento. |
| ReadFromMemoryGate |
Move os estados do qubit do registro MEMORY para o registro COMPUTE. Pressupõe que os qubits compute estão preparados em 0 estado. Deixa qubits MEMORY em 0 estado. Inicializa ReadFromMemoryGate. |
| TypedQubit |
Qubit com tipo. Inicializa o qubit tipado. |
| WriteToMemoryGate |
Move os estados do qubit do registro COMPUTE para o registro MEMORY. Pressupõe que os qubits MEMORY estão preparados em 0 estado. Deixa qubits COMPUTE em 0 estado. Inicializa WriteToMemoryGate. |
Enumerações
| QubitType |
Tipo de qubit. Cada qubit lógico pode ser um qubit de computação ou de memória. Qubits de computação podem ser usados normalmente. Os qubits de memória têm uma restrição de que os portões não podem ser aplicados a eles. As únicas operações permitidas em qubits de memória são leituras/gravações, em que o estado é movido da memória para a porta de computação ou da computação para a porta de memória. Presumimos que, quando a correção de erro é aplicada, os qubits de memória são codificados com um esquema de correção de erro mais eficiente, exigindo menos recursos, mas não permitindo o aplicativo de portão (por exemplo, códigos de superfície yoked, https://arxiv.org/abs/2312.04522). |
Funções
assert_qubits_type
Afirma que os qubits especificaram o tipo, mas somente se forem TypedQubits.
assert_qubits_type(qs: Sequence[Qid], qubit_type: QubitType) -> None
Parâmetros
| Nome | Description |
|---|---|
|
qs
Obrigatório
|
|
|
qubit_type
Obrigatório
|
|
read_from_memory
Operação para ler qubits da memória.
read_from_memory(memory_qubits: Sequence[Qid], compute_qubits: Sequence[Qid]) -> Operation
Parâmetros
| Nome | Description |
|---|---|
|
memory_qubits
Obrigatório
|
|
|
compute_qubits
Obrigatório
|
|
trace_from_cirq
Converter um circuito cirq em um rastreamento de estimativa de recurso.
Itera em todos os momentos e operações no circuito, convertendo cada portão em operações de rastreamento. Os portões com um _to_trace método são convertidos diretamente; outros são recursivamente decompostos por meio de _decompose_with_context_ protocolos ou _decompose_ cirq.
trace_from_cirq(circuit: cirq.CIRCUIT_LIKE, *, classical_control_probability: float = 0.5, rotation_threshold: float = 1e-06, track_memory_qubits: bool = True) -> Trace
Parâmetros
| Nome | Description |
|---|---|
|
circuit
Obrigatório
|
O circuito cirq a ser convertido. |
|
classical_control_probability
Obrigatório
|
Probabilidade de que uma operação controlada de forma clássica seja incluída no rastreamento. O padrão é 0,5. |
|
rotation_threshold
Obrigatório
|
Os expoentes de rotação com valor absoluto abaixo desse limite são tratados como identidade e omitidos do rastreamento. Isso se aplica a rotações de qubit único (RX, RY, RZ), bem como aos componentes de rotação de decomposições de Z controladas. O padrão é 1e-6. |
|
track_memory_qubits
Obrigatório
|
Quando True, os qubits de memória são acompanhados separadamente dos qubits de computação. Quando False, todos os qubits são tratados como qubits de computação. Além disso, se as instruções True, read-from-memory e write-to-memory forem preservadas no rastreamento, caso contrário, elas serão descompsadas nas instruções SWAP e RESET. O padrão é True. |
Parâmetros somente de palavra-chave
| Nome | Description |
|---|---|
|
classical_control_probability
|
Valor padrão: 0.5
|
|
rotation_threshold
|
Valor padrão: 1e-06
|
|
track_memory_qubits
|
Valor padrão: True
|
Retornos
| Tipo | Description |
|---|---|
|
Um rastreamento que representa um perfil de execução do circuito. |
trace_from_entry_expr
Converta uma expressão de entrada Q# em um Rastreamento de estimativa de recurso.
Avalia a expressão de entrada para obter contagens lógicas e, em seguida, cria um rastreamento que contém as operações quânticas correspondentes.
trace_from_entry_expr(entry_expr: str | Callable | LogicalCounts, *args) -> Trace
Parâmetros
| Nome | Description |
|---|---|
|
entry_expr
Obrigatório
|
<xref:<xref:qdk.qre.interop.str | Callable | LogicalCounts>>
Uma cadeia de caracteres de expressão de entrada Q#, uma contagem lógica callable ou pré-computada. |
|
*args
Obrigatório
|
Os argumentos a serem passados para o callable, se um for fornecido. |
Retornos
| Tipo | Description |
|---|---|
|
Um rastreamento que representa o perfil de recurso do programa. |
trace_from_entry_expr_cached
Converta uma expressão de entrada Q# em um Rastreamento, com cache opcional.
Se cache_path for fornecido e existir, o rastreamento será carregado do disco.
Caso contrário, o rastreamento é computado por meio trace_from_entry_expr e, opcionalmente, gravado em cache_path.
trace_from_entry_expr_cached(entry_expr: str | Callable | LogicalCounts, cache_path: Path | None, *args) -> Trace
Parâmetros
| Nome | Description |
|---|---|
|
entry_expr
Obrigatório
|
<xref:<xref:qdk.qre.interop.str | Callable | LogicalCounts>>
Uma cadeia de caracteres de expressão de entrada Q#, uma contagem lógica callable ou pré-computada. |
|
cache_path
Obrigatório
|
<xref:Optional>[<xref:Path>]
Caminho para ler/gravar o rastreamento armazenado em cache. Se Nenhum, o cache será desabilitado. |
Retornos
| Tipo | Description |
|---|---|
|
Um rastreamento que representa o perfil de recurso do programa. |
trace_from_qir
Converta um programa QIR em um Rastreamento de estimativa de recursos.
Analisa o módulo QIR, extrai portões quânticos e cria um Rastreamento que pode ser usado para estimativa de recursos. Os branches condicionais são resolvidos sempre seguindo o caminho falso (supondo que os resultados da medida sejam Zero).
trace_from_qir(input: str | bytes) -> Trace
Parâmetros
| Nome | Description |
|---|---|
|
input
Obrigatório
|
Entrada DE QIR como texto LLVM IR (str) ou bitcode (bytes). |
Retornos
| Tipo | Description |
|---|---|
|
Um rastreamento que contém as operações quânticas do programa QIR. |
write_to_memory
Operação para gravar qubits na memória.
write_to_memory(memory_qubits: Sequence[Qid], compute_qubits: Sequence[Qid]) -> Operation
Parâmetros
| Nome | Description |
|---|---|
|
memory_qubits
Obrigatório
|
|
|
compute_qubits
Obrigatório
|
|