qsharp Modul

Öffentliche Q#-Dolmetscher-API.

Dieses Modul ist die öffentliche Oberfläche für Q#-Interpreterfunktionen innerhalb des qdk Pakets.

Schlüsselexporte:

Klassen

BitFlipNoise

Das Bit-Flip-Rauschen, das in der Simulation verwendet werden soll.

Erstellt eine neue BitFlipNoise-Instanz.

Der Bit-Flip-Kanal wendet einen Pauli-X Fehler mit Wahrscheinlichkeit pan.

CircuitGenerationMethod

Öffentliche Q#-Dolmetscher-API.

Dieses Modul ist die öffentliche Oberfläche für Q#-Interpreterfunktionen innerhalb des qdk Pakets.

Schlüsselexporte:

DepolarizingNoise

Das depolarisierende Rauschen, das in der Simulation verwendet werden soll.

Erstellt eine neue DepolarizingNoise-Instanz.

Der depolarisierende Kanal wendet Pauli-X, Pauli-Y oder Pauli-Z Fehler jeweils mit Wahrscheinlichkeit an p / 3.

Pauli

Ein Q# Pauli-Operator.

PauliNoise

Das Pauli-Rauschen, das in der Simulation verwendet werden soll, dargestellt als Wahrscheinlichkeiten von Pauli-X, Pauli-Y und Pauli-Z Fehlern

Erstellt eine neue PauliNoise Instanz mit der angegebenen Fehlerwahrscheinlichkeit.

PhaseFlipNoise

Das Phasen-Flip-Rauschen, das in der Simulation verwendet werden soll.

Erstellt eine neue PhaseFlipNoise-Instanz.

Der Phasen-Flip-Kanal wendet einen Pauli-Z Fehler mit Wahrscheinlichkeit pan.

QSharpError

Ein Fehler, der vom Q#-Interpreter zurückgegeben wird.

Result

Ein Q#-Messergebnis.

ShotResult

Ein einzelnes Ergebnis eines Schusses.

StateDump

Ein Zustandsabbild, das vom Q#-Interpreter zurückgegeben wird.

TargetProfile

Ein Q#-Zielprofil.

Ein Zielprofil beschreibt die Funktionen der Hardware oder des Simulators, die zum Ausführen des Q#-Programms verwendet werden.

Functions

circuit

Synthetisiert einen Schaltkreis für ein Q#-Programm. Entweder ein Eintragsausdruck oder ein Vorgang muss angegeben werden.

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

Parameter

Name Beschreibung
entry_expr
str oder Callable

Ein Eintragsausdruck. Alternativ kann eine aufrufbare Datei bereitgestellt werden, die ein Q#-Aufruf erfordern muss.

Standardwert: None
*args
Erforderlich

Die Argumente, die an die aufrufbare Übergeben werden sollen, wenn eines angegeben wird.

Nur Schlüsselwortparameter

Name Beschreibung
operation
str

Der zu synthetisierende Vorgang. Dies kann ein Name eines Vorgangs oder eines Lambda-Ausdrucks sein. Der Vorgang darf nur Qubits oder Arrays von Qubits als Parameter verwenden.

Standardwert: None
generation_method

Die Methode, die für die Schaltungsgenerierung verwendet werden soll. ClassicalEval wertet den klassischen Kontrollfluss zur Schaltkreisgenerierung aus. Simulate führt eine vollständige Simulation aus, um den Schaltkreis nachzuverfolgen. Static verwendet teilauswertung und erfordert ein NichtzielprofilUnrestricted . Standardmäßig wird None die Generationsmethode automatisch ausgewählt.

Standardwert: None
max_operations
int

Die maximale Anzahl von Vorgängen, die in den Schaltkreis eingeschlossen werden sollen. Standardwerte, die None keine Beschränkung bedeuten.

Standardwert: None
source_locations

Wenn True, kommentiert jedes Gate mit seiner Quellposition.

Standardwert: False
group_by_scope

Wenn True, gruppiert Vorgänge nach ihrem enthaltenden Bereich, z. B. Funktionsdeklarationen oder Schleifenblöcke.

Standardwert: True
prune_classical_qubits

Wenn True, entfernt Qubits, die nie in einem Quantentor verwendet werden (z. B. Qubits nur als klassische Steuerelemente verwendet).

Standardwert: False

Gibt zurück

Typ Beschreibung
<xref:Circuit>

Der synthetisierte Schaltkreis.

Ausnahmen

Typ Beschreibung

Wenn ein Fehler auftritt, der den Schaltkreis synthesiert.

compile

Kompiliert den Q#-Quellcode in ein Programm, das an ein Ziel übermittelt werden kann. Entweder ein Eintragsausdruck oder ein aufrufbarer Ausdruck mit Argumenten muss angegeben werden.

Beispiel:

compile(entry_expr: str | Callable | GlobalCallable | Closure, *args) -> QirInputData

Parameter

Name Beschreibung
entry_expr
Erforderlich

