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 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
|
|