Versionshinweise für das Microsoft Quantum Development Kit

Dieser Artikel enthält Informationen zu den einzelnen Releases des Microsoft Quantum Development Kit.

Installationsanweisungen finden Sie im Installationshandbuch.

Updateanweisungen finden Sie im Updatehandbuch.

Version 0.15.2103.133969

Releasedatum: 30. März 2021

Version 0.15.2102.129448

Releasedatum: 22. Februar 2021

  • Verbesserte IQ#-Debugbenutzeroberfläche durch Hinzufügen einer horizontalen Scrollleiste, mit der sowohl Ausführungspfade als auch grundlegende Zustandsvisualisierungen gescrollt werden können
  • Neue Funktionen zur Darstellung des Gruppenprodukts und -kehrwerts der Clifford-Gruppe eines einzelnen Qubits, um schnell die allgemeinen Clifford-Operatoren eines einzelnen Qubits zu definieren und die Clifford-Operatoren eines einzelnen Qubits als Vorgänge anzuwenden. Weitere Informationen finden Sie unter Issue 409.
  • Sicherheitsproblem im Microsoft Quantum Development Kit für die Visual Studio Code-Erweiterung behoben. Weitere Informationen finden Sie unter CVE-2021-27082.

Version 0.15.2102.128318

Releasedatum: 12. Februar 2021

  • Fehler „'npm' is not recognized as an internal or external command“ ('npm' wird nicht als interner oder externer Befehl erkannt) behoben, der während der Erstellung von Q#-Projekten mit der Visual Studio Code-Erweiterung auftrat. Weitere Informationen finden Sie unter Issue 848.

Version 0.15.2101.126940

Releasedatum: 29. Januar 2021

  • Projektvorlagen für ausführbare Dateien zum Q#-Compiler hinzugefügt, die auf die Anbieter „IonQ“ und „Honeywell“ ausgerichtet sind
  • IQ#-Kernelsyntaxhervorhebung aktualisiert, sodass Änderungen der Q#-Syntax berücksichtigt werden, die in Version 0.15.2101125897 eingeführt wurden
  • Fehlerbehebung für die Unterstützung der Übergabe von Arrays als Eingabeargumente an Q#-Programme, die über %azure.execute an Azure Quantum übermittelt werden. Weitere Informationen finden Sie unter Issue 401.
  • Fehler des Typs „Berechtigung verweigert“ behoben, der bei Verwendung von az in iqsharp-base-Docker-Images auftrat. Weitere Informationen finden Sie unter Issue 404.

Version 0.15.2101125897

Releasedatum: 26. Januar 2021

  • Qubitzuordnung vereinfacht, was zu einer praktischeren Syntax für die Zuordnung von Qubits führt. Weitere Informationen finden Sie im Q#-Sprachrepository.
  • QDK-Python-Repository erstellt, das azure-quantum enthält, den Python-Client für die Übermittlung quanteninspirierter Optimierungsaufträge an Azure Quantum, sowie qdk, einschließlich qdk.chemistry, eine Python-basierte Komfortschicht für die Q#-Chemiebibliothek, die molekulare Visualisierungen und Funktionen zum Generieren von Eingabedateien für verschiedene Chemiepakete wie NWChem, Psi4 und OpenMolcas enthält
  • Klammern sind jetzt für Vorgangs- und Funktionstypen sowie für if-, elif-, while- und until-Anweisungen optional. Klammern für for-, use- und borrow-Anweisungen sind veraltet.
  • Verbesserte Breitenschätzungen für optimale Tiefe. Weitere Informationen
  • ApplyUnitary-Vorgang als explizite Matrix mit ApplyUnitary bereitgestellt (QuantumLibraries#391, externer Beitrag von Dmytro Fedoriaka)
  • https://github.com/microsoft/iqsharp/issues/387 behoben, indem die Leistungsbeeinträchtigung beim Start des IQ# -Kernels behoben wurde

Version 0.14.2011120240

Releasedatum: 25. November 2020

  • Verbesserte Compilerleistung durch schnelleres Laden von Verweisen
  • ANTLR-Grammatik für Q# zur Q#-Sprachspezifikation hinzugefügt
  • Microsoft.Quantum.Preparation-Namespace aktualisiert, sodass er den Stilvorgaben und API-Entwurfsprinzipien stärker entspricht und bereinigte gemischte Zustände mit zusätzlichen Daten unterstützt (Vorschlag, Reviewanmerkungen und PRs 212, 322, 375, 376)
  • Klammern um wiederholte Aufrufausdrücke jetzt optional: (Foo(x))(y) gleichbedeutend mit Foo(x)(y)
  • Benutzer der Visual Studio- oder Visual Studio Code-Erweiterung, die .NET 5 oder Visual Studio 16.8 installiert haben, werden möglicherweise aufgefordert, .NET Core 3.1 zu installieren, um weiterhin mit den Erweiterungen arbeiten zu können.

Hier finden Sie die vollständige Liste geschlossener Pull Requests für Bibliotheken, den Compiler, die Runtime, Beispiele, IQ# und Katas.

Version 0.13.20111004

Releasedatum: 10. November 2020

Dieses Release deaktiviert IntelliSense-Features für Q#-Dateien in Visual Studio und Visual Studio Code, wenn keine Projektdatei vorhanden ist. Dadurch wird ein Problem behoben, bei dem IntelliSense-Features unter Umständen nicht mehr funktionierten, nachdem eine neue Datei zu einem Projekt hinzugefügt wurde Q# (siehe qsharp-compiler#720).

Version 0.13.20102604

Releasedatum: 27. Oktober 2020

Dieses Release enthält Folgendes:

  • Die Ressourcenschätzung gibt jetzt zusätzlich zur Qubitanzahl gleichzeitig erreichbare Tiefen- und Breitenschätzungen aus. Ausführliche Informationen finden Sie hier.

Hier finden Sie die vollständige Liste geschlossener Pull Requests für Bibliotheken, den Compiler, die Runtime, Beispiele, IQ# und Katas.

Version 0.12.20100504

Releasedatum: 5. Oktober 2020

Mit diesem Release wird ein Fehler behoben, der sich auf die Last von Q#-Notebooks auswirkt (siehe iqsharp#331).

Version 0.12.20092803

Releasedatum: 29. September 2020

Dieses Release enthält Folgendes:

  • Ankündigung und Spezifikationsentwurf der Quantum Intermediate Representation (QIR), die als allgemeines Format für verschiedene Front- und Back-Ends vorgesehen ist. Weitere Informationen finden Sie auch im Blogbeitrag zu QIR.
  • Veröffentlichung eines neuen Q#-Sprachrepositorys, das auch die vollständige Q#-Dokumentation enthält
  • Leistungsverbesserungen für QuantumSimulator für Programme mit einer großen Anzahl von Qubits: bessere Anwendung von Gatefusionentscheidungen, verbesserte Parallelisierung auf Linux-Systemen, intelligente Planung der Gateausführung hinzugefügt, Fehlerbehebungen
  • IntelliSense-Features jetzt auch ohne Projektdatei für Q#-Dateien in Visual Studio und Visual Studio Code unterstützt
  • Verschiedene Interoperabilitätsverbesserungen für Q# und Python sowie Fehlerbehebungen, einschließlich besserer Unterstützung für NumPy-Datentypen
  • Verbesserungen am Namespace „Microsoft.Quantum.Arrays“ (siehe microsoft/QuantumLibraries#313)
  • Neues Beispiel für Repeat-Until-Success hinzugefügt, das nur zwei Qubits verwendet

Seit dem letzten Release wurde der Standardbranch in jedem der Microsoft-Open-Source-Repositorys in main umbenannt.

Hier finden Sie die vollständige Liste geschlossener Pull Requests für Bibliotheken, den Compiler, die Runtime, Beispiele, IQ# und Katas.

Version 0.12.20082513

Releasedatum: 25. August 2020

Dieses Release enthält Folgendes:

Hier finden Sie die vollständige Liste geschlossener Pull Requests für Bibliotheken, den Compiler, die Runtime, Beispiele, IQ# und Katas.

Version 0.12.20072031

Releasedatum: 21. Juli 2020

Dieses Release enthält Folgendes:

  • Geöffnete Namespaces in Q#-Notebooks sind jetzt verfügbar, wenn alle zukünftigen Zellen ausgeführt werden. Dadurch können Namespaces beispielsweise einmal oben im Notebook in einer Zelle geöffnet werden, anstatt relevante Namespaces in jeder Codezelle öffnen zu müssen. Ein neuer Magic-Befehl %lsopen zeigt die Liste der derzeit geöffneten Namespaces an.

Hier finden Sie die vollständige Liste geschlossener Pull Requests für Bibliotheken, den Compiler, die Runtime, Beispiele, IQ# und Katas.

Version 0.12.20070124

Releasedatum: 2. Juli 2020

Dieses Release enthält Folgendes:

  • Neues Tool qdk-chem zum Konvertieren von Serialisierungsformaten bei Problemen mit elektronische Legacystrukturen (z. B. FCIDUMP) in Broombridge
  • Neue Funktionen und Vorgänge im Namespace Microsoft.Quantum.Synthesis für die konsistente Anwendung klassischer Oracles mit transformations- und zerlegungsbasierten Synthesealgorithmen
  • IQ# lässt nun Argumente für %simulate, %estimate und andere Magic-Befehle zu. Weitere Informationen finden Sie in der Referenz zum Magic-Befehl %simulate.
  • Neue Phasenanzeigeoptionen in IQ#. Weitere Informationen finden Sie in der Referenz zum Magic-Befehl %config.
  • IQ# und das Python-Paket qsharp werden jetzt über Conda-Pakete (qsharp und iqsharp) bereitgestellt, um die lokale Installation von Q#-Jupyter- und -Python-Funktionen in einer Conda-Umgebung zu vereinfachen. Weitere Informationen finden Sie in den Installationsleitfäden für Q#-Jupyter Notebooks und Q# mit Python.
  • Bei Verwendung des Simulators müssen sich Qubits bei der Freigabe nicht mehr im Zustand |0⟩ befinden, sondern können automatisch zurückgesetzt werden, wenn sie unmittelbar vor der Freigabe gemessen wurden.
  • Updates, um IQ#-Benutzern die Nutzung von Bibliothekspaketen mit unterschiedlichen QDK-Versionen zu erleichtern. Jetzt müssen nur noch Haupt- und Nebenversionsnummern übereinstimmen, nicht mehr die gesamte Version.
  • Veralteter Namespace Microsoft.Quantum.Primitive.* entfernt
  • Verschobene Vorgänge:
    • Microsoft.Quantum.Intrinsic.Assert ist jetzt Microsoft.Quantum.Diagnostics.AssertMeasurement
    • Microsoft.Quantum.Intrinsic.AssertProb ist jetzt Microsoft.Quantum.Diagnostics.AssertMeasurementProbability
  • Behebung von Programmfehlern

Hier finden Sie die vollständige Liste geschlossener Pull Requests für Bibliotheken, den Compiler, die Runtime, Beispiele, IQ# und Katas.

Version 0.11.2006.403

Veröffentlichungsdatum: 4. Juni 2020

In diesem Release wird ein Fehler behoben, der die Kompilierung von Q#-Projekten beeinträchtigte.

Version 0.11.2006.207

Veröffentlichungsdatum: 3. Juni 2020

Dieses Release enthält Folgendes:

  • Bei Q#-Notebooks und Python-Hostprogrammen tritt kein Fehler mehr auf, wenn ein Q#-Einstiegspunkt vorhanden ist.
  • Die Standardbibliothek wurde aktualisiert, um die Verwendung von Zugriffsmodifizierern zu ermöglichen.
  • Der Compiler ermöglicht jetzt das Einfügen von Umschreibungsschritten zwischen integrierten Umschreibungsschritten.
  • Einige veraltete Funktionen und Vorgänge wurden gemäß dem in den API-Prinzipien beschriebenen Zeitplan entfernt. Q#-Programme und -Bibliotheken, die in Version 0.11.2004.2825 ohne Warnungen erstellt werden, funktionieren weiterhin unverändert.

Hier finden Sie die vollständige Liste geschlossener Pull Requests für Bibliotheken, den Compiler, die Runtime, Beispiele, IQ# und Katas.

Hinweis

Diese Version enthält einen Fehler, der die Kompilierung von Q#-Projekten beeinträchtigt. Wir empfehlen das Upgrade auf ein neueres Release.

Version 0.11.2004.2825

Veröffentlichungsdatum: 30. April 2020

Dieses Release enthält Folgendes:

  • Neue Unterstützung für Q#-Anwendungen, die nun keine C#- oder Python-Hostdatei mehr benötigen. Weitere Informationen zu den ersten Schritten mit Q#-Anwendungen finden Sie hier.
  • Der Schnellstart für den Quantum-Zufallszahlengenerator wurde so aktualisiert, dass keine C#- oder Python-Hostdatei mehr erforderlich ist. Siehe aktualisierter Schnellstart
  • Leistungsverbesserungen für IQ#-Docker-Images

Hinweis

Q#-Anwendungen, die das neue Attribut @EntryPoint() verwenden, können derzeit nicht von Python- oder .NET-Hostprogrammen aufgerufen werden. Weitere Informationen finden Sie in den Leitfäden für Python- und .NET-Interoperabilität.

Version 0.11.2003.3107

Veröffentlichungsdatum: 31. März 2020

Dieses Release enthält kleinere Fehlerbehebungen für die Version 0.11.2003.2506.

Version 0.11.2003.2506

Veröffentlichungsdatum: 26. März 2020

Dieses Release enthält Folgendes:

  • Neue Unterstützung für Zugriffsmodifizierer in Q#. Weitere Informationen finden Sie unter Zugriffsmodifizierer.
  • Aktualisiert auf .NET Core SDK 3.1

Hier finden Sie die vollständige Liste geschlossener Pull Requests für Bibliotheken, Compiler, Runtime, Beispiele und Katas.

Version 0.10.2002.2610

Veröffentlichungsdatum: 27. Februar 2020

Dieses Release enthält Folgendes:

  • Neue Quantum Machine Learning-Bibliothek. Weitere Informationen finden Sie auf unserer QML-Seite.
  • Fehlerbehebungen für IQ#, die zu einer Leistungssteigerung um das Zehn- bis Zwanzigfache beim Laden von NuGet-Paketen führen

Hier finden Sie die vollständige Liste geschlossener Pull Requests für Bibliotheken, Compiler, Runtime, Beispiele und Katas.

Version 0.10.2001.2831

Veröffentlichungsdatum: 29. Januar 2020

Dieses Release enthält Folgendes:

  • Neues NuGet-Paket „Microsoft.Quantum.SDK“, mit dem das NuGet-Paket „Microsoft.Quantum.Development.Kit“ bei der Erstellung neuer Projekte ersetzt wird. Das NuGet-Paket „Microsoft.Quantum.Development.Kit“ wird für vorhandene Projekte weiter unterstützt.
  • Unterstützung für Q#-Compilererweiterungen basierend auf dem neuen NuGet-Paket „Microsoft.Quantum.SDK“. Weitere Informationen finden Sie in der Dokumentation auf GitHub, im Beispiel für Compilererweiterungen und im Blog zur Q#-Entwicklung.
  • Unterstützung für .NET Core 3.1 hinzugefügt. Wir empfehlen Ihnen dringend, Version 3.1.100 zu installieren, da es bei Buildvorgängen mit früheren .NET Core SDK-Versionen zu Problemen kommen kann.
  • Neue Compilertransformationen verfügbar unter „Microsoft.Quantum.QsCompiler.Experimental“.
  • Neue Funktionalität zum Verfügbarmachen von Ausgabezustandsvektoren als HTML-Code in IQ#
  • EstimateFrequencyA-Unterstützung zu Microsoft.Quantum.Characterization für Hadamard- und SWAP-Tests hinzugefügt.
  • Für den Namespace „AmplitudeAmplification“ wird jetzt der Q#-Styleguide verwendet.

Hier finden Sie die vollständige Liste geschlossener Pull Requests für Bibliotheken, Compiler, Runtime, Beispiele und Katas.

Version 0.10.1912.0501

Veröffentlichungsdatum: 5. Dezember 2019

Dieses Release enthält Folgendes:

Hier finden Sie die vollständige Liste geschlossener Pull Requests für Bibliotheken, Compiler, Runtime, Beispiele und Katas.

Version 0.10.1911.1607

Veröffentlichungsdatum: 17. November 2019

Dieses Release enthält Folgendes:

  • Behebung von Leistungsproblemen für Quanten-Katas und Jupyter Notebook-Instanzen

Hier finden Sie die vollständige Liste geschlossener Pull Requests für Bibliotheken, Compiler, Runtime, Beispiele und Katas.

Version 0.10.1911.307

Veröffentlichungsdatum: 1. November 2019

Dieses Release enthält Folgendes:

  • Updates für Visual Studio Code- und Visual Studio-Erweiterungen zur Bereitstellung des Sprachservers als eigenständige ausführbare Datei, wodurch die Abhängigkeit von der Version des .NET Core SDK entfernt wird
  • Migration zu .NET Core 3.0
  • Breaking Change an Microsoft.Quantum.Simulation.Core.IOperationFactory mit Einführung der neuen Fail-Methode. Dies betrifft nur benutzerdefinierte Simulatoren, die SimulatorBase nicht erweitern. Weitere Informationen finden Sie im Pull Request auf GitHub.
  • Neue Unterstützung für veraltete Attribute

Hier finden Sie die vollständige Liste geschlossener Pull Requests für Bibliotheken, Compiler, Runtime, Beispiele und Katas.

Version 0.9.1909.3002

Veröffentlichungsdatum: 30. September 2019

Dieses Release enthält Folgendes:

  • Unterstützung für die Q#-Codevervollständigung in Visual Studio 2019 (Version 16.3 und höher) und Visual Studio Code
  • neues Quantum Kata für Quantenaddierer

Hier finden Sie die vollständige Liste geschlossener Pull Requests für Bibliotheken, Compiler, Runtime, Beispiele und Katas.

Version 0.9 (PackageReference 0.9.1908.2902)

Veröffentlichungsdatum: 29. August 2019

Dieses Release enthält Folgendes:

  • Unterstützung für Konjugationsanweisungen in Q#
  • neue Codeaktionen im Compiler wie beispielsweise „Ersetzen durch“, „Add documentation“ (Dokumentation hinzufügen) und Updates für einfache Arrayelemente
  • Installationsvorlagen und neue Projektbefehle für die Visual Studio Code-Erweiterung
  • neue Varianten des ApplyIf-Kombinators wie beispielsweise Microsoft.Quantum.Canon.ApplyIfOne
  • zusätzliche in Jupyter Notebook konvertierte Quantum Katas
  • Für die Visual Studio-Erweiterung ist jetzt Visual Studio 2019 erforderlich.

Hier finden Sie die vollständige Liste geschlossener Pull Requests für Bibliotheken, Compiler, Runtime, Beispiele und Katas.

Hier werden die Änderungen sowie Anweisungen zum Aktualisieren vorhandener Programme beschrieben. Weitere Informationen zu diesen Änderungen finden Sie im Q#-Entwicklerblog.

Version 0.8 (PackageReference 0.8.1907.1701)

Veröffentlichungsdatum: 12. Juli 2019

Dieses Release enthält Folgendes:

Hier finden Sie eine vollständige Liste geschlossener Pull Requests für Bibliotheken und Beispiele.

Version 0.7 (PackageReference 0.7.1905.3109)

Veröffentlichungsdatum: 31. Mai 2019

Dieses Release enthält Folgendes:

  • Ergänzungen der Sprache Q#
  • Aktualisierungen der Quantum Chemistry Library (Quantenchemiebibliothek)
  • neue numerische Bibliothek

Hier finden Sie eine vollständige Liste geschlossener Pull Requests für Bibliotheken und Beispiele.

Hier werden die Änderungen sowie Anweisungen zum Aktualisieren vorhandener Programme beschrieben. Weitere Informationen zu diesen Änderungen finden Sie im Q#-Entwicklerblog.

Q#-Sprachsyntax

Mit diesem Release wird eine neue Q#-Sprachsyntax hinzugefügt:

  • Benannte Elemente für [benutzerdefinierte Typen]microsoft.quantum.qsharp.typedeclarations#type-declarations) hinzugefügt
  • benutzerdefinierte Typkonstruktoren für die Verwendung als Funktionen
  • Unterstützung für copy-and-update und apply-and-reassign in benutzerdefinierten Typen
  • optionales Blockieren von Fehlerbehebungen im Zusammenhang mit repeat-until-success-Schleifen
  • Unterstützung für while-Schleifen in Funktionen (nicht in Vorgängen)

Bibliothek

Mit diesem Release wird eine numerische Bibliothek hinzugefügt: Informieren Sie sich über die Verwendung der numerischen Bibliothek, und probieren Sie die neuen Beispiele aus. PR #102.
Mit diesem Release werden Erweiterungen neu organisiert, und die Chemiebibliothek wird aktualisiert:

Version 0.6.1905

Veröffentlichungsdatum: 3. Mai 2019

Dieses Release enthält Folgendes:

  • Änderungen der Sprache Q#
  • Neustrukturierung der Bibliotheken des Quantum Development Kit
  • neue Beispiele
  • Fehlerbehebungen (sämtliche geschlossene Pull Requests für Bibliotheken und Beispiele)

Hier werden die Änderungen sowie Anweisungen zum Aktualisieren vorhandener Programme beschrieben. Weitere Informationen zu diesen Änderungen finden Sie unter devblogs.microsoft.com/qsharp.

Q#-Sprachsyntax

Mit diesem Release wird eine neue Q#-Sprachsyntax hinzugefügt:

Mit diesem Release ist es nicht mehr möglich, ein Arrayelement auf der linken Seite einer set-Anweisung anzugeben. Dies liegt daran, dass diese Syntax impliziert, dass Arrays veränderbar sind, wenn das Ergebnis des Vorgangs tatsächlich immer das Erstellen eines neuen Arrays mit der Änderung war. Stattdessen wird ein Compilerfehler mit dem Vorschlag generiert, den neuen copy-and-update-Operator (w/) zu verwenden, um das gleiche Ergebnis zu erzielen.

Umstrukturierung der Bibliothek

Mit diesem Release werden die Bibliotheken neu organisiert, um ein konsistentes Wachstum zu ermöglichen:

  • Der Namespace Microsoft.Quantum.Primitive wird in Microsoft.Quantum.Intrinsic umbenannt. Diese Vorgänge werden vom Zielcomputer implementiert. Der Namespace Microsoft.Quantum.Primitive ist veraltet. Eine Runtimewarnung informiert Sie darüber, wann Programme mithilfe von veralteten Namen Vorgänge und Funktionen aufrufen.

  • Das Paket Microsoft.Quantum.Canon wird in Microsoft.Quantum.Standard umbenannt. Dieses Paket enthält Namespaces, die für die meisten Q#-Programme verwendet werden. Dies schließt Folgendes ein:

    • Microsoft.Quantum.Canon-Paket für allgemeine Vorgänge
    • Microsoft.Quantum.Arithmetic für universelle arithmetische Operationen
    • Microsoft.Quantum.Preparation für Vorgänge zum Vorbereiten des Qubit-Zustands.
    • Microsoft.Quantum.Simulation für die Simulationsfunktionalität

Durch diese Änderung treten bei Programmen, die eine einzelne „Open“-Anweisung für den Namespace Microsoft.Quatum.Canon enthalten, möglicherweise Buildfehler auf, wenn das Programm auf Vorgänge verweist, die in die anderen drei neuen Namespaces verschoben wurden. Das Hinzufügen zusätzlicher „Open“-Anweisungen für die drei neuen Namespaces ist eine einfache Möglichkeit, dieses Problem zu beheben.

  • Mehrere Namespaces sind veraltet, da die Vorgänge in anderen Namespaces neu organisiert wurden. Programme, die diese Namespaces verwenden, funktionieren weiterhin. Eine Warnung zur Kompilierzeit bezeichnet den Namespace, in dem der Vorgang definiert ist.

  • Das Namespace Microsoft.Quantum.Arithmetic wurde normalisiert, um den benutzerdefinierten LittleEndian user defined type-Typ zu verwenden. Verwenden Sie bei Bedarf die Funktion BigEndianAsLittleEndian für die Konvertierung zu Little-Endian.

  • Die Namen mehrerer aufrufbarer Funktionen und Vorgänge wurden so geändert, dass sie den Vorgaben im Q#-Styleguide entsprechen. Die alten Callable-Namen sind veraltet. Programme, die die alten Callables-Namen verwenden, funktionieren weiterhin. Es wird eine Warnung zur Kompilierzeit generiert.

Neue Beispiele

Ein Beispiel für die Verwendung von Q# mit F#-Treibern wurde hinzugefügt.

Besonderer Dank gilt dem folgenden Mitwirkenden an der offenen Codebasis unter http://github.com/Microsoft/Quantum. Diese Beiträge stellen bedeutende Ergänzungen der umfangreichen Q#-Codebeispiele dar:

Migrieren vorhandener Projekte zu Version 0.6.1905

Informationen zum Aktualisieren des Microsoft Quantum Development Kit finden Sie im Installationshandbuch.

Wenn Sie bestehende Q#-Projekte der Version 0.5 des Quantum Development Kit haben, können Sie diese Projekte mit den folgenden Schritten zur neuesten Version migrieren.

  1. Projekte müssen in der richtigen Reihenfolge aktualisiert werden. Wenn Sie über eine Projektmappe mit mehreren Projekten verfügen, sollten Sie jedes Projekt in der Reihenfolge aktualisieren, in der darauf verwiesen wird.

  2. Führen Sie dotnet clean in einer Eingabeaufforderung aus, um alle vorhandenen Binär- und Zwischendateien zu entfernen.

  3. Bearbeiten Sie in einem Text-Editor die CSPROJ-Datei, um die Version von den Microsoft.Quantum-PackageReference-Paketen auf Version 0.6.1904 zu ändern. Ändern Sie außerdem den Paketnamen „Microsoft.Quantum.Canon“ in „Microsoft.Quantum.Standard“. Beispiel:

    <PackageReference Include="Microsoft.Quantum.Standard" Version="0.6.1905.301" />
    <PackageReference Include="Microsoft.Quantum.Development.Kit" Version="0.6.1905.301" />
    
  4. Führen Sie in der Eingabeaufforderung den folgenden Befehl aus: dotnet msbuild

  5. Aufgrund der oben aufgeführten Änderungen müssen Sie die Fehler danach möglicherweise dennoch manuell beheben. In vielen Fällen werden diese Fehler auch von IntelliSense in Visual Studio oder Visual Studio Code gemeldet.

    • Öffnen Sie den Stammordner des Projekts oder die entsprechende Projektmappe in Visual Studio 2019 oder Visual Studio Code.
    • Nachdem Sie eine QS-Datei im Editor geöffnet haben, sollte im Ausgabefenster die Ausgabe der Q#-Spracherweiterung angezeigt werden.
    • Öffnen Sie nach dem erfolgreichen Laden des Projekts (im Ausgabefenster angegeben) jede Datei, um alle verbleibenden Probleme manuell zu beheben.

Hinweis

  • Bei Version 0.6 unterstützt der im Quantum Development Kit enthaltene Sprachserver nur einen Arbeitsbereich.
  • Öffnen Sie den Stammordner, der das Projekt selbst und alle verwiesene Projekte enthält, um mit einem Projekt in Visual Studio Code arbeiten zu können.
  • Damit Sie mit einer Projektmappe in Visual Studio arbeiten können, müssen sich alle in der Projektmappe enthaltenen Projekte im selben Ordner wie die Projektmappe oder in einem ihrer Unterordner befinden.
  • Verweise zwischen Projekten, die zu Version 0.6 oder höher migriert wurden, und Projekte, die ältere Paketversionen verwenden, werden nicht unterstützt.

Version 0.5.1904

Veröffentlichungsdatum: 15. April 2019

Dieses Release enthält Fehlerbehebungen.

Version 0.5.1903

Veröffentlichungsdatum: 27. März 2019

Dieses Release enthält Folgendes:

Version 0.5.1902

Veröffentlichungsdatum: 27. Februar 2019

Dieses Release enthält Folgendes:

  • Es wurde die Unterstützung für einen plattformübergreifenden Python-Host hinzugefügt. Das qsharp-Paket für Python vereinfacht das Simulieren von Q#-Vorgängen und -Funktionen in Python. Hier finden Sie weitere Informationen zur Python-Interoperabilität.

  • Die Visual Studio- und Visual Studio Code-Erweiterung unterstützen jetzt das Umbenennen von Symbolen (z. B. Funktionen und Vorgänge).

  • Die Visual Studio-Erweiterung kann jetzt in Visual Studio 2019 installiert werden.

Version 0.4.1901

Veröffentlichungsdatum: 30. Januar 2019

Dieses Release enthält Folgendes:

  • Unterstützung für den neuen primitiven Typ „BigInt“, der eine ganze Zahl mit Vorzeichen beliebiger Größe darstellt. Weitere Informationen zu BigInt
  • neuer spezieller und schneller Toffoli-Simulator, mit dem X-, CNOT- und mehrfach gesteuerte X-Quantenvorgänge mit einer großen Anzahl von Qubits simuliert werden können. Weitere Informationen zum Toffoli-Simulator finden Sie hier.
  • Einfache Ressourcenschätzung zum Schätzen der Ressourcen, die für das Ausführen einer bestimmten Instanz eines Q#-Vorgangs auf einem Quantencomputer erforderlich sind. Weitere Informationen zur Ressourcenschätzung finden Sie hier.

Version 0.3.1811.2802

Veröffentlichungsdatum: 28. November 2018

Obwohl diese Version bei der Visual Studio Code-Erweiterung nicht verwendet wurde, wurde sie gekennzeichnet und im Rahmen der Bereinigung der Erweiterungen im Zusammenhang mit dem NPM-Paket event-stream aus dem Marketplace entfernt. Diese Version entfernt alle Runtimeabhängigkeiten, die dazu führen könnten, dass die Erweiterung rote Flags auslöst.

Wenn Sie die Erweiterung zuvor installiert haben, müssen Sie sie noch mal installieren, indem Sie im Visual Studio Marketplace die Microsoft Quantum Development Kit for Visual Studio Code-Erweiterung aufrufen und auf „Installieren“ klicken. Wir entschuldigen uns für die Unannehmlichkeiten.

Version 0.3.1811.1511

Veröffentlichungsdatum: 20. November 2018

Mit diesem Release wird ein Fehler behoben, der verhindert hat, dass einige Benutzer die Visual Studio-Erweiterung erfolgreich herunterladen können.

Version 0.3.1811.203

Veröffentlichungsdatum: 2. November 2018

Dieses Release enthält unter anderem folgende Fehlerbehebungen:

  • Durch das Aufrufen von DumpMachine kann der Zustand des Simulators in bestimmten Situationen geändert werden.
  • Beim Entwickeln von Projekten mithilfe einer Version von .NET Core (vor Version 2.1.403) wurden Warnungen zur Kompilierzeit entfernt.
  • Die Dokumentation wurde besonders hinsichtlich der QuickInfos überarbeitet, die während des Bewegens des Mauszeigers in Visual Studio Code oder Visual Studio angezeigt werden.

Version 0.3.1810.2508

Veröffentlichungsdatum: 29. Oktober 2018

Dieses Release enthält neue Sprachfeatures und bietet eine verbesserte Entwicklerumgebung:

  • Dieses Release enthält einen Sprachserver für Q# sowie die Clientintegrationen für Visual Studio und Visual Studio Code. Dies ermöglicht die Nutzung einer ganzen Reihe neuer IntelliSense-Features sowie Livefeedback beim Schreiben in Form von gewellten Unterstreichungen von Fehlern und Warnungen.
  • Durch die einfache Navigation zu und präzise Bereiche für Diagnosen sowie zusätzliche Details in den angezeigten Informationsfeldern werden die Diagnosemeldungen mit diesem Update im Allgemeinen verbessert.
  • Die Sprache Q# wurde so erweitert, dass Entwickler auf einheitliche Weise häufige Vorgänge durchführen und Verbesserungen an den Sprachfeatures vornehmen können, um die Quantentechnologie voranzutreiben. Dieses Release enthält einige Breaking Changes der Sprache Q#.

Dieses Release umfasst auch eine neue Quantum Chemistry Library (Quantenchemiebibliothek):

  • Die Chemiebibliothek enthält neue Hamilton-Simulationsfeatures einschließlich der folgenden:
    • Trotter-Suzuki-Integratoren in beliebiger, gleichmäßiger Reihenfolge für verbesserte Simulationsgenauigkeit
    • Qubit-Simulationstechnik mit chemiespezifischen Optimierungen zum Reduzieren der Komplexität des $T$-Gates
  • neu eingeführtes Open-Source-Schema namens Broombridge-Schema (bezugnehmend auf ein als Geburtsort der Hamiltonians gefeiertes Wahrzeichen) zum Importieren von Darstellungen von Molekülen und deren Simulation
  • mehrere mithilfe des Broombridge-Schemas definierte chemische Darstellungen. Diese Modelle wurden von NWChem, einem leistungsstarken Open-Source-Tool für computergestützte Chemie, generiert.
  • Tutorials und Beispiele zur Erklärung der Verwendung der Chemiebibliothek und der Broombridge-Datenmodelle für Folgendes:
    • Konstruieren einfacher Hamilton-Funktionen mithilfe der Chemiebibliothek
    • Visualisieren des Bodens und angeregter Energiezustände von Lithiumhybrid mithilfe der Phasenschätzung
    • Ausführen von Ressourcenschätzungen der Quantenchemiesimulation
    • Schätzen des Energieniveaus von Molekülen, die vom Broombridge-Schema dargestellt werden
  • Die Dokumentation beschreibt, wie mit NWChem zusätzliche chemische Modelle für Quantensimulationen mit Q# generiert werden können.

Hier erhalten Sie weitere Informationen zur Quantum Development Kit-Chemiebibliothek.

Mit der neuen Chemiebibliothek verschieben wir die Bibliotheken in das neue GitHub-Repository Microsoft/QuantumLibraries. Die Beispiele befinden sich im Repository Microsoft/Quantum. Wir freuen uns über Beiträge zu beiden Repositorys.

Dieses Release enthält Fehlerbehebungen und Features für Probleme, die von der Community gemeldet wurden.

Beiträge der Community

Besonderer Dank gilt den folgenden Mitwirkenden an der offenen Codebasis unter http://github.com/Microsoft/Quantum. Diese Beiträge stellen bedeutende Ergänzungen der umfangreichen Q#-Codebeispiele dar:

  • Rolf Huisman (@RolfHuisman): höhere Benutzerfreundlichkeit für QASM-/Q#-Entwickler dank des QASM-zu-Q#-Übersetzers PR #58.

  • Andrew Helwer (@ahelwer): implementierte das CHSH-Spiel als Beispiel. Dies ist ein Quantenspiel zur Nichtlokalität. PR #84.

Außerdem danken wir Rohit Gupta (@guptarohit,PR #90), Tanaka Takayoshi (@tanaka-takayoshi,PR #289) und Lee James O'Riordan (@mlxd,PR #96) für ihre Beiträge zur Verbesserung der Inhalte durch Korrekturen an der Dokumentation, Rechtschreibung und Tippfehlern.

Version 0.2.1809.701

Veröffentlichungsdatum: 10. September 2018

Dieses Release enthält Fehlerbehebungen zu Problemen, die von der Community gemeldet wurden.

Version 0.2.1806.3001

Veröffentlichungsdatum: 30. Juni 2018

Dieses Release umfasst lediglich einen schnellen Fix von Issue 48, der auf GitHub gemeldet wurde (Q#-Kompilierung schlägt fehl, wenn der Benutzername einen Leerraum enthält). Für die entsprechende neue Version 0.2.1806.3001-preview gelten dieselben Updateanweisungen wie für Version 0.2.1806.1503.

Version 0.2.1806.1503

Veröffentlichungsdatum: 22. Juni 2018

Dieses Release enthält mehrere Beiträge der Community sowie eine verbesserte Debugfunktionen und Leistungsverbesserungen. Dies gilt insbesondere in folgenden Fällen:

  • Leistungsverbesserungen für kleine und große Simulationen für den QuantumSimulator-Zielcomputer
  • Verbesserte Debugfunktionen
  • Communitybeiträge zu Problembehebungen, Hilfsfunktionen, Vorgängen und neue Beispiele

Leistungsverbesserungen

Dieses Update umfasst bedeutende Leistungsverbesserungen für die Simulation einer kleinen oder großen Anzahl von Qubits für alle Zielcomputer. Diese Verbesserung ist bei der H2-Simulation besonders sichtbar. Dies ist ein Standardbeispiel im Quantum Development Kit.

Verbesserte Debugfunktionen

In diesem Update wurden neue Debugfunktionen hinzugefügt:

  • Die zwei neuen Vorgänge @"microsoft.quantum.extensions.diagnostics.dumpmachine" und @"microsoft.quantum.extensions.diagnostics.dumpregister" wurden hinzugefügt, die Wave-Funktionsinformationen über den Zielquantencomputer zu einem bestimmten Zeitpunkt zurückgeben.
  • Die Wahrscheinlichkeit zum Messen von $\ket{1}$ für ein einzelnes Qubit wird in Visual Studio nun automatisch im Debugfenster für den QuantumSimulator-Zielcomputer angezeigt.
  • In Visual Studio wurde die Anzeige von Variableneigenschaften in den Debugfenstern Auto und Lokal verbessert.

Erfahren Sie mehr über das Testen und Debuggen.

Beiträge der Community

Die Q#-Entwicklercommunity wächst stetig, und wir freuen uns darüber, dass Benutzer die ersten Bibliotheken und Beispiele zu unserer öffentlichen Codebasis auf http://github.com/Microsoft/quantum beigetragen haben. Vielen Dank an die folgenden Mitwirkenden:

  • Mathias Soeken (@msoeken) hat ein Beispiel zum Definieren einer transformationsbasierter Logiksynthesemethode beigesteuert, die Toffoli-Netzwerke zum Implementieren einer gegebenen Permutation erstellt. Der gesamte Code wurde ausschließlich in Q#-Funktionen und -Vorgängen geschrieben. PR #41.
  • Rolf Huisman (@RolfHuisman), Microsoft MVP, hat ein Beispiel beigetragen, das einfachen QASM-Code aus Q#-Code für eingeschränkte Programmklassen erstellt, für die weder eine herkömmliche Ablaufsteuerung noch eingeschränkte Quantenvorgänge vorliegen. PR #59.
  • Sarah Kasier (@crazy4pi314) verbesserte unsere Codebasis mit einer Bibliotheksfunktion für gesteuerte Vorgänge. PR #53.
  • Jessica Lemieux (@Lemj3111) behob @"microsoft.quantum.canon.quantumphaseestimation" und erstellte neue Komponententests. PR #54.
  • Tama McGlinn (@TamaMcGlinn) bereinigte das Beispiel „Teleportation“, indem sichergestellt wird, dass die QuantumSimulator-Instanz verworfen wird. PR #20.

Außerdem danken wir den folgenden mitwirkenden Microsoft Software Engineers des Commercial Engineering Services-Teams, die während ihres Hackathons wertvolle Änderungen an unserer Dokumentation vorgenommen haben. Ihre Änderungen sorgten für deutliche Verbesserungen an der Verständlichkeit und dem Onboarding für uns alle:

  • Sascha Corti
  • Mihaela Curmei
  • John Donnelly
  • Kirill Logachev
  • Jan Pospisil
  • Anita Ramanan
  • Frances Tibble
  • Alessandro Vozza

Update für vorhandene Projekte

Dieses Release ist vollständig abwärtskompatibel. Sie können einfach Updates für die NuGet-Pakete in Ihren Projekten auf Version 0.2.1806.1503-preview und eine vollständige Neuerstellung durchführen, um sicherzustellen, dass alle Zwischendateien wiederhergestellt werden.

Befolgen Sie die normalen Anweisungen zum Durchführen eines Paketupdates über Visual Studio.

Führen Sie den folgenden Befehl aus, um Updates für Projektvorlagen über die Befehlszeile durchzuführen.

dotnet new -i "Microsoft.Quantum.ProjectTemplates::0.2.1806.1503-preview"

Nachdem Sie diesen Befehl ausgeführt haben, nutzen alle neuen Projekte, die mithilfe von dotnet new <project-type> -lang Q# erstellt werden, automatisch diese Version des Quantum Development Kit.

Führen Sie den folgenden Befehl innerhalb des Verzeichnisses eines jeweiligen Projekts aus, um ein Update für ein vorhandenes Projekt durchzuführen, damit es die neueste Version nutzt:

dotnet add package Microsoft.Quantum.Development.Kit -v "0.2.1806.1503-preview"
dotnet add package Microsoft.Quantum.Canon -v "0.2.1806.1503-preview"

Wenn ein vorhandenes Projekt auch die XUnit-Integration für Komponententests verwenden, kann ein ähnlicher Befehl auch zum Durchführen eines Updates für dieses Paket verwendet werden.

dotnet add package Microsoft.Quantum.Xunit -v "0.2.1806.1503-preview"

Je nachdem, welche Version von XUnit in Ihrem Testprojekt verwendet wird, müssen Sie möglicherweise ein Update auf XUnit 2.3.1 durchführen:

dotnet add package xunit -v "2.3.1" 

Stellen Sie nach dem Update sicher, dass Sie alle temporären Dateien entfernen, die von der vorherigen Version erstellt wurden, indem Sie folgenden Befehl ausführen:

dotnet clean 

Bekannte Probleme

Es sind keine weiteren Probleme bekannt.

Version 0.2.1802.2202

Veröffentlichungsdatum: 26. Februar 2018

In diesem Release wurde Unterstützung für die Entwicklung auf mehr Plattformen, die Interoperabilität von Sprachen sowie Leistungsverbesserungen eingeführt. Dies gilt insbesondere in folgenden Fällen:

  • Unterstützung für die Entwicklung basierend auf macOS und Linux
  • .NET Core-Kompatibilität, einschließlich plattformübergreifender Unterstützung von Visual Studio Code
  • eine vollständige Open-Source-Lizenz für Bibliotheken des Quantum Development Kit
  • Verbesserung der Simulatorleistung bei Projekten mit 20 oder mehr Qubits
  • Interoperabilität mit der Programmiersprache Python (Preview Release für Windows ist verfügbar)

.NET-Editionen

Die .NET-Plattform ist in zwei verschiedenen Editionen verfügbar. Das mit Windows bereitgestellte .NET Framework und die Open-Source-Plattform .NET Core, die unter Windows, macOS und Linux verfügbar ist. In diesem Release werden die meisten Bestandteile des Quantum Development Kit als Bibliotheken für .NET Standard bereitgestellt, was die Klassen umfasst, die .NET Framework und .NET Core gemein haben. Diese Bibliotheken sind daher mit den aktuellen Versionen von .NET Framework und .NET Core kompatibel.

Damit also sichergestellt werden kann, dass mithilfe des Quantum Development Kit geschriebene Projekte möglichst portabel sind, wird empfohlen, mit dem Quantum Development Kit geschriebene Bibliotheksprojekte für .NET Standard zu schreiben, während Konsolenanwendungen für .NET Core geschrieben werden. Da die vorherigen Releases des Quantum Development Kit nur .NET Framework unterstützt haben, müssen Sie Ihre vorhandenen Projekte möglicherweise migrieren. Weitere Informationen hierzu finden Sie unten.

Projektmigration

Projekte, die mit vorherigen Versionen des Quantum Development Kit erstellt wurden, funktionieren weiterhin, solange Sie keine Updates für die enthaltenen NuGet-Pakete durchführen. Führen Sie die folgenden Schritte durch, um vorhandenen Code zur neuen Version zu migrieren:

  1. Erstellen Sie ein neues .NET Core-Projekt mithilfe des richtigen Q#-Projektvorlagentyps (Anwendung, Bibliothek oder Testprojekt).
  2. Kopieren Sie vorhandene QS- und CS/FS-Dateien aus dem alten Projekt in das neue Projekt (über „Hinzufügen > Vorhandenes Element“). Kopieren Sie nicht die Datei „AssemblyInfo.cs“.
  3. Erstellen Sie das Projekt, und führen Sie es aus.

Beachten Sie, dass der Vorgang „RandomWalkPhaseEstimation“ aus dem Namespace „Microsoft.Quantum.Canon“ in den Namespace „Microsoft.Research.Quantum.RandomWalkPhaseEstimation“ im Repository Microsoft/Quantum-NC verschoben wurde.

Bekannte Probleme

  • Die Option --filter für dotnet test funktioniert für in Q# geschriebene Tests nicht ordnungsgemäß. Daher können individuelle Komponententests nicht in Visual Studio Code ausgeführt werden. Stattdessen wird empfohlen, dotnet test in der Eingabeaufforderung zu verwenden, um alle Tests noch einmal auszuführen.

Version 0.1.1801.1707

Veröffentlichungsdatum: 18. Januar 2018

In diesem Release wurden einige Probleme behoben, die von der Community gemeldet wurden. Die folgenden Probleme wurden behoben:

  • Der Simulator funktioniert nun mit altem CPUs, die nicht AVX-fähig sind.
  • Regionale Dezimaleinstellungen führen nicht zu einem Fehler beim Q#-Parser.
  • Der primitive Vorgang SignD gibt nun Int anstelle von Double zurück.

Version 0.1.1712.901

Veröffentlichungsdatum: 11. Dezember 2017

Bekannte Probleme

Hardware- und Softwareanforderungen

  • Die Ausführung des im Quantum Development Kit enthaltenen Simulators erfordert eine 64-Bit-Installation von Windows.
  • Der Quantensimulator von Microsoft, der mit dem Quantum Development Kit installiert wird, nutzt AVX (Advanced Vector Extensions) und erfordert eine AVX-fähige CPU. Im ersten Quartal von 2011 ausgelieferte Intel-Prozessoren („Sandy Bridge“) oder höher unterstützen AVX. Die Unterstützung früherer CPUs wird noch ausgewertet. Weitere Informationen werden möglicherweise noch angekündigt.

Projekterstellung

  • Eine Projektmappe (.sln), die Q# nutzt, muss beim Erstellen eine Verzeichnisebene höher abgelegt werden als die Projekte (.csproj), die in der Projektmappe enthalten sind. Beim Erstellen einer neuen Projektmappe können Sie dies sicherstellen, indem Sie sich vergewissern, dass das Kontrollkästchen „Projektmappenverzeichnis erstellen“ im Dialogfeld „Neues Projekt“ aktiviert ist. Wenn das nicht der Fall ist, müssen die NuGet-Pakete für das Quantum Development Kit manuell installiert werden.

Q#

  • IntelliSense zeigt Fehler in Q#-Code nicht richtig an. Stellen Sie sicher, dass Buildfehler in der Visual Studio-Fehlerliste angezeigt werden, um die richtigen Q#-Fehler anzuzeigen. Beachten Sie außerdem, dass Q#-Fehler erst angezeigt werden, nachdem der Build abgeschlossen wurde.
  • Die Verwendung eines veränderlichen Arrays in einer Teilanwendung kann zu unerwartetem Verhalten führen.
  • Die Bindung eines nicht veränderlichen Arrays an ein veränderliches Array (angenommen a = b, wobei „b“ ein veränderliches Array ist) kann zu unerwartetem Verhalten führen.
  • Profilerstellung, Code Coverage und andere Visual Studio-Plug-Ins zählen Q#-Zeilen und -Blöcke möglicherweise nicht genau.
  • Der Q#-Compiler überprüft interpolierte Zeichenfolgen nicht. Es ist möglich, C#-Kompilierungsfehler zu erzeugen, indem Variablennamen falsch geschrieben oder Ausdrücke in interpolierten Q#-Zeichenfolgen verwendet werden.

Simulation

  • Der Quantensimulator nutzt OpenMP, um die lineare Algebra zu parallelisieren. OpenMP verwendet standardmäßig alle verfügbaren Hardwarethreads, weshalb Programme mit wenigen Qubits häufig langsam ausgeführt werden, stellt die Koordination die tatsächliche Arbeit in den Schatten. Dies kann behoben werden, indem eine kleine Zahl für die Umgebungsvariable OMP_NUM_THREADS festgelegt wird. Als grobe Faustregel gilt, dass 1 Thread für etwa 4 Qubits genügt und dann für jeden weiteren Qubit ein weiterer Thread benötigt wird. Dies hängt jedoch stark von Ihrem Algorithmus ab.

Debuggen

  • F11 (Einzelschritt) funktioniert nicht in Q#-Code.
  • Die Codehervorhebung in Q#-Code an einem Breakpoint oder einer Einzelschrittpause ist manchmal ungenau. Es wird zwar die richtige Zeile hervorgehoben, jedoch werden Anfang und Ende manchmal an den falschen Spalten auf der Zeile hervorgehoben.

Testen

  • Tests müssen im 64-Bit-Modus ausgeführt werden. Wenn Ihre Tests mit der Ausnahme „BadImageFormatException“ fehlschlagen, öffnen Sie das Testmenü, und klicken Sie auf „Testeinstellungen“ > Standardmäßige Prozessorarchitektur > X64“.
  • Die Ausführung einiger Tests dauert länger (abhängig von Ihrem Computer bis zu 5 Minuten). Das ist normal, da einige mehr als 20 Qubits nutzen. Der größte Test nutzt aktuell 23 Qubits.

Beispiele

  • Auf einigen Computern werden kleine Beispiele möglicherweise langsam ausgeführt, es sei denn, für die Umgebungsvariable OMP_NUM_THREADS ist der Wert „1“ festgelegt. Weitere Informationen finden Sie in der Anmerkung unter „Simulation“.

Bibliotheken

  • Es gibt eine implizite Annahme, dass die Qubits, die in verschiedenen Argumenten an einen Vorgang übergeben werden, sich voneinander unterscheiden. Beispielsweise gehen alle Bibliotheksvorgänge (und alle Simulatoren) davon aus, dass zwei Qubits, die an einen gesteuerten Vorgang übergeben werden, KEINE unterschiedlichen Qubits sind. Verstöße gegen diese Annahme können zu unvorhersehbarem und unerwartetem Verhalten führen. Es ist möglich, dies mithilfe des Quantenablaufverfolgungssimulators zu testen.
  • Die Funktion „Microsoft.Quantum.Bind“ funktioniert in allen Fällen möglicherweise nicht erwartungsgemäß.
  • Im Namespace „Microsoft.Quantum.Extensions.Math“ gibt die SignD-Funktion einen Double-Wert anstelle eines Int-Werts zurück, obwohl die zugrunde liegende Funktion „System.Math.Sign“ immer einen Integer zurückgibt. Das Ergebnis kann mit „1,0“, „-1,0“ und „0,0“ verglichen werden, da für diese Double-Werte exakte Binärdarstellungen vorliegen.