Der Q#-Ausdruck, der als Einstiegspunkt für das Programm verwendet wird. Alternativ kann eine aufrufbare Datei bereitgestellt werden, die ein Q#-Aufruf erfordern muss.

*args
Erforderlich

Die Argumente, die an die aufrufbare Übergeben werden sollen, wenn eines angegeben wird.

Gibt zurück

Typ Beschreibung
<xref:QirInputData>

Das kompilierte Programm. Dient str() zum Abrufen der QIR-Zeichenfolge.

dump_circuit

Dumpt einen Schaltkreis, der den aktuellen Zustand des Simulators anzeigt.

Dieser Schaltkreis enthält die Tore, die im Simulator bis zum aktuellen Punkt angewendet wurden.

Erfordert, dass der Dolmetscher mit trace_circuit=True initialisiert wird.

dump_circuit() -> Circuit

Gibt zurück

Typ Beschreibung
<xref:Circuit>

Die aktuelle Schaltkreisablaufverfolgung.

Ausnahmen

Typ Beschreibung

Wenn der Dolmetscher nicht mit trace_circuit=True

dump_machine

Gibt den geringen Zustandsvektor des Simulators als StateDump -Objekt zurück.

dump_machine() -> StateDump

Gibt zurück

Typ Beschreibung

Der Zustand des Simulators.

dump_operation

Gibt eine quadratische Matrix komplexer Zahlen zurück, die den ausgeführten Vorgang darstellen.

dump_operation(operation: str, num_qubits: int) -> List[List[complex]]

Parameter

Name Beschreibung
operation
Erforderlich

Der auszuführende Vorgang, der auf einer Liste von Qubits ausgeführt werden muss.

num_qubits
Erforderlich

Die Anzahl der zu verwendenden Qubits.

Gibt zurück

Typ Beschreibung

Die Matrix, die den Vorgang darstellt.

estimate

Schätzt Ressourcen für Q#-Quellcode. Entweder ein Eintragsausdruck oder ein aufrufbarer Ausdruck mit Argumenten muss angegeben werden.

Veraltet seit Version This: Function verwendet die ältere Ressourcen-Estimator-API. Verwenden Sie stattdessen qdk.qre.

estimate(entry_expr: str | Callable | GlobalCallable | Closure, params: Dict[str, Any] | List | EstimatorParams | None = None, *args) -> EstimatorResult

Parameter

Name Beschreibung
entry_expr
Erforderlich

Der Eintragsausdruck. Alternativ kann eine aufrufbare Datei bereitgestellt werden, die ein Q#-Aufruf erfordern muss.

params

Die Parameter zum Konfigurieren der physischen Schätzung.

Standardwert: None
*args
Erforderlich

Die Argumente, die an die aufrufbare Übergeben werden sollen, wenn eines angegeben wird.

Gibt zurück

Typ Beschreibung

Die geschätzten Ressourcen.

estimate_custom

estimate_custom(algorithm, qubit, qec, factories=Ellipsis, *, error_budget=0.01, max_factories=None, logical_depth_factor=None, max_physical_qubits=None, max_duration=None, error_budget_pruning=False)

Parameter

Name Beschreibung
algorithm
Erforderlich
qubit
Erforderlich
qec
Erforderlich
factories
Standardwert: Ellipsis

Nur Schlüsselwortparameter

Name Beschreibung
error_budget
Standardwert: 0.01
max_factories
Standardwert: None
logical_depth_factor
Standardwert: None
max_physical_qubits
Standardwert: None
max_duration
Standardwert: None
error_budget_pruning
Standardwert: False

eval

Wertet den Q#-Quellcode aus.

Die Ausgabe wird in der Konsole gedruckt.

eval(source: str, *, save_events: bool = False) -> Any

Parameter

Name Beschreibung
source
Erforderlich

Der zu bewertende Q#-Quellcode.

Nur Schlüsselwortparameter

Name Beschreibung
save_events

Wenn true, werden alle Ausgaben gespeichert und zurückgegeben. Wenn falsch, werden sie gedruckt.

Standardwert: False

Gibt zurück

Typ Beschreibung
Any

Der wert, der von der letzten Anweisung im Quellcode oder der gespeicherten Ausgabe zurückgegeben wird, wenn save_events "true" ist.

Ausnahmen

Typ Beschreibung

Wenn ein Fehler beim Auswerten des Quellcodes vorliegt.

init

Initialisiert den Q#-Dolmetscher.

init(*, 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) -> Config

Nur Schlüsselwortparameter

Name Beschreibung
target_profile

Durch Festlegen des Zielprofils kann der Q#-Interpreter Programme generieren, die mit einem bestimmten Ziel kompatibel sind. Siehe TargetProfile.

Standardwert: Unrestricted
target_name

Ein optionaler Name des Zielcomputers, der zum Ableiten der kompatiblen target_profile Einstellung verwendet werden soll.

Standardwert: None
project_root

Optionaler Pfad zu einem Stammverzeichnis mit einem Q#-Projekt, das eingeschlossen werden soll. Sie muss ein qsharp.json Projektmanifest enthalten.

Standardwert: None
language_features

