interop Paquete

Clases

PeakUsageGreedyQubitManager

Un administrador de cúbits que realiza el seguimiento de los cúbits de proceso y memoria por separado.

Consta de dos administradores de cúbits independientes para cada tipo de cúbit. Cada administrador usa una estrategia de asignación expansa de cirq.GreedyQubitManager.

Los cúbits de un tipo, después de liberarse, no se pueden reutilizar como cúbits de tipo diferente. Por lo tanto, el recuento de cúbits máximos es igual a la suma de los recuentos de cúbits máximos para cada tipo.

Inicialice peakUsageGreedyQubitManager.

PopBlock

Indica el final del bloque repetido actual en el seguimiento.

PushBlock

Indica el inicio de un bloque repetido en el seguimiento.

ReadFromMemoryGate

Mueve los estados de cúbit del registro MEMORY al registro COMPUTE.

Se supone que los cúbits COMPUTE están preparados en 0 estado. Deja los cúbits MEMORY en el estado 0.

Inicializa ReadFromMemoryGate.

TypedQubit

Cúbit con tipo.

Inicializa el cúbit con tipo.

WriteToMemoryGate

Mueve los estados de cúbit del registro COMPUTE al registro MEMORY.

Supone que los cúbits MEMORY están preparados en el estado 0. Deja los cúbits COMPUTE en estado 0.

Inicializa WriteToMemoryGate.

Enumeraciones

QubitType

Tipo de cúbit.

Cada cúbit lógico puede ser un cúbit de proceso o memoria. Los cúbits de proceso se pueden usar normalmente.

Los cúbits de memoria tienen una restricción que las puertas no se pueden aplicar a ellos. Las únicas operaciones permitidas en cúbits de memoria son lecturas y escrituras, donde el estado se mueve de la memoria a la puerta de proceso o de la puerta de proceso a la memoria.

Se supone que cuando se aplica la corrección de errores, los cúbits de memoria se codifican con un esquema de corrección de errores más eficaz que requiere menos recursos, pero no permitir la aplicación de puerta (por ejemplo, códigos de superficie Yoked, https://arxiv.org/abs/2312.04522).

Funciones

assert_qubits_type

Afirma que los cúbits tienen el tipo especificado, pero solo si son TypedQubits.

assert_qubits_type(qs: Sequence[Qid], qubit_type: QubitType) -> None

Parámetros

Nombre Description
qs
Requerido
qubit_type
Requerido

read_from_memory

Operación para leer cúbits de la memoria.

read_from_memory(memory_qubits: Sequence[Qid], compute_qubits: Sequence[Qid]) -> Operation

Parámetros

Nombre Description
memory_qubits
Requerido
compute_qubits
Requerido

trace_from_cirq

Convierta un circuito Cirq en un seguimiento de estimación de recursos.

Recorre en iteración todos los momentos y operaciones del circuito, convirtiendo cada puerta en operaciones de seguimiento. Las puertas con un _to_trace método se convierten directamente; otras se descomponentes de forma recursiva a través de los protocolos o _decompose_ cirq_decompose_with_context_.

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

Nombre Description
circuit
Requerido

Circuito Cirq que se va a convertir.

classical_control_probability
Requerido

Probabilidad de que una operación controlada clásicamente se incluya en el seguimiento. El valor predeterminado es 0,5.

rotation_threshold
Requerido

Los exponentes de rotación con un valor absoluto por debajo de este umbral se tratan como identidades y se omiten del seguimiento. Esto se aplica a las rotaciones de un solo cúbit (RX, RY, RZ), así como a los componentes de rotación de descomposición controlada-Z. El valor predeterminado es 1e-6.

track_memory_qubits
Requerido

Cuando es True, se realiza un seguimiento de los cúbits de memoria por separado de los cúbits de proceso. Cuando es False, todos los cúbits se tratan como cúbits de proceso. Además, si las instrucciones True, read-from-memory y write-to-memory se conservan en el seguimiento; de lo contrario, se descomponen en las instrucciones SWAP y RESET. El valor predeterminado es True.

Parámetros de palabra clave únicamente

Nombre Description
classical_control_probability
Valor predeterminado: 0.5
rotation_threshold
Valor predeterminado: 1e-06
track_memory_qubits
Valor predeterminado: True

Devoluciones

Tipo Description

Seguimiento que representa un perfil de ejecución del circuito.

trace_from_entry_expr

Convierta una expresión de entrada de Q# en un seguimiento de estimación de recursos.

Evalúa la expresión de entrada para obtener recuentos lógicos y, a continuación, crea un seguimiento que contiene las operaciones cuánticas correspondientes.

trace_from_entry_expr(entry_expr: str | Callable | LogicalCounts, *args) -> Trace

Parámetros

Nombre Description
entry_expr
Requerido
<xref:<xref:qdk.qre.interop.str | Callable | LogicalCounts>>

Cadena de expresión de entrada de Q#, recuentos lógicos invocables o calculados previamente.

*args
Requerido

Argumentos que se van a pasar al invocable, si se proporciona uno.

Devoluciones

Tipo Description

Seguimiento que representa el perfil de recursos del programa.

trace_from_entry_expr_cached

Convierta una expresión de entrada de Q# en un seguimiento, con almacenamiento en caché opcional.

Si se proporciona cache_path y existe, el seguimiento se carga desde el disco. De lo contrario, el seguimiento se calcula a través trace_from_entry_expr de y, opcionalmente, se escribe en cache_path.

trace_from_entry_expr_cached(entry_expr: str | Callable | LogicalCounts, cache_path: Path | None, *args) -> Trace

Parámetros

Nombre Description
entry_expr
Requerido
<xref:<xref:qdk.qre.interop.str | Callable | LogicalCounts>>

Cadena de expresión de entrada de Q#, recuentos lógicos invocables o calculados previamente.

cache_path
Requerido
<xref:Optional>[<xref:Path>]

Ruta de acceso para leer y escribir el seguimiento almacenado en caché. Si No, el almacenamiento en caché está deshabilitado.

Devoluciones

Tipo Description

Seguimiento que representa el perfil de recursos del programa.

trace_from_qir

Convierta un programa QIR en un seguimiento de estimación de recursos.

Analiza el módulo QIR, extrae puertas cuánticas y crea un seguimiento que se puede usar para la estimación de recursos. Las ramas condicionales se resuelven siempre siguiendo la ruta de acceso falsa (suponiendo que los resultados de la medición sean Cero).

trace_from_qir(input: str | bytes) -> Trace

Parámetros

Nombre Description
input
Requerido

Entrada QIR como texto de IR de LLVM (str) o código de bits (bytes).

Devoluciones

Tipo Description

Seguimiento que contiene las operaciones cuánticas del programa QIR.

write_to_memory

Operación para escribir cúbits en memoria.

write_to_memory(memory_qubits: Sequence[Qid], compute_qubits: Sequence[Qid]) -> Operation

Parámetros

Nombre Description
memory_qubits
Requerido
compute_qubits
Requerido