Context Classe
Um ambiente de interpretador de Q# isolado.
Um contexto fornece um ambiente de execução de Q# autocontido em que o código é avaliado, compilado e executado isoladamente de outras instâncias de contexto. Cada Contexto mantém seu próprio namespace de código.
Um contexto tem um atributo code que é um módulo Python que contém todas as operações e tipos de Q# definidos nesse contexto. Isso permite que você chame operações de Q# de Python.
Exemplo:
ctx = qdk.Context()
ctx.eval("operation Main() : Result { use q = Qubit(); X(q); MResetZ(q) }")
assert ctx.run("Main()", 2) == [qdk.Result.One, qdk.Result.One]
assert ctx.code.Main() == qdk.Result.One
Inicializa um novo contexto de Q# isolado.
Construtor
Context(*, target_profile: TargetProfile = TargetProfile.Unrestricted, target_name: str | None = None, project_root: str | None = None, language_features: List[str] | None = None, _trace_circuit: bool | None = None, _is_global_context: bool = False)
Parâmetros somente de palavra-chave
| Nome | Description |
|---|---|
|
target_profile
|
Definir o perfil de destino permite que o interpretador de Q# gere programas compatíveis com um destino específico. Consulte TargetProfile. Valor padrão: Unrestricted
|
|
target_name
|
Um nome opcional do computador de destino a ser usado para inferir a configuração de target_profile compatível. Valor padrão: None
|
|
project_root
|
Um caminho opcional para um diretório raiz com um projeto Q# a ser incluído. Ele deve conter um manifesto qsharp.json projeto. Valor padrão: None
|
|
language_features
|
Uma lista opcional de sinalizadores de recursos de idioma a serem habilitados. Eles correspondem a recursos experimentais ou de linguagem Q# de visualização. Os valores válidos são:
o formulário de bloco de alocação de qubit com escopo ( Valor padrão: None
|
|
_trace_circuit
|
Valor padrão: None
|
|
_is_global_context
|
Valor padrão: False
|
Métodos
| circuit |
Sintetiza um circuito para um programa Q#. Uma expressão de entrada ou uma operação devem ser fornecidas. |
| compile |
Compila o código-fonte Q# em um programa que pode ser enviado para um destino. Uma expressão de entrada ou uma chamada com argumentos deve ser fornecida. Exemplo: |
| dump_machine |
Retorna o vetor de estado esparso do simulador como um objeto StateDump. |
| eval |
Avalia o código-fonte Q#. A saída é impressa no console. |
| get_target_profile |
Retorna o perfil de destino para este Contexto. |
| import_openqasm |
Importa o código-fonte do OpenQASM para o interpretador desse contexto. |
| logical_counts |
Extrai contagens de recursos lógicos do código-fonte Q#. Uma expressão de entrada ou uma chamada com argumentos deve ser fornecida. |
| run |
Executa a expressão de Q# fornecida para o número determinado de capturas. Cada captura usa uma instância independente do simulador. |
| set_classical_seed |
Define a semente do gerador de número aleatório usado para operações de número aleatório clássico da biblioteca padrão. Isso se aplica a todos os códigos Q# executados, compilados ou estimados neste Contexto. |
| set_quantum_seed |
Define a semente do gerador de número aleatório usado para medidas quânticas. Isso se aplica a todos os códigos Q# executados, compilados ou estimados neste Contexto. |
circuit
Sintetiza um circuito para um programa Q#. Uma expressão de entrada ou uma operação devem ser fornecidas.
circuit(entry_expr: str | Callable | GlobalCallable | Closure | None = None, *args, operation: str | None = None, generation_method: CircuitGenerationMethod | None = None, max_operations: int | None = None, source_locations: bool = False, group_by_scope: bool = True, prune_classical_qubits: bool = False) -> Circuit
Parâmetros
| Nome | Description |
|---|---|
|
entry_expr
|
Uma expressão de entrada. Como alternativa, um callable pode ser fornecido, que deve ser um callable Q#. Valor padrão: None
|
|
*args
Obrigatório
|
Os argumentos a serem passados para o callable, se um for fornecido. |
Parâmetros somente de palavra-chave
| Nome | Description |
|---|---|
|
operation
|
A operação a ser sintetizada. Pode ser um nome de uma operação ou uma expressão lambda. A operação deve usar apenas qubits ou matrizes de qubits como parâmetros. Valor padrão: None
|
|
generation_method
|
O método a ser usado para geração de circuito.
ClassicalEval avalia o fluxo de controle clássico no tempo de geração do circuito.
Simulate executa uma simulação completa para rastrear o circuito.
Static usa a avaliação parcial e requer um perfil que não seja de Valor padrão: None
|
|
max_operations
|
O número máximo de operações a serem incluídas no circuito. Padrões para Valor padrão: None
|
|
source_locations
|
Se Valor padrão: False
|
|
group_by_scope
|
Se Valor padrão: True
|
|
prune_classical_qubits
|
Se Valor padrão: False
|
Retornos
| Tipo | Description |
|---|---|
|
<xref:Circuit>
|
O circuito sintetizado. |
Exceções
| Tipo | Description |
|---|---|
|
Se houver um erro ao sintetizar o circuito. |
compile
Compila o código-fonte Q# em um programa que pode ser enviado para um destino. Uma expressão de entrada ou uma chamada com argumentos deve ser fornecida.
Exemplo:
compile(entry_expr: str | Callable | GlobalCallable | Closure, *args) -> QirInputData
Parâmetros
| Nome | Description |
|---|---|
|
entry_expr
Obrigatório
|
A expressão Q# que será usada como o ponto de entrada do programa. Como alternativa, um callable pode ser fornecido, que deve ser um callable Q#. |
|
*args
Obrigatório
|
Os argumentos a serem passados para o callable, se um for fornecido. |
Retornos
| Tipo | Description |
|---|---|
|
<xref:QirInputData>
|
O programa compilado. Use |
dump_machine
Retorna o vetor de estado esparso do simulador como um objeto StateDump.
dump_machine() -> StateDump
Retornos
| Tipo | Description |
|---|---|
|
O estado do simulador. |
eval
Avalia o código-fonte Q#.
A saída é impressa no console.
eval(source: str, *, save_events: bool = False) -> Any
Parâmetros
| Nome | Description |
|---|---|
|
source
Obrigatório
|
O código-fonte Q# a ser avaliado. |
Parâmetros somente de palavra-chave
| Nome | Description |
|---|---|
|
save_events
|
Se for true, toda a saída será salva e retornada. Se forem falsas, elas serão impressas. Valor padrão: False
|
Retornos
| Tipo | Description |
|---|---|
|
O valor retornado pela última instrução no código-fonte ou a saída salva, se |
Exceções
| Tipo | Description |
|---|---|
|
Se houver um erro ao avaliar o código-fonte. |
get_target_profile
Retorna o perfil de destino para este Contexto.
get_target_profile() -> TargetProfile
import_openqasm
Importa o código-fonte do OpenQASM para o interpretador desse contexto.
import_openqasm(source: str, **kwargs: Any) -> Any
Parâmetros
| Nome | Description |
|---|---|
|
source
Obrigatório
|
Um programa ou fragmento do OpenQASM. |
|
**kwargs
Obrigatório
|
Argumentos de palavra-chave adicionais. Opções comuns:
|
Retornos
| Tipo | Description |
|---|---|
|
O valor retornado pela última instrução no código-fonte. |
Exceções
| Tipo | Description |
|---|---|
|
Se houver um erro gerando, analisando ou analisando a origem do OpenQASM. |
|
|
Se houver um erro ao compilar o programa. |
logical_counts
Extrai contagens de recursos lógicos do código-fonte Q#. Uma expressão de entrada ou uma chamada com argumentos deve ser fornecida.
logical_counts(entry_expr: str | Callable | GlobalCallable | Closure, *args) -> LogicalCounts
Parâmetros
| Nome | Description |
|---|---|
|
entry_expr
Obrigatório
|
A expressão de entrada. Como alternativa, um callable pode ser fornecido, que deve ser um callable Q#. |
Retornos
| Tipo | Description |
|---|---|
|
Recursos do programa em termos de contagens de portões lógicas. |
run
Executa a expressão de Q# fornecida para o número determinado de capturas. Cada captura usa uma instância independente do simulador.
run(entry_expr: str | Callable | GlobalCallable | Closure, shots: int, *args, on_result: Callable[[ShotResult], None] | None = None, save_events: bool = False, noise: Tuple[float, float, float] | PauliNoise | BitFlipNoise | PhaseFlipNoise | DepolarizingNoise | NoiseConfig | None = None, qubit_loss: float | None = None, seed: int | None = None, type: Literal['sparse', 'clifford'] | None = None, num_qubits: int | None = None) -> List[Any]
Parâmetros
| Nome | Description |
|---|---|
|
entry_expr
Obrigatório
|
A expressão de entrada. Como alternativa, um callable pode ser fornecido, que deve ser um callable Q#. |
|
shots
Obrigatório
|
O número de tiros a serem executados. |
|
*args
Obrigatório
|
Os argumentos a serem passados para o callable, se um for fornecido. |
|
on_result
Obrigatório
|
Uma função de retorno de chamada que será chamada com cada resultado. |
|
save_events
Obrigatório
|
Se for true, a saída de cada tiro será salva. Se forem falsas, elas serão impressas. |
|
noise
Obrigatório
|
O ruído a ser usado na simulação. |
|
qubit_loss
Obrigatório
|
A probabilidade de perda de qubit na simulação. |
|
seed
Obrigatório
|
A semente a ser usada para o gerador de número aleatório na simulação, se houver. |
|
type
Obrigatório
|
O tipo de simulador a ser usado. Se não for especificado, a simulação de vetor de estado esparso padrão será usada. |
|
num_qubits
Obrigatório
|
O número de qubits a serem usados para o tipo de simulação "clifford". Se não for especificado, o simulador Clifford assumirá um padrão de 1000 qubits. |
Parâmetros somente de palavra-chave
| Nome | Description |
|---|---|
|
on_result
|
Valor padrão: None
|
|
save_events
|
Valor padrão: False
|
|
noise
|
Valor padrão: None
|
|
qubit_loss
|
Valor padrão: None
|
|
seed
|
Valor padrão: None
|
|
type
|
Valor padrão: None
|
|
num_qubits
|
Valor padrão: None
|
Retornos
| Tipo | Description |
|---|---|
|
Uma lista de resultados ou erros de runtime. Se |
Exceções
| Tipo | Description |
|---|---|
|
Se houver um erro ao interpretar a entrada. |
|
|
Se o número de tiros for menor que 1. |
set_classical_seed
Define a semente do gerador de número aleatório usado para operações de número aleatório clássico da biblioteca padrão. Isso se aplica a todos os códigos Q# executados, compilados ou estimados neste Contexto.
set_classical_seed(seed: int | None) -> None
Parâmetros
| Nome | Description |
|---|---|
|
seed
Obrigatório
|
A semente a ser usada para o gerador de número aleatório clássico. Se None, a semente será gerada a partir da entropia. |
set_quantum_seed
Define a semente do gerador de número aleatório usado para medidas quânticas. Isso se aplica a todos os códigos Q# executados, compilados ou estimados neste Contexto.
set_quantum_seed(seed: int | None) -> None
Parâmetros
| Nome | Description |
|---|---|
|
seed
Obrigatório
|
A semente a ser usada para o gerador de número aleatório quântico. Se None, a semente será gerada a partir da entropia. |
Atributos
code
code: Any