Eine optionale Liste der zu aktivierenden Sprachfeatures. Diese entsprechen experimentellen oder Vorschau-Q#-Sprachfeatures. Gültige Werte sind:

  • "v2-preview-syntax": Aktiviert Q# v2-Vorschausyntax. Dadurch wird die Unterstützung des bereichsbezogenen Qubit-Zuordnungsblockformulars (use q = Qubit() { ... }), das stattdessen das Anweisungsformular (use q = Qubit();) erfordert, entfernt. Außerdem wird die Anforderung zum Verwenden des set Schlüsselworts für veränderbare Variablenzuweisungen entfernt.
Standardwert: None
trace_circuit

Aktiviert die Ablaufverfolgung von Schaltkreisen während der Ausführung. Das Übergeben von True ist erforderlich, damit die dump_circuit-Funktion einen Schaltkreis zurückgibt. Die Schaltkreisfunktion wird nicht von diesem Parameter beeinflusst und generiert immer einen Schaltkreis.

Standardwert: None

Gibt zurück

Typ Beschreibung
<xref:Config>

Die Q#-Dolmetscherkonfiguration.

logical_counts

Extrahiert die Anzahl der logischen Ressourcen aus dem Q#-Quellcode. Entweder ein Eintragsausdruck oder ein aufrufbarer Ausdruck mit Argumenten muss angegeben werden.

logical_counts(entry_expr: str | Callable | GlobalCallable | Closure, *args) -> LogicalCounts

Parameter

Name Beschreibung
entry_expr
Erforderlich

Der Eintragsausdruck. Alternativ kann eine aufrufbare Datei bereitgestellt werden, die ein Q#-Aufruf erfordern muss.

Gibt zurück

Typ Beschreibung

Programmressourcen in Bezug auf die Anzahl der logischen Toren.

run

Führt den angegebenen Q#-Ausdruck für die angegebene Anzahl von Aufnahmen aus. Jeder Schuss verwendet eine unabhängige Instanz des Simulators.

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]

Parameter

Name Beschreibung
entry_expr
Erforderlich

Der Eintragsausdruck. Alternativ kann eine aufrufbare Datei bereitgestellt werden, die ein Q#-Aufruf erfordern muss.

shots
Erforderlich

Die Anzahl der auszuführenden Aufnahmen.

*args
Erforderlich

Die Argumente, die an die aufrufbare Übergeben werden sollen, wenn eines angegeben wird.

on_result
Erforderlich

Eine Rückruffunktion, die mit jedem Ergebnis aufgerufen wird.

save_events
Erforderlich

Wenn true, wird die Ausgabe der einzelnen Aufnahmen gespeichert. Wenn falsch, werden sie gedruckt.

noise
Erforderlich

Das in der Simulation zu verwendende Rauschen.

qubit_loss
Erforderlich

Die Wahrscheinlichkeit eines Qubitverlusts in der Simulation.

seed
Erforderlich

Der zu verwendende Seed für den Zufallszahlengenerator in der Simulation, falls vorhanden.

type
Erforderlich

Der zu verwendende Simulatortyp. Wenn nicht angegeben, wird die standardmäßige Vektorsimulation mit geringem Zustand verwendet.

num_qubits
Erforderlich

Die Anzahl der qubits, die für den Simulationstyp "clifford" verwendet werden sollen. Wenn nicht angegeben, geht der Clifford-Simulator von einer Standardeinstellung von 1000 Qubits aus.

Nur Schlüsselwortparameter

Name Beschreibung
on_result
Standardwert: None
save_events
Standardwert: False
noise
Standardwert: None
qubit_loss
Standardwert: None
seed
Standardwert: None
type
Standardwert: None
num_qubits
Standardwert: None

Gibt zurück

Typ Beschreibung

Eine Liste der Ergebnisse oder Laufzeitfehler. Ist save_events "true", wird eine Liste der ShotResult zurückgegeben.

Ausnahmen

Typ Beschreibung

Wenn beim Interpretieren der Eingabe ein Fehler auftritt.

Wenn die Anzahl der Aufnahmen kleiner als 1 ist.

set_classical_seed

Legt den Ausgangswert für den Zufallszahlengenerator fest, der für klassische Zufallszahlenvorgänge der Standardbibliothek verwendet wird. Dies gilt für den gesamten Q#-Code, der ausgeführt, kompiliert oder geschätzt wird.

set_classical_seed(seed: int | None) -> None

Parameter

Name Beschreibung
seed
Erforderlich

Der zu verwendende Seed für den klassischen Zufallszahlengenerator. Wenn keine, wird der Samen aus Entropie generiert.

set_quantum_seed

Legt den Samen für den Zufallszahlengenerator fest, der für Quantenmessungen verwendet wird. Dies gilt für den gesamten Q#-Code, der ausgeführt, kompiliert oder geschätzt wird.

set_quantum_seed(seed: int | None) -> None

Parameter

Name Beschreibung
seed
Erforderlich

Der seed to use for the quantum random number generator. Wenn keine, wird der Samen aus Entropie generiert.