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 cirq.GreedyQubitManager.

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