qsharp Modul
Öffentliche Q#-Dolmetscher-API.
Dieses Modul ist die öffentliche Oberfläche für Q#-Interpreterfunktionen innerhalb des qdk Pakets.
Schlüsselexporte:
- init — Initialisieren oder Zurücksetzen des Q#-Dolmetschers.
- eval — wertet einen Q#-Ausdruck aus und gibt seinen Wert zurück.
- run – Führen Sie einen Q#-Eintragsausdruck für einen oder mehrere Aufnahmen aus.
- compile — kompilieren Sie die Q#-Quelle für die Hardwareübermittlung auf QIR.
- circuit — Synthetisieren eines Schaltkreisdiagramms aus Q#-Code.
- estimate — schätzen Sie Quantenressourcen (veraltet; verwenden Sie qre stattdessen).
- logical_counts - Extrahieren Sie logische Gate-Anzahl aus Q#-Code.
- dump_machine — gibt den aktuellen Simulatorzustand als ein StateDump.
-
dump_circuit — den nachverfolgten Schaltkreis zurückgeben (erforderlich
trace_circuit=Truein init). - dump_operation — berechnen Sie die einheitliche Matrix eines Q#-Vorgangs.
- set_quantum_seed, set_classical_seed — Steuern von RNG-Samen.
- estimate_custom — Führen Sie die generische Ressourcenschätzung mit vom Benutzer bereitgestellten Algorithmus, Qubit- und Codeparametern aus.
- QSharpError – wird bei F#-Kompilierungs- oder Laufzeitfehlern ausgelöst.
- TargetProfile — Enumeration des Kompilierungszielprofils.
- Result, Pauli — Q#-Grundtypen.
- CircuitGenerationMethod — steuert, wie Schaltkreise synthetisiert werden.
- StateDump, — ShotResult Dolmetscherausgabetypen.
- PauliNoise, , DepolarizingNoiseBitFlipNoise, PhaseFlipNoise — Rauschmodelle für die Simulation.
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 |
| CircuitGenerationMethod |
Öffentliche Q#-Dolmetscher-API. Dieses Modul ist die öffentliche Oberfläche für Q#-Interpreterfunktionen innerhalb des 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 |
| 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 |
| 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
|
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
|
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 Nichtzielprofil Standardwert: None
|
|
max_operations
|
Die maximale Anzahl von Vorgängen, die in den Schaltkreis eingeschlossen werden sollen.
Standardwerte, die Standardwert: None
|
|
source_locations
|
Wenn Standardwert: False
|
|
group_by_scope
|
Wenn Standardwert: True
|
|
prune_classical_qubits
|
Wenn 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 |
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 |
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 |
|---|---|
|
Der wert, der von der letzten Anweisung im Quellcode oder der gespeicherten Ausgabe zurückgegeben wird, wenn |
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:
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 |
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. |