Quantum Development Kit (QDK) e note sulla versione di Azure Quantum

Questo articolo descrive gli aggiornamenti al Quantum Development Kit servizio QDK e al servizio Azure Quantum.

Per le istruzioni "introduzione", vedere Configurare Azure Quantum. Per istruzioni su come aggiornare QDK alla versione più recente, vedere Aggiornare la Quantum Development Kit versione (QDK) alla versione più recente.

2023-09-15

QDK versione 0.28.302812

  • È ora possibile generare profili di stima delle risorse per informazioni su come le operazioni nel programma quantistico contribuiscono al costo complessivo; informazioni su come usare nella documentazione di Azure Quantum.
  • È ora possibile chiamare result.json per ottenere la rappresentazione JSON di un risultato della stima delle risorse.
  • Funzione di stima dei costi di IonQ aggiornata per aria-1 per usare i prezzi minimi del processo di $97,50 (si presuppone che la mitigazione degli errori sia abilitata per impostazione predefinita). Altre informazioni sui prezzi di IonQ o su come abilitare/disabilitare la mitigazione degli errori.
  • Nomi quantinuum target deprecati deprecati. Vedere l'elenco completo di Quantinuum supportato targets.

2023-07-31

QDK versione 0.28.291394

  • Aggiunta di un supporto di unità distillazione personalizzate. Lo strumento di stima delle risorse accetta ora le definizioni personalizzate degli algoritmi di raggruppamento che possono essere applicati a qubit fisici o logici.
  • Aggiunta di una maggiore granularità delle definizioni di errore qubit fisiche: velocità di errore inattive per tutti i tipi di qubit e "readout" e tassi di errore "process" per le misurazioni del qubit Majorana.
  • È ora possibile usare l'endpoint result.diagramma per visualizzare i requisiti di runtime e spazio stimati dell'algoritmo.
  • Aggiunta di rQOPS al riepilogo dei risultati della stima delle risorse.
  • Modifica di rilievo: è stata rimossa la possibilità di inviare processi a Microsoft QIO targets o 1QBit targets, perché sono stati deprecati.

2023-06-05

QDK versione 0.28.277227

  • Aggiunta del supporto per le sessioni per migliorare l'esperienza per algoritmi ibridi interattivi.
  • È ora possibile usare un'API client di stima delle risorse unificata e comoda per inviare processi da Q#, Qiskit e QIR.
  • Nei Q# notebook di Jupyter è stato risolto un problema microsoft/iqsharp#776 in cui Q# le eccezioni causavano la perdita di memoria del kernel del notebook.
  • Riferimenti rimossi a rigetti deprecati in precedenza Aspen M-2 target.
  • Aggiunto un avviso che i risolutori Microsoft QIO saranno deprecati e non saranno più disponibili in Azure Quantum dopo il 30 giugno 2023.

2023-03-29

QDK versione 0.28.263081

  • Aggiunta dell'APIQ# Stima risorse quantistica di Azure per facilitare la stima di programmi di grandi dimensioni.
  • Nel pacchetto azure-quantum è stata semplificata l'esperienza per inviare processi QIR allo strumento di stima delle risorse.
  • Nel pacchetto azure-quantum l'oggetto provider Qiskit fornisce ora un elenco di back-end e la possibilità di filtrare e acquisire back-end.
  • Correzione della tolleranza hardcoded in AssertOperationsEqualInPlace e aggiunta una chiamata per reimpostare tutti i qubit ausiliari alla fine dell'ambito. Correzioni di microsoft/qsharp-runtime#1129.
  • Lo strumento di stima delle risorse locali è stato rimosso. Azure Quantum Resource Estimator è ora disponibile tramite Azure Quantum.

2023-03-01

QDK versione 0.27.258160

  • Nei Q# notebook di Jupyter è stato risolto un problema per cui %azure.connect richiederebbe diversi minuti prima di riuscire in determinati ambienti. Per altre informazioni, vedere microsoft/Quantum#762.
  • Supporto rimosso per Rigetti Aspen-11 Quantum Processor a causa della deprecazione. Per altre targets opzioni disponibili, vedere la documentazione del provider Rigetti .
  • È stato aggiunto un avviso che l'oggetto Stima risorse locali verrà rimosso nel marzo 2023. Azure Quantum Resource Estimator è ora disponibile tramite Azure Quantum.

2023-01-31

QDK versione 0.27.253010

  • Aggiunta del supporto per Rigetti Aspen-M-3 Quantum Processor.
  • Gli errori del compilatore correlati alle funzionalità hardware sono ora avvisi per impostazione predefinita. I programmi con questi avvisi possono o non essere eseguiti in uno specifico target, ma vengono convalidati dal servizio Azure Quantum prima dell'esecuzione e gli utenti non devono essere addebitati se il programma non passa la convalida.
  • Il Q# compilatore usa ora LLVM 14 per generare QIR.
  • Nell'immagine iqsharp-base , è stato rimosso il supporto per .NET Core 3.1, poiché è end-of-life. Sono stati aggiornati vari pacchetti nell'immagine e sono stati apportati piccoli miglioramenti per ridurre le dimensioni del contenitore. Correzioni di microsoft/iqsharp#757.
  • Nel pacchetto azure-quantum, i prezzi fissi cost_estimate() per IonQ Aria da \$0,000222 per ogni qgs a \$0,0002205 per ogni qgs.

2022-12-07

QDK versione 0.27.244707

  • Azure Quantum supporta ora i gate nativi CCX, questo risolve il problema di GitHub microsoft/qiskit-qir#19.
  • L'invio di un processo ad Azure Quantum supporta ora il passaggio di matrici da Python a Q#.

2022-10-27

QDK versione 0.27.238334

  • Correzioni minori.

2022-10-24

QDK versione 0.27.236950

  • Rendere il dumpMachine coerente tra il simulatore di stato completo e il simulatore sparse correggendo un problema di GitHub microsoft/qsharp-runtime#1081 in Q# runtime.
  • Provider Honeywell e targets non sono più supportati. I clienti devono usare il provider Quantinuum e targets.

2022-10-04

QDK versione 0.26.233415

  • Miglioramento dell'adesione al protocollo di messaggistica jupyter risolvendo il problema microsoft/iqsharp#732.

2022-09-28

QDK versione 0.26.232864

Aggiornamento del servizio Azure Quantum

  • Ottimizzazioni per ridurre il tempo di invio dei processi

2022-09-01

QDK versione 0.25.228311

  • Aggiunta del supporto per IonQ Aria QPU in Azure Quantum.
  • L'operazione ApplyFunctionWithTableLookup (QuantumLibraries#607) è stata aggiunta alle librerie quantistiche. Questa operazione consente di implementare funzioni classiche e con valori reali fino a una determinata precisione usando le tecniche di ricerca delle tabelle. Grazie a Rajiv Krishnakumar (@rajkk1) per contribuire a questa nuova funzionalità alle Q# librerie.
  • L'opzione hardware FPGA per i risolutori Microsoft QIO è stata deprecata.

2022-07-26

QDK versione 0.25.222597

  • Aggiunta del supporto per IonQ Native Gates durante la creazione di un processo Qiskit.
  • Sono state aggiunte due nuove operazioni SmallestFixedPoint e LargestFixedPoint per calcolare il valore numerico per il punto fisso più piccolo e più grande dato un numero di bit interi e frazionari.
  • Correzione Q# del caricamento del progetto per gli utenti di .NET 6.0.302 o versioni successive risolvendo il problema qsharp-compiler/1470.
  • Consentito l'uso di elementi della matrice come passaggi di un'espressione a intervalli senza causare un errore di controllo dei tipi correggendo qsharp-compilatore/1430.

Aggiornamento del servizio Azure Quantum

  • È stata migliorata l'esperienza del portale di Azure Quantum in modo che sia possibile controllare facilmente la quantità di crediti Quantistici di Azure usati, la quantità rimanente e lo stato della quota , se applicabile.
  • È stato aggiunto un nuovo esempio avanzato che consente di esplorare l'esecuzione di problemi di turno nascosti in un computer quantistico.
  • Impedito tempi di attesa lunghi rifiutando l'invio di processi se Target è in stato "Non disponibile".

2022-06-28

QDK versione 0.25.218240

  • La versione più recente di QDK include nuovi comandi magic per Q# i notebook jupyter: %azure.target-capability, %qir. I nuovi comandi consentono di eseguire target la diagnostica specifica e visualizzare in ogni cella del notebook se è target impostato.
  • La diagnostica del Q# compilatore è stata migliorata nei notebook di Jupyter. Al momento della compilazione delle celle, il compilatore punta ora a righe che causano errori e avvisi e indirizza Q# la documentazione per il messaggio di errore o avviso specificato.
  • Questa versione aggiunge anche il supporto per le rotazioni ad angolo continuo al simulatore di sistemi aperti (ad esempio, Microsoft.Quantum.Intrinsic.Rx e Microsoft.Quantum.Intrinsic.Exp), abilitando la simulazione di più Q# programmi. Per altre informazioni, vedere Richiesta di funzionalità di GitHub microsoft/qsharp-runtime#914.
  • Tutti i risolutori di CPU QIO Microsoft supportano ora termini di combinazione lineare quadrati eformato binario protobuf. Inoltre, diversi risolutori ora traggono vantaggio dai miglioramenti delle prestazioni, con conseguente riduzione dell'utilizzo della memoria e dei runtime abbreviati. Questi risolutori usano solo il formato di microsoft.qio.v2input , il formato predefinito per tutti i problemi inviati tramite Azure Quantum Python SDK.
  • L'aggiornamento più recente abilita anche la chiamata di Parity() con un argomento negativo, correggendo il problema di GitHub microsoft/qsharp-runtime#993.
  • È stata aggiunta una nuova estensione quantistica dell'interfaccia della riga di comando di Azure, versione 0.16.0
    • Infine, tutti i provider che partecipano al programma "Crediti per tutti" vengono aggiunti automaticamente quando si crea un'area di lavoro con l'interfaccia della riga di comando. Vedere Domande frequenti su Crediti Azure Quantum

2022-05-23

QDK versione 0.24.210930

  • Nella versione di maggio sono stati aggiunti nomi per accedere ai campi nel FixedPoint tipo definito dall'utente (microsoft/QuantumLibraries#549).
  • Sono state aggiunte due nuove operazioni SubtractFxP e InvertFxP. Questi consentono di sottrarre e invertire i numeri a virgola fissa quantistica rispettivamente (microsoft/QuantumLibraries#555).
  • La versione ha aggiunto funzioni di utilità per la conversione tra rappresentazione a virgola mobile e a virgola fissa microsoft/QuantumLibraries#559.
  • Infine, è stato risolto il problema microsoft/qdk-python#323, risolvendo un'apparente incoerenza nei risultati restituiti da job.result() in un processo Qiskit.

Aggiornamento del servizio Azure Quantum

  • L'aggiornamento del servizio più recente semplifica il flusso di creazione avanzato per le aree di lavoro di Azure Quantum nel portale di Azure.
  • Il tipo di account di archiviazione predefinito è stato aggiornato a utilizzo generico v2 (da utilizzo generico v1) per supportare le offerte e le funzionalità degli account di archiviazione moderni durante la gestione dei dati.

2022-04-29

QDK versione 0.24.208024

Aggiornamento del servizio Azure Quantum

2022-03-30

QDK versione 0.24.201332

Aggiornamento del servizio Azure Quantum

  • È stata semplificata la creazione dell'area di lavoro e l'esperienza di spostamento in portale di Azure ed è stato aggiunto un esempio di notebook del portale per lo scenario di spostamento nascosto.

15-03-2022

Kit di sviluppo Quantum versione 0.23.198514-beta (anteprima)

02-03-2022

Kit di sviluppo Quantum versione 0.23.195983

  • Questa versione risolve i problemi di GitHub seguenti:
    • le estensioni microsoft/qsharp-compiler#1235, Visual Studio e Visual Studio Code non generano più un'eccezione non gestita se .NET SDK non viene trovato. Il server di linguaggio esegue il fallback alla diagnostica puramente sintattica.
    • Q# supporta ora le espressioni lambda. Per informazioni su come usarle, vedere la documentazione del linguaggio Q#.
    • microsoft/qsharp-compiler#1300 : consente di risolvere il problema per cui il Q# compilatore registra un'eccezione oltre a un messaggio di errore per le operazioni che restituiscono un tipo non di unità quando non è definito erroneamente come adiacente e/o controllabile.
    • microsoft/qsharp-compiler#1346 - Risolve il problema per cui il Q# formattatore rimuoveva le parentesi intorno alle condizioni del ciclo for senza garantire la spaziatura intorno alla condizione. -microsoft/qsharp-compiler#1289 - Migliora l'usabilità del formattatore tramite l'output Q# di un riepilogo delle modifiche apportate alla console e non sovrascrivendo i file non modificati.
    • È stato migliorato il messaggio di errore visualizzato quando si tenta di eseguire un esempio prima di aggiungere un provider all'area di lavoro di Azure Quantum (collegamento) su come aggiungere un nuovo provider.
    • Modifica che causa un'interruzione: microsoft/qdk-python#269 : è ora possibile passare shots a backend.run e backend.estimate_cost per tutti i back-end nel pacchetto Python azure-quantum.
    • microsoft/qdk-python#248 : questa modifica si applica al plug-in Qiskit del pacchetto Python azure-quantum. Il numero totale di conteggi nell'istogramma corrisponde ora al numero totale di shot.
    • È stato rimosso UserWarning durante l'inizializzazione di un processo del risolutore inviato a SimulatedBifurcationMachine.
    • Modifica che causa un'interruzione: il flag di compressione è stato rimosso da problemi, risolutori e classi streaming_problem. Il parametro compress non può più essere impostato in solvers.problem oggetti e metodi o streaming_problem .
    • microsoft/qsharp-compiler#1046 e microsoft/qsharp-compiler#1352 : queste correzioni sono correlate alla generazione di QIR. Il primo risolve un problema durante la generazione di valori letterali interi di grandi dimensioni con più di 64 bit. La seconda modifica risolve i potenziali errori di runtime causati dall'uso di una nuova espressione di matrice per creare una matrice di chiamabili.
    • È stato aggiunto il supporto per il provider Quantinuum, che sostituisce il provider Honeywell.
    • Modifica che causa un'interruzione: quantumSimulator è stato sottoposto a refactoring. Se si usa StateDumper::Callback() direttamente , è necessario aggiornare il codice.

Problemi noti

  • Q# Le funzioni lambda e le operazioni non vengono compilate correttamente nei Q# notebook jupyter o nelle Q# applicazioni + Python, come rilevato da microsoft/iqsharp#606.

01-02-2022

Kit di sviluppo Quantum versione 0.22.189218-beta (anteprima)

  • Aggiunta del supporto per .NET 6.0 a Quantum Development Kit.
  • Aggiornamento della versione minima richiesta per le Quantum Development Kit estensioni a .NET 6.0.
  • Il compilatore Q# usa i file binari LLVM 13 per la produzione di QIR.
  • Rilasciato Microsoft Quantum Development Kit per Visual Studio Code .NET 6 Preview. Aggiornamento:questa anteprima dell'estensione è stata ritirata e le relative modifiche sono state incorporate nella normale estensione di Visual Studio Code.

26-01-2022

Kit di sviluppo Quantum versione 0.22.187631

  • Il testo :::no-loc="Full state::: Simulatore è stato migrato dal compilatore specifico della piattaforma a Clang per risolvere il problema di GitHub #876.
  • Quando si invia un processo ad Azure Quantum tramite l'interfaccia della riga di comando, Python, IQ# e altri SDK Azure Quantum, i dettagli del processo possono includere la stima dei costi del processo (se supportata dal provider). Il costo finale della fattura potrebbe essere leggermente diverso a causa delle imposte aggiunte e dei tassi di conversione delle valute.
  • È ora possibile stimare il prezzo del processo nel pacchetto azure-quantum usando estimate_cost per l'uso target con la funzionalità Qiskit, Cirq e pass-through.
  • Il pacchetto azure-quantum supporta ora l'invio di elenchi Qiskit di lunghezza 1.
  • Risoluzione del problema GitHub microsoft/qdk-python#198 nel pacchetto azure-quantum a causa del quale i processi Qiskit causavano risultati errati nei circuiti con qubit helper.
  • Nel pacchetto azure-quantum il parametro perform_icm del 1QBit PticmSolver è stato deprecato, usando il pacchetto restituisce ora un avviso di deprecazione. È stato aggiunto un parametro seed a tutti gli altri risolutori 1QBit che specifica un valore di inizializzazione casuale.
  • Risoluzione del problema GitHub microsoft/qdk-python#178 nel pacchetto azure-quantum, in modo che gli errori restituiti dal servizio Azure Quantum quando si usa la funzionalità Qiskit o Cirq vengano ora propagati verso l'alto.
  • Correzione del problema di GitHub microsoft/qsharp-compiler#1297 in cui le informazioni di IntelliSense non sono state aggiornate quando la proprietà ExecutionTarget è stata modificata nel file di progetto.

14-12-2021

Kit di sviluppo Quantum versione 0.21.2112.180703

  • Rilascio dell'estensione quantistica dell'interfaccia della riga di comando di Azure versione 0.11.0: i risultati del processo vengono allineati a sinistra (non centrati) nell'output della console.

23-11-2021

Kit di sviluppo Quantum versione 0.21.2111.177148

  • Aggiunta di un formattatore Q# per aggiornare la sintassi deprecata Q# e la formattazione di base per i progetti Q# con il kit di sviluppo Quantum versione 0.21.2111.177148 e successive:
    • È necessario aggiornare la versione del kit di sviluppo Quantum nel tag <Project> del file .csproj per usare il formattatore Q#.
    • È possibile usare il formattatore Q# tramite Visual Studio facendo clic sulla voce di menu Modifica -> Avanzate -> Formatta documento. Tramite Visual Studio Code è possibile formattare il codice facendo clic con il pulsante destro del mouse sul codice da formattare e scegliendo la voce di menu Formatta documento.
    • Aggiunta di una compilazione target, UpdateSyntax, per l'aggiornamento della sintassi deprecata in un Q# progetto. Questa operazione target può essere usata con dotnet msbuild -t:UpdateSyntax al prompt dei comandi.
    • Aggiunta di Azioni codice per aggiornare automaticamente la sintassi deprecata.
  • Aggiunta del supporto per l'invio di problemi a un subset di Microsoft targets in formato binario protobuf. È possibile usarlo per la codifica di problemi più grandi riducendo le dimensioni del payload e migliorando la velocità di caricamento e elaborazione.
  • Modifica di rilievo: per il metodo della classe deserialize della classe Problem è stato modificato il nome del parametro da problem_as_json a input_problem per supportare la deserializzazione di protobuf.

26-10-2021

Kit di sviluppo Quantum versione 0.20.2110.171573

  • Il comando %azure.connect del kernel IQ# non imposta più "Stati Uniti occidentali" come posizione predefinita. Il parametro della posizione è ora obbligatorio.
  • Il pacchetto azure-quantum supporta ora l'I/O asincrono tramite il nuovo pacchetto azure.quantum.aio.
  • Risoluzione di un problema: i processi Qiskit recuperati con AzureQuantumProvider.get_job() possono ora usare job.result() senza generare un KeyError.
  • È stato risolto un problema che causa azure.quantum.cirq e azure.quantum.qiskit non essere riconosciuto da Pylance. Il azure.quantum.plugins pacchetto è deprecato.
  • È stato risolto un problema in cuiQ# l'esecuzione del processo non riesce se un'operazione definita in un file esterno non era supportata nell'oggetto specificato target.
  • Risoluzione di un problema nell'estensione per Visual Studio che causava un rientro non corretto in alcuni casi quando veniva digitata una parentesi quadra chiusa.
  • Refactoring delle DLL di runtime (QIR) per usare il runtime VC statico, rimuovendo la dipendenza dall'installazioneQuantum Intermediate Representation di msvcrt.dll e Visual Studio.
  • È stato eseguito il refactoring del runtime QIR per usare intptr_t per i tipi di ID Qubit in modo coerente.
  • Aggiornamento delle estensioni dell'interfaccia della riga di comando di Azure alla versione 0.9.0.

28-09-2021

Kit di sviluppo Quantum versione 0.19.2109.165653

  • Aggiunta del supporto per l'invio di circuiti Cirq e Qiskit a IonQ e Quantinuum.
  • I pacchetti Conda sono stati spostati dal canale quantum-engineering al canale Microsoft. Quando si usa conda per installare il Quantum Development Kit blocco appunti o Q# l'utilizzo di + Python, l'argomento -c quantum-engineering per conda deve essere modificato in -c microsofte la channels sezione dei file environment.yml deve Q# essere aggiornata. Vedere la guida introduttiva per il comando di installazione completo usando i nuovi pacchetti.
  • È possibile formulare problemi PUBO e Ising usando termini lineari quadrati in modo nativo nei risolutori PA e SSMC.
  • Risoluzione del problema relativo alla gestione della memoria e miglioramento dell'affidabilità per la generazione di QIR: 1152 e 1086.
  • Risoluzione del problema correlato a Workspace.get_targets(). Ora restituisce tutto disponibile targets nella sottoscrizione, anche quelli che non dispongono del supporto lato client.
  • Risoluzione dei problemi relativi alla diagnostica del compilatore Q# visualizzata in posizioni non corrette: 1133 e 1172.
  • Modifica di rilievo: L'ordine degli argomenti in ApplyIf, ApplyIfA, ApplyIfCe ApplyIfCAè stato modificato in modo che sia coerente con operazioni correlate, ApplyIfElseB ad esempio e Q# principi di progettazione api.
  • Problem.serialize() del pacchetto Python azure.quantum.optimization serializza ora il nome del problema di ottimizzazione in un nuovo campo di metadati facoltativo, in modo che non sia necessario specificarlo nuovamente durante la deserializzazione del problema come descritto in dettaglio in questo problema.
  • Rilasciato l'estensione quantistica dell'interfaccia della riga di comando di Azure versione 0.8.0: gli utenti ricevono raccomandazioni, al massimo una volta al giorno, per aggiornare l'estensione az quantum se la versione installata non è aggiornata.

10-09-2021

Kit di sviluppo Quantum versione 0.18.2109.162713

  • Risoluzione di un problema a causa del quale si verificava a volte l'arresto anomalo del kernel in Quantum Katas online. Nessun impatto sui clienti perché Katas online è rimasto con la versione del kit di sviluppo Quantum precedente.

01-09-2021

Kit di sviluppo Quantum versione 0.18.2108.160999

31-08-2021

Kit di sviluppo Quantum versione 0.18.2108.160310

  • Non è più necessario fare riferimento in modo esplicito all'operazione alternativa in @SubstitutableOnTarget nel pacchetto NuGet Microsoft.Quantum.AutoSubstitution.
  • Nuovo metodo Workspace.get_targets() nel pacchetto azure-quantum che restituisce un elenco di tutti gli elementi disponibili targets. È possibile filtrare in base all'ID del provider o all'ID della destinazione.
  • È stato risolto un problema che impediva l'uso di IQ# o del pacchetto Python qsharp con Python 3.8 o 3.9 quando si usa conda.
  • È stato risolto un problema a causa del quale i blocchi condizionali annidati potrebbero essere trasformati in modo non corretto.
  • È stato risolto un problema per cui alcuni codici non sono riusciti a compilare in precedenza per Quantinuum target.
  • Aggiunta di un'opzione in cui la generazione di QIR non target è specifica.
  • Correzione di un bug di concorrenza che potrebbe causare arresti anomali intermittenti se più istanze del simulatore vengono eseguite nello stesso processo.
  • Versione dell'estensione quantistica dell'interfaccia della riga di comando di Azure 0.7.0:
    • Fornire l'output del compilatore agli utenti se si è verificato un errore per semplificare la risoluzione dei problemi.
    • Correzione del bug a causa del quale non riusciva il recupero dell'output dalle aree di lavoro in una posizione diversa da un'altra impostata come predefinita.
    • L'elaborazione di processi che non producono alcun output è consentita.

27-07-2021

Kit di sviluppo Quantum versione 0.18.2107.153439

  • È possibile filtrare in base al nome del processo, allo stato del processo e all'ora di creazione del processo quando si elencano i processi in azure-quantum.
  • Correzione della regressione in Azioni codice a causa dell'incompatibilità con il protocollo nelle versioni di Visual Studio 16.10.x.
  • Messaggio di errore migliorato neiQ#%azure.* comandi magic quando non sono disponibili calcoli quantistici targets .
  • Il pacchetto Python azure-quantum corregge un problema con le credenziali MSAL in Windows e ora richiede versioni minime per tutte le dipendenze per attenuare altri potenziali problemi con le dipendenze precedenti.
  • Correzione di un bug in cuiQ# l'esecuzione del processo avrà esito negativo se è stata definita un'operazione non supportata nell'oggetto specificato target.
  • Correzione di un bug in cuiQ# alcuni programmi targetche supportano l'hardware Basic Measurement Feedback profile non sono stati segnalati correttamente come non supportati da Azure Quantum target.
  • Rilascio dell'estensione quantistica dell'interfaccia della riga di comando di Azure versione 0.6.1:
    • Aggiunta del comando per richiedere l'annullamento del processo: az quantum job cancel.
    • Correzione di un bug a causa del quale gli invii di processi in Azure Quantum che generano output standard venivano segnalati come non riusciti, anche se il processo era riuscito.
    • Abilitazione dell'invio di processi da una directory diversa usando il parametro --project.

Aggiornamento del servizio Azure Quantum

  • Il risolutore Parameter Free Population Annealing è ora disponibile tramite il piano di accesso in anteprima in Azure Quantum. Per iscriversi per l'accesso in anteprima, vedere Apply for Azure Quantum Early Access (Richiedere l'accesso in anteprima per Azure Quantum).
  • Il banner Terms (Termini) nella scheda Review (Revisione) nel portale di Azure Quantum è nascosto quando durante la creazione dell'area di lavoro viene aggiunto solo il provider Microsoft.

25-06-2021

Kit di sviluppo Quantum versione 0.18.2106.148911

  • È ora possibile configurare il numero desiderato di soluzioni restituite da un'esecuzione del risolutore.
  • È disponibile un nuovo pacchetto NuGet Microsoft.Quantum.AutoSubstitution, che quando viene aggiunto a un progetto Q#, consente di annotare le operazioni con l'attributo SubstitutableOnTarget(AltOp, Sim). Chiama quindi AltOp anziché l'operazione annotata, ogni volta che viene eseguita usando Sim.
  • L'integrazione con Azure-Identity offre più meccanismi per l'autenticazione con Azure.
  • Microsoft.Azure.Management.Quantum .NET restituisce ora l'URL di accesso con restrizioni in modo da poter ottenere altre informazioni/richiedere un piano di accesso con restrizioni.
  • Supporto in anteprima per la simulazione di rumore in sistemi aperti e rappresentazioni di stabilizzatore qsharp-runtime#714. Vedere qui per la documentazione sui simulatori in anteprima.
  • Uso di quantum-viz.js come motore per eseguire il rendering dell'output dal notebook jupyter %trace magic.

01-06-2021

Kit di sviluppo Quantum versione 0.17.2105.144881

  • È stata annullata una modifica nel client Python azure-quantum che poteva creare problemi di autenticazione per alcuni utenti (vedere i problemi 66 e 67).

26-05-2021

Kit di sviluppo Quantum versione 0.17.2105.143879

  • Aggiunta di una nuova funzione al client Python azure-quantum per supportare la conversione dei termini di ottimizzazione binaria da npz ad Azure Quantum. Vedere i dettagli completi in kit di sviluppo Quantum Python.
  • Pubblicazione dell'esempio di generazione di oracolo QIR. Questo programma consente di trasformare le funzioni classiche Q# per gli input booleani in implementazioni quantistiche di tali funzioni in termini di operazioni Q# a livello di QIR. Ciò consente, ad esempio, di implementare velocemente algoritmi quantistici usati da molti algoritmi quantistici come funzioni classiche.
  • Correzione di un bug che impedisce l'abilitazione della generazione QIR nell'immagine Docker iqsharp-base. Vedere i dettagli qui.
  • Implementate nuove funzioni speciali, ad esempio factorial e log-gamma, in Microsoft.Quantum.Math (microsoft/QuantumLibraries#448). Grazie a @TheMagicNacho per il contributo (microsoft/QuantumLibraries#440).
  • Client C#: il tipo di formato dati di input è stato modificato in "v2" per Quantum Computing.
  • Rilascio dell'estensione quantum dell'interfaccia della riga di comando di Azure versione 0.5.0: adattato allo strumento 'az' versione 2.23.0, aggiungendo informazioni sull'agente utente alle chiamate al servizio Azure Quantum.

Aggiornamento del servizio Azure Quantum

  • Aggiunti risolutori PA (annealing della popolazione) e SSMC (substochastic Monte Carlo) insieme all'accesso in anteprima tramite un piano specializzato disponibile per un subset di clienti.
  • Aggiunta del supporto per nuove aree: Giappone orientale, Giappone occidentale, Regno Unito meridionale, Regno Unito occidentale
  • Per il provider viene impostato lo stato di esito negativo se il provisioning non riesce. In precedenza rimaneva bloccato nello stato di avvio/aggiornamento in corso.
  • Aggiunta del pulsante della Guida nel portale per indirizzare l'utente al forum di supporto.
  • Visualizzazione del costo del provider nella valuta localizzata da Azure Marketplace.
  • Aggiunta del pulsante per il feedback nel portale per raccogliere commenti e suggerimenti degli utenti.
  • Aggiunta della guida introduttiva nel portale nel pannello della panoramica.

10-05-2021

Kit di sviluppo Quantum versione 0.16.2105.140472

  • Correzione dell'errore di dipendenza in IQSharp in System.Text.Json durante l'invio di processi ad Azure Quantum. Vedere i dettagli completi nel problema iqsharp#435.
  • Risoluzione di un problema che interessa le misurazioni congiunte di stati multi-qubit in alcune combinazioni della base Pauli con conseguenti valori non corretti. Per informazioni dettagliate, vedere il problema qsharp-runtime#680.

27-04-2021

Kit di sviluppo Quantum versione 0.16.2104.138035

  • Inferenza del tipo Q# migliorata in base all'algoritmo di inferenza del tipo Hindley-Milner.
  • Aggiunta del supporto per i tipi NumPy nelle definizioni dei coefficienti per i problemi nel pacchetto Python azure-quantum QIO.
  • Aggiornamento del file swagger del piano di controllo per supportare piani di accesso con restrizioni.
  • Aggiunta della nuova classe StreamingProblem nel pacchetto Python azure-quantum QIO. Supporta la stessa interfaccia per l'aggiunta di termini a una definizione di problema della classe Problem. Tuttavia, una volta aggiunti al problema, i termini vengono accodati per essere caricati da un thread in background e non vengono mantenuti in memoria per riferimento futuro.
  • Ripristinate le dimensioni dei pacchetti di Microsoft.Quantum.Sdk e Microsoft.Quantum.Compiler alla normalità. (Vedere la nota correlata per la versione 0.15.2103.133969)
  • Miglioramento delle prestazioni del compilatore.
  • Rilasciato l'estensione quantum dell'interfaccia della riga di comando di Azure versione 0.4.0: URL esposto per i piani di accesso con restrizioni. Correzione della regressione per i comandi delle offerte dipendenti dalle API di Azure Marketplace.

30-03-2021

Kit di sviluppo Quantum versione 0.15.2103.133969

25-02-2021

Kit di sviluppo Quantum versione 0.15.2102.129448

  • Miglioramento dell'esperienza utente di debug per IQ# aggiungendo una barra di scorrimento orizzontale per scorrere sia il percorso di esecuzione che le visualizzazioni dello stato di base.
  • Nuove funzioni per rappresentare il prodotto del gruppo e l'inverso del gruppo nel gruppo di Clifford su singolo qubit, per definire rapidamente gli operatori di Clifford su singolo qubit comuni e per applicare gli operatori di Clifford su singolo qubit come operazioni. Per altre informazioni, vedere il problema 409.
  • Risoluzione dei problemi di sicurezza nell'estensione Microsoft Quantum Development Kit per Visual Studio Code. Per informazioni dettagliate, vedere CVE-2021-27082.
  • Rilascio dell'estensione quantum per l'interfaccia della riga di comando di Azure versione 0.2.0: aggiunta del parametro '--provider-sku-list' ad 'az quantum workspace create' per consentire la specifica dei provider Quantum. Aggiunta del gruppo di comandi 'az quantum offerings' con 'list', 'accept-terms' e 'show-terms'.

12-02-2021

Kit di sviluppo Quantum versione 0.15.2102.128318

  • Correzione dell'errore "'npm' non riconosciuto come comando interno o esterno" durante la creazione di progetti Q# con l'estensione di Visual Studio Code. Vedere il problema 848.

29-01-2021

Kit di sviluppo Quantum versione 0.15.2101.126940

  • Aggiunta di modelli di progetto al Q# compilatore per i file eseguibili targetche esevono provider IonQ e Quantinuum
  • Aggiornamento dell'evidenziazione della sintassi del kernel IQ# per includere le modifiche alla sintassi Q# introdotte nella versione 0.15.2101125897
  • Correzione di bug per supportare il passaggio di matrici come argomenti di input ai programmi Q# inviati ad Azure Quantum tramite %azure.execute; vedere il problema 401
  • Correzione dell'errore "Autorizzazione negata" quando si usa az nelle immagini Docker iqsharp-base; vedere il problema 404
  • Rilascio dell'estensione quantum per l'interfaccia della riga di comando di Azure versione 0.1.0: fornito strumento da riga di comando per la gestione dell'area di lavoro e l'invio di processi di calcolo quantistico.

26-01-2021

Kit di sviluppo Quantum versione 0.15.2101125897

  • Allocazione semplificata dei qubit, che offre una sintassi più pratica per l'allocazione dei qubit, vedere i dettagli nel Q# repository del linguaggio.
  • Creazione del repository QDK-Python che include azure-quantum, il client Python per l'invio di processi di ottimizzazione di ispirazione quantistica al servizio Azure Quantum e qdk, incluso qdk.chemistry, un livello di comodità basato su Python per la libreria di chimica Q# che include la visualizzazione e la funzionalità molecolare per generare file di input per diversi pacchetti di chimica, ad esempio NWChem, Psi4 e OpenMolcas.
  • Le parentesi sono ora facoltative per i tipi di operazione e funzione e per le istruzioni if, elif, while e until. Le parentesi per le istruzioni for, use e borrow sono state deprecate.
  • Miglioramento delle stime della larghezza per la profondità ottimale. Vedere i dettagli.
  • Applicare l'operazione unitaria fornita come matrice esplicita tramite ApplyUnitary (QuantumLibraries#391, contributo esterno di Dmytro Fedoriaka)
  • Correzione di https://github.com/microsoft/iqsharp/issues/387 attenuando l'impatto sulle prestazioni all'avvio del kernel IQ#.

25-11-2020

Kit di sviluppo Quantum versione 0.14.2011120240

  • Miglioramento delle prestazioni del compilatore con caricamento più rapido dei riferimenti.
  • Aggiunta di una grammatica ANTLR per Q# alla specifica del linguaggio Q#.
  • Aggiornato lo Microsoft.Quantum.Preparation spazio dei nomi in modo che sia più coerente con la guida di stile e i principi di progettazione delle API e per supportare stati misti codificati con altri dati (vedere proposta, note di revisione e richieste pull #212, #322, #375, #376).
  • Le parentesi intorno alle espressioni di chiamata ripetute sono ora facoltative: è possibile scrivere (Foo(x))(y) come Foo(x)(y).
  • Agli utenti delle estensioni di Visual Studio o Visual Studio Code che hanno installato .NET 5 o Visual Studio 16.8 potrebbe essere richiesto di installare .NET Core 3.1 per continuare a usare le estensioni.

Vedere l'elenco completo delle richieste pull chiuse relative a librerie, compilatore, runtime, esempi, IQ# e Katas.

10-11-2020

Kit di sviluppo Quantum versione 0.13.20111004

Questa versione disabilita le funzionalità IntelliSense per i file Q# in Visual Studio e Visual Studio Code quando non è presente un file di progetto. Questo risolve un problema a causa del quale le funzionalità IntelliSense potrebbero smettere di funzionare dopo l'aggiunta di un nuovo file Q# a un progetto (vedere qsharp-compiler#720).

27-10-2020

Kit di sviluppo Quantum versione 0.13.20102604

Questa versione contiene quanto segue:

  • La stima delle risorse ora genera stime di profondità e larghezza ottenibili simultaneamente anche per il conteggio dei qubit. Per informazioni dettagliate, vedere qui.

Vedere l'elenco completo delle richieste pull chiuse relative a librerie, compilatore, runtime, esempi, IQ# e Katas.

05-10-2020

Kit di sviluppo Quantum versione 0.12.20100504

Questa versione corregge un bug che influisce sul caricamento dei notebook Q# (vedere iqsharp#331).

29-09-2020

Kit di sviluppo Quantum versione 0.12.20092803

Questa versione contiene quanto segue:

  • Annuncio e bozza di specifica della rappresentazione quantistica intermedia (QIR) intesa come formato comune tra front-end e back-end diversi. Vedere anche il post di blog Microsoft su QIR.
  • Lancio del nuovo repository del linguaggio Q# che contiene anche la documentazione di Q# completa.
  • Miglioramenti delle prestazioni per QuantumSimulator per i programmi che coinvolgono un numero elevato di qubit: migliore applicazione delle decisioni relative alla fusione delle porte; parallelizzazione migliorata nel sistema Linux; aggiunta della pianificazione intelligente dell'esecuzione delle porte; correzioni di bug.
  • Le funzionalità IntelliSense sono ora supportate per i file Q# in Visual Studio e Visual Studio Code anche senza un file di progetto.
  • Vari miglioramenti e correzioni di bug dell'interoperabilità Q#/Python, incluso un supporto migliore per i tipi di dati NumPy.
  • Miglioramenti allo spazio dei nomi Microsoft.Quantum.Arrays (vedere microsoft/QuantumLibraries#313).
  • Aggiunta di un nuovo esempio Repeat-Until-Success che usa solo due qubit.

Dall'ultima versione, il ramo predefinito in ogni repository open source è stato rinominato in main.

Vedere l'elenco completo delle richieste pull chiuse relative a librerie, compilatore, runtime, esempi, IQ# e Katas.

25-08-2020

Kit di sviluppo Quantum versione 0.12.20082513

Questa versione contiene quanto segue:

Vedere l'elenco completo delle richieste pull chiuse relative a librerie, compilatore, runtime, esempi, IQ# e Katas.

21-07-2020

Kit di sviluppo Quantum versione 0.12.20072031

Questa versione contiene quanto segue:

  • Gli spazi dei nomi aperti nei notebook Q# sono ora disponibili quando si eseguono tutte le celle future. In questo modo, ad esempio, gli spazi dei nomi possono essere aperti una sola volta in una cella nella parte superiore del notebook, anziché dover aprire gli spazi dei nomi pertinenti in ogni cella di codice. Un nuovo %lsopen comando magic visualizza l'elenco degli spazi dei nomi attualmente aperti.

Vedere l'elenco completo delle richieste pull chiuse relative a librerie, compilatore, runtime, esempi, IQ# e Katas.

02-07-2020

Kit di sviluppo Quantum versione 0.12.20070124

Questa versione contiene quanto segue:

  • Nuovo strumento qdk-chem per la conversione dei formati di serializzazione dei problemi della struttura elettronica legacy (ad esempio FCIDUMP) in Broombridge
  • Nuove funzioni e operazioni nello spazio dei nomi Microsoft.Quantum.Synthesis per applicare in modo coerente gli oracoli classici usando algoritmi di sintesi basati su trasformazione e scomposizione.
  • IQ# consente ora argomenti per i comandi %simulate, %estimate e altri comandi magic. Per altre informazioni, vedere le informazioni di riferimento sul %simulate comando magic.
  • Nuove opzioni di visualizzazione della fase in IQ#. Per altre informazioni, vedere le informazioni di riferimento sul %config comando magic.
  • IQ# e il pacchetto Python qsharp vengono ora forniti tramite pacchetti conda (qsharp e iqsharp) per semplificare l'installazione locale delle funzionalità Q# di Jupyter e Python in un ambiente Conda. Per altre informazioni, vedere le guide all'installazione Q# di Python .
  • Quando si usa il simulatore, i qubit non devono più essere nello stato |0⟩ al momento del rilascio, ma possono essere reimpostati automaticamente se sono stati misurati immediatamente prima del rilascio.
  • Aggiornamenti per consentire agli utenti di IQ# di utilizzare più facilmente i pacchetti di librerie con versioni diverse del kit di sviluppo Quantum, richiedendo solo la corrispondenza dei numeri di versione principale e secondaria anziché la stessa versione esatta
  • Rimozione dello spazio dei nomi deprecato Microsoft.Quantum.Primitive.*
  • Operazioni spostate:
    • Microsoft.Quantum.Intrinsic.Assert è ora Microsoft.Quantum.Diagnostics.AssertMeasurement
    • Microsoft.Quantum.Intrinsic.AssertProb è ora Microsoft.Quantum.Diagnostics.AssertMeasurementProbability
  • Correzioni di bug

Vedere l'elenco completo delle richieste pull chiuse relative a librerie, compilatore, runtime, esempi, IQ# e Katas.

04-06-2020

Kit di sviluppo Quantum versione 0.11.2006.403

In questa versione viene corretto un bug che riguarda la compilazione di progetti Q#.

03-06-2020

Kit di sviluppo Quantum versione 0.11.2006.207

Questa versione contiene quanto segue:

  • Q# i notebook e i programmi host Python non riescono più quando è presente un Q# punto di ingresso.
  • Aggiornamenti della libreria standard per l'uso di modificatori di accesso
  • Il compilatore ora consente l'inserimento di passaggi di riscrittura tra passaggi di riscrittura predefiniti
  • Diverse funzioni e operazioni deprecate sono state rimosse in seguito alla pianificazione descritta nei principi per le API. Q# programmi e librerie che vengono compilati senza avvisi nella versione 0.11.2004.2825 continuano a funzionare senza modifiche.

Vedere l'elenco completo delle richieste pull chiuse relative a librerie, compilatore, runtime, esempi, IQ# e Katas.

Nota

Questa versione contiene un bug che riguarda la compilazione di progetti Q#. È consigliabile eseguire l'aggiornamento a una versione più recente.

30-04-2020

Kit di sviluppo Quantum versione 0.11.2004.2825

Questa versione contiene quanto segue:

  • Nuovo supporto per le applicazioni Q#, che non richiedono più un file host Python o C#. Per altre informazioni su come iniziare a usare le applicazioni Q#, vedere qui.
  • È stata aggiornata la guida di avvio rapido del generatore quantistico di numero casuali per non richiedere più un file host C# o Python. Vedere la guida di avvio rapido aggiornata
  • Miglioramenti delle prestazioni alle immagini Docker per IQ#

Nota

Q# le applicazioni che usano il nuovo @EntryPoint() attributo attualmente non possono essere chiamate da programmi host Python o .NET. Per altre informazioni, vedere le guide all'interoperabilitàdi Python e .NET.

2020-03-31

Kit di sviluppo Quantum versione 0.11.2003.3107

Questa versione contiene correzioni di bug secondari per la versione 0.11.2003.2506.

26-03-2020

Kit di sviluppo Quantum versione 0.11.2003.2506

Questa versione contiene quanto segue:

  • Nuovo supporto per i modificatori di accesso in Q#
  • Aggiornamento a .NET Core SDK 3.1

Vedere l'elenco completo delle richieste pull chiuse relative a librerie, compilatore, runtime, esempi e Kata.

27-02-2020

Kit di sviluppo Quantum versione 0.10.2002.2610

Questa versione contiene quanto segue:

Vedere l'elenco completo delle richieste pull chiuse relative a librerie, compilatore, runtime, esempi e Kata.

29-01-2020

Kit di sviluppo Quantum versione 0.10.2001.2831

Questa versione contiene quanto segue:

  • Nuovo pacchetto NuGet Microsoft.Quantum.SDK, che sostituisce il pacchetto NuGet Microsoft.Quantum.Development.Kit durante la creazione di nuovi progetti. Il pacchetto NuGet Microsoft.Quantum.Development.Kit è ancora supportato per i progetti esistenti.
  • Supporto per Q# le estensioni del compilatore, abilitate dal nuovo pacchetto NuGet Microsoft.Quantum.SDK, per altre informazioni, vedere la documentazione su GitHub, l'esempio di estensioni del compilatore e il Q# blog di sviluppo
  • Aggiunta del supporto per .NET Core 3.1. È consigliabile installare la versione 3.1.100 perché la compilazione con versioni di .NET Core SDK precedenti può causare problemi
  • Nuove trasformazioni del compilatore disponibili in Microsoft.Quantum.QsCompiler.Experimental
  • Nuove funzionalità per esporre i vettori di stato di output come HTML in IQ#
  • Aggiunto il supporto per EstimateFrequencyA in Microsoft.Quantum.Characterization per i test Hadamard e SWAP
  • Lo spazio dei nomi AmplitudeAmplification ora usa la guida di stile Q#

Vedere l'elenco completo delle richieste pull chiuse relative a librerie, compilatore, runtime, esempi e Kata.

05-12-2019

Kit di sviluppo Quantum versione 0.10.1912.0501

Questa versione contiene quanto segue:

  • Nuovo attributo Test per il testing unità Q#. Vedere la documentazione aggiornata dell'API disponibile qui e la guida aggiornata su test e debug disponibile qui
  • Aggiunta dell'analisi dello stack se si verifica un errore di esecuzione del programma Q#
  • Supporto per punti di interruzione in Visual Studio Code in seguito a un aggiornamento nell'estensione C# per Visual Studio Code di OmniSharp

Vedere l'elenco completo delle richieste pull chiuse relative a librerie, compilatore, runtime, esempi e Kata.

17-11-2019

Kit di sviluppo Quantum versione 0.10.1911.1607

Questa versione contiene quanto segue:

  • Correzione delle prestazioni per notebook di Quantum Katas e Jupyter

Vedere l'elenco completo delle richieste pull chiuse relative a librerie, compilatore, runtime, esempi e Kata.

01-11-2019

Kit di sviluppo Quantum versione 0.10.1911.307

Questa versione contiene quanto segue:

  • Aggiornamenti delle estensioni di Visual Studio Code e Visual Studio per la distribuzione di server di linguaggio come file eseguibili autonomi, eliminando la necessità della dipendenza da versioni di .NET Core SDK
  • Migrazione a .NET Core 3.0
  • Modifica di rilievo apportata a Microsoft.Quantum.Simulation.Core.IOperationFactory con l'introduzione del nuovo metodo Fail. Influisce solo sui simulatori personalizzati che non estendono SimulatorBase. Per altre informazioni, vedere la richiesta pull in GitHub.
  • Nuovo supporto per attributi deprecati

Vedere l'elenco completo delle richieste pull chiuse relative a librerie, compilatore, runtime, esempi e Kata.

30-09-2019

Kit di sviluppo Quantum versione 0.9.1909.3002

Questa versione contiene quanto segue:

  • Nuovo supporto per il completamento del codice Q# in Visual Studio 2019 (versioni 16.3 e successive) e Visual Studio Code
  • Nuovo Quantum Kata per gli addizionatori quantistici

Vedere l'elenco completo delle richieste pull chiuse relative a librerie, compilatore, runtime, esempi e Kata.

29-08-2019

Kit di sviluppo Quantum versione 0.9.1908.2902

Questa versione contiene quanto segue:

  • Nuovo supporto per le istruzioni di coniugazione in Q#
  • Nuove azioni di codice nel compilatore, ad esempio "replace with", "add documentation" e aggiornamento degli elementi di matrici semplici
  • Aggiunta dei comandi per l'installazione di modelli e la creazione di un nuovo progetto all'estensione di Visual Studio Code
  • Aggiunta di nuove varianti del combinatore ApplyIf, ad esempio Microsoft.Quantum.Canon.ApplyIfOne
  • Conversione di altri Quantum Kata in Jupyter Notebook
  • L'estensione di Visual Studio richiede ora Visual Studio 2019

Vedere l'elenco completo delle richieste pull chiuse relative a librerie, compilatore, runtime, esempi e Kata.

Di seguito vengono riepilogate le modifiche insieme alle istruzioni per l'aggiornamento dei programmi esistenti. Per altre informazioni su queste modifiche, vedere il blog degli sviluppatori Q#.

12-07-2019

Kit di sviluppo Quantum versione 0.8.1907.1701

Questa versione contiene quanto segue:

Vedere l'elenco completo delle richieste pull chiuse relative a librerie ed esempi.

31-05-2019

Kit di sviluppo Quantum versione 0.7.1905.3109

Questa versione contiene quanto segue:

  • Aggiunte al linguaggio Q#
  • Aggiornamenti della libreria di chimica
  • Nuova libreria per il calcolo numerico

Vedere l'elenco completo delle richieste pull chiuse relative a librerie ed esempi.

Di seguito vengono riepilogate le modifiche insieme alle istruzioni per l'aggiornamento dei programmi esistenti. Per altre informazioni su queste modifiche, vedere il blog degli sviluppatori Q#.

Sintassi del linguaggio Q#

In questa versione è stata aggiunta una nuova sintassi del linguaggio Q#:

Libreria

In questa versione è stata aggiunta una nuova libreria per il calcolo numerico. Per altre informazioni, vedere come usare la nuova libreria per il calcolo numerico e provare i nuovi esempi. Richiesta pull 102.
In questa versione la libreria di chimica è stata riorganizzata, ampliata e aggiornata:

03-05-2019

Kit di sviluppo Quantum versione 0.6.1905

Questa versione contiene quanto segue:

  • Aggiunta di modifiche al linguaggio Q#
  • Ristrutturare le Quantum Development Kit librerie
  • Aggiunta di nuovi esempi
  • Correzione di bug. Diverse richieste pull chiuse relative a librerie ed esempi.

Di seguito vengono riepilogate le modifiche insieme alle istruzioni per l'aggiornamento dei programmi esistenti. Per altre informazioni su queste modifiche, visitare la pagina devblogs.microsoft.com/qsharp.

Sintassi del linguaggio Q#

In questa versione è stata aggiunta una nuova sintassi del linguaggio Q#:

Con questa versione non è più possibile specificare un elemento della matrice sul lato sinistro di un'istruzione set. Il motivo è che questa sintassi implica che le matrici sono modificabili quando in realtà il risultato dell'operazione è sempre stato la creazione di una nuova matrice con la modifica. Viene invece generato un errore del compilatore con un suggerimento per usare il nuovo operatore copy-and-update, w/, per ottenere lo stesso risultato.

Ristrutturazione delle librerie

In questa versione le librerie sono state riorganizzate per favorirne la crescita in modo coerente:

  • Lo spazio dei nomi Microsoft.Quantum.Primitive è stato rinominato in Microsoft.Quantum.Intrinsic. Queste operazioni vengono implementate dal target computer. Lo spazio dei nomi Microsoft.Quantum.Primitive è deprecato. Un avviso di runtime indica quando i programmi chiamano operazioni e funzioni usando nomi deprecati.

  • Il pacchetto Microsoft.Quantum.Canon è stato rinominato in Microsoft.Quantum.Standard. Questo pacchetto contiene gli spazi dei nomi comuni alla maggior parte dei programmi Q#. ad esempio:

    • Microsoft.Quantum.Canon per operazioni comuni
    • Microsoft.Quantum.Arithmetic per operazioni aritmetiche di utilizzo generico
    • Microsoft.Quantum.Preparation per le operazioni usate per preparare lo stato dei qubit
    • Microsoft.Quantum.Simulation per la funzionalità di simulazione

Con questa modifica, nei programmi che includono una singola istruzione "open" per lo spazio dei nomi Microsoft.Quatum.Canon si possono verificare errori di compilazione se viene fatto riferimento a operazioni che sono state spostate negli altri tre nuovi spazi dei nomi. L'aggiunta di altre istruzioni open per i tre nuovi spazi dei nomi offre la possibilità di risolvere rapidamente questo problema.

  • Diversi spazi dei nomi sono stati deprecati perché le operazioni al loro interno sono state riorganizzate in altri spazi dei nomi. I programmi che usano questi spazi dei nomi continuano a funzionare e un avviso in fase di compilazione indica lo spazio dei nomi in cui è definita l'operazione.

  • Lo spazio dei nomi Microsoft.Quantum.Arithmetic è stato normalizzato per l'uso del tipo definito dall'utente LittleEndian user defined type. Usare la funzione BigEndianAsLittleEndian quando è necessario eseguire la conversione in little endian.

  • I nomi di diverse funzioni e operazioni chiamabili sono stati cambiati per la conformità alla guida di stile di Q#. I nomi delle funzioni e operazioni chiamabili precedenti sono deprecati. I programmi che usano i precedenti chiamabili continuano a funzionare con un avviso in fase di compilazione.

Nuovi esempi

È stato aggiunto un esempio dell'uso di Q# con il driver F#.

"Grazie" al collaboratore seguente che ha offerto il suo contributo per la base di codice open source all'indirizzo https://github.com/Microsoft/Quantum. Questi contributi aggiungono agli esempi avanzati di Q# codice:

Migrazione dei progetti esistenti a 0.6.1905.

Per aggiornare QDK, vedere la Guida all'installazione.

Se sono presenti progetti esistenti Q# dalla versione 0.5 di Quantum Development Kit, di seguito sono riportati i passaggi per eseguire la migrazione di tali progetti alla versione più recente.

  1. I progetti devono eseguire l'aggiornamento in ordine. Se una soluzione include più progetti, aggiornare ognuno nell'ordine in cui vi si fa riferimento.

  2. Da un prompt dei comandi eseguire dotnet clean per rimuovere tutti i file binari e i file intermedi esistenti.

  3. In un editor di testo, modificare il file .csproj in modo da cambiare la versione per tutte le occorrenze di Microsoft.QuantumPackageReference alla versione 0.6.1904 e il nome del pacchetto da Microsoft.Quantum.Canon a Microsoft.Quantum.Standard. Ad esempio:

    <PackageReference Include="Microsoft.Quantum.Standard" Version="0.6.1905.301" />
    <PackageReference Include="Microsoft.Quantum.Development.Kit" Version="0.6.1905.301" />
    
  4. Dal prompt dei comandi eseguire questo comando: dotnet msbuild

  5. Al termine, può comunque essere necessario risolvere manualmente gli errori dovuti alle modifiche di cui sopra. In molti casi, questi errori vengono segnalati anche da IntelliSense in Visual Studio o Visual Studio Code.

    • Aprire la cartella radice del progetto o della soluzione che lo contiene in Visual Studio 2019 o Visual Studio Code.
    • Dopo aver aperto un file con estensione .qs nell'editor, si dovrebbe vedere l'output dell'estensione del linguaggio Q# nella finestra di output.
    • Dopo che il progetto è stato caricato correttamente (indicato nella finestra di output), aprire ogni file e manualmente per risolvere tutti i problemi rimanenti.

Nota

  • Per la versione 0.6, il server di lingua incluso in Quantum Development Kit non supporta più aree di lavoro.
  • Per gestire un progetto in Visual Studio Code, aprire la cartella radice contenente il progetto stesso e tutti i progetti a cui si fa riferimento.
  • Per usare una soluzione in Visual Studio, tutti i progetti contenuti nella soluzione devono trovarsi nella stessa cartella della soluzione o in una delle relative sottocartelle.
  • I riferimenti tra i progetti trasferiti alla versione 0.6 e successive e i progetti che usano le versioni di pacchetti precedenti non sono supportati.

15-04-2019

Kit di sviluppo Quantum versione 0.5.1904

Questa versione contiene correzioni di bug.

27-03-2019

Kit di sviluppo Quantum versione 0.5.1903

Questa versione contiene quanto segue:

27-02-2019

Kit di sviluppo Quantum versione 0.5.1902

Questa versione contiene quanto segue:

  • Aggiunta del supporto per host Python multipiattaforma. Il pacchetto di qsharp per Python semplifica la simulazione di operazioni e funzioni Q# all'interno di Python. Vedere altre informazioni sull'interoperabilità di Python.

  • Le estensioni di Visual Studio e Visual Studio Code supportano ora la ridenominazione dei simboli, ad esempio funzioni e operazioni.

  • È ora possibile installare l'estensione di Visual Studio in Visual Studio 2019.

30-01-2019

Kit di sviluppo Quantum versione 0.4.1901

Questa versione contiene quanto segue:

  • Aggiunta del supporto per un nuovo tipo primitivo, BigInt, che rappresenta un intero con segno di dimensione arbitraria. Vedere altre informazioni su BigInt.
  • Aggiunge un nuovo simulatore Toffoli, un simulatore rapido per scopi speciali in grado di simulare operazioni quantistiche X, CNOT e X multi-controllate con un numero elevato di qubit. Vedere altre informazioni sul simulatore Toffoli.
  • Aggiunta di un semplice strumento di stima che consente di stimare le risorse necessarie per eseguire un'istanza specifica di un'operazione Q# in un computer quantistico. Vedere altre informazioni sullo strumento di stima delle risorse.

28-11-2018

Kit di sviluppo Quantum versione 0.3.1811.2802

Anche se l'estensione vs Code non lo usava, è stata contrassegnata e rimossa dal marketplace durante l'eliminazione delle estensioni correlate al event-stream pacchetto npm. In questa versione sono state rimosse tutte le dipendenze di runtime che potrebbero attivare la segnalazione di problemi nell'estensione.

Se l'estensione è stata installata in precedenza, è necessario installarla di nuovo visitando l'estensione Microsoft Quantum Development Kit per Visual Studio Code in Visual Studio Marketplace e premere Installa. Ci scusiamo per l'inconveniente.

20-11-2018

Kit di sviluppo Quantum versione 0.3.1811.1511

In questa versione è stato corretto un bug che impedisce ad alcuni utenti di caricare correttamente l'estensione di Visual Studio.

02-11-2018

Kit di sviluppo Quantum versione 0.3.1811.203

Questa versione include alcune correzioni di bug, tra cui:

  • La chiamata a DumpMachine potrebbe cambiare lo stato del simulatore in determinate situazioni.
  • Sono stati rimossi gli avvisi di compilazione visualizzati durante la creazione di progetti con una versione di .NET Core precedente a 2.1.403.
  • È stata eseguita la pulizia della documentazione, in particolare per le descrizioni comando visualizzate al passaggio del mouse in VS Code o Visual Studio.

29-10-2018

Kit di sviluppo Quantum versione 0.3.1810.2508

Questa versione include nuove funzionalità del linguaggio e un'esperienza di sviluppo migliorata:

  • Questa versione include un server di linguaggio per Q# e integrazioni client per Visual Studio e Visual Studio Code. È quindi ora disponibile un nuovo set di funzionalità di IntelliSense, oltre al feedback in tempo reale sulla digitazione sotto forma di sottolineature ondulate di errori e avvisi.
  • Questo aggiornamento migliora notevolmente i messaggi di diagnostica in generale, con l'esplorazione semplificata e intervalli precisi per la diagnostica, oltre a dettagli aggiuntivi nelle informazioni visualizzate al passaggio del mouse.
  • Il linguaggio Q# è stato esteso in modo da unificare l'esecuzione di operazioni di sviluppo comuni, oltre che con nuovi miglioramenti apportati alle funzionalità per far risaltare la potenza del calcolo quantistico. In questa versione sono state apportate alcune modifiche di rilievo al linguaggio Q#.

Questa versione include anche una nuova libreria di chimica quantistica:

  • La libreria di chimica contiene nuove funzionalità di simulazione hamiltoniana, tra cui:
    • Integratori Trotter-Suzuki di ordine pari arbitrario per una maggiore accuratezza della simulazione.
    • Tecnica di simulazione di qubitizzazione con ottimizzazioni specifiche della chimica per ridurre la complessità dei gate $T$.
  • È stato introdotto un nuovo schema open source, denominato schema Broombridge (in riferimento a un luogo storico celebrato come luogo di nascita degli hamiltoniani), per l'importazione e la simulazione di rappresentazioni di molecole.
  • Tramite lo schema Broombridge vengono fornite più rappresentazioni chimiche. Questi modelli sono stati generati da NWChem, uno strumento di chimica computazionale open source a elevate prestazioni.
  • Esercitazioni ed esempi descrivono come usare la libreria di chimica e i modelli di dati Broombridge per:
    • Costruire semplici sistemi hamiltoniani con la libreria di chimica
    • Visualizzare le energie di terra e di eccitazione dell'idruro di litio usando la stima delle fasi.
    • Eseguire stime delle risorse della simulazione della chimica quantistica.
    • Stimare i livelli energetici delle molecole rappresentate dallo schema Broombridge.
  • La documentazione descrive come usare NWChem per generare altri modelli chimici per la simulazione quantistica con Q#.

Altre informazioni sulla libreria di Quantum Development Kit chimica.

Con la nuova libreria di chimica, le librerie vengono separate in un nuovo repository di GitHub, Microsoft/QuantumLibraries. Gli esempi rimangono nel repository Microsoft/Quantum. Sono benvenuti contributi per entrambi.

Questa versione include correzioni di bug e funzionalità per i problemi segnalati dalla community.

Contributi della community

"Grazie" ai collaboratori seguenti che hanno offerto il loro contributo per la base di codice open source all'indirizzo https://github.com/Microsoft/Quantum. Questi contributi aggiungono agli esempi avanzati di Q# codice:

  • Rolf Huisman (@RolfHuisman): Miglioramento dell'esperienza per gli sviluppatori QASM/Q# con la creazione di un convertitore da QASM a Q#. Richiesta pull 58.

  • Andrew Helwer (@ahelwer): ha contribuito a un esempio che implementa il gioco CHSH, un gioco quantistico correlato alla nonlocalità. Richiesta pull 84.

Grazie anche a Rohit Gupta (@guptarohit,richiesta pull 90), Tanaka Takayoshi (@tanaka-takayoshi,richiesta pull 289) e Lee James O'Riordan (@mlxd,richiesta pull 96) per il loro lavoro destinato a migliorare i contenuti tramite correzioni della documentazione, dell'ortografia e degli errori di digitazione.

10-09-2018

Kit di sviluppo Quantum versione 0.2.1809.701

Questa versione include correzioni di bug per i problemi segnalati dalla community,

30-06-2018

Kit di sviluppo Quantum versione 0.2.1806.3001

Questa versione è semplicemente una correzione rapida per il problema 48 segnalato in GitHub (la compilazione Q# non riesce se il nome utente contiene uno spazio vuoto). Seguire le stesse istruzioni di aggiornamento indicate per 0.2.1806.1503 con la nuova versione corrispondente (0.2.1806.3001-preview).

22-06-2018

Kit di sviluppo Quantum versione 0.2.1806.1503

Questa versione include diversi contributi della community, oltre a un'esperienza di debug migliorata e a prestazioni migliorate. In particolare:

  • Miglioramenti delle prestazioni in simulazioni di piccole e grandi dimensioni per il computer QuantumSimulator target .
  • Miglioramento della funzionalità di debug.
  • Contributi della community per correzioni di bug, nuove funzioni helper, nuove operazioni e nuovi esempi.

Miglioramenti delle prestazioni.

Questo aggiornamento include miglioramenti delle prestazioni per la simulazione di un numero elevato e ridotto di qubit per tutti i target computer. Questo miglioramento è facilmente visibile con la simulazione H2 che è un campione standard in Quantum Development Kit.

Miglioramento della funzionalità di debug

Questo aggiornamento include nuove funzionalità di debug:

  • Sono state aggiunte due nuove operazioni @"microsoft.quantum.extensions.diagnostics.dumpmachine" e @"microsoft.quantum.extensions.diagnostics.dumpregister" le informazioni sulla funzione wave di output sulla target macchina quantistica in quel momento.
  • In Visual Studio la probabilità di misurare $\ket{1}$ su un singolo qubit viene ora visualizzata automaticamente nella finestra di debug per il computer QuantumSimulator target .
  • In Visual Studio è stata migliorata la visualizzazione delle proprietà delle variabili nelle finestre di debug Auto e Variabili locali.

Vedere altre informazioni su test e debug.

Contributi della community

La community di autori di codice Q# continua a crescere e siamo entusiasti di vedere le prime versioni di librerie ed esempi creati dai collaboratori e inviate alla base di codice open source all'indirizzo https://github.com/Microsoft/quantum. Un grande "grazie" ai collaboratori seguenti:

  • Mathias Soeken (@msoeken): ha fornito un esempio che definisce un metodo di sintesi logica basato su trasformazioni per creare reti Toffoli e implementare una determinata permutazione. Il codice è scritto interamente con funzioni e operazioni Q#. Richiesta pull 41.
  • RolfHuisman (@RolfHuisman): Rolf Huis, Microsoft MVP, ha fornito un esempio che genera codice QASM flat da codice Q# per una categoria limitata di programmi che non includono un flusso di controllo classico e hanno operazioni quantistiche limitate. Richiesta pull 59
  • Sarah Kasier (@crazy4pi314): ha contribuito a migliorare la base di codice inviando una funzione di libreria per le operazioni controllate. Richiesta pull 53
  • Jessica Lemieux (@Lemj3111): ha corretto @"microsoft.quantum.canon.quantumphaseestimation" e creato nuovi unit test. Richiesta pull 54
  • Tama McGlinn (@TamaMcGlinn): ha pulito l'esempio di teletrasporto assicurando che l'istanza di QuantumSimulator venga eliminata. Richiesta pull 20

Un grande "grazie" anche a questi Microsoft Software Engineer del team Commercial Engineering Services che hanno apportato modifiche importanti alla documentazione durante un evento hackathon. Queste modifiche hanno decisamente migliorato la chiarezza della documentazione e l'esperienza di onboarding:

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

Aggiornare i progetti esistenti

Questa versione è completamente compatibile con le versioni precedenti. È sufficiente aggiornare i pacchetti NuGet nei progetti alla versione 0.2.1806.1503-preview ed eseguire una ricompilazione completa per assicurarsi che tutti i file intermedi vengano rigenerati.

In Visual Studio seguire le normali istruzioni su come aggiornare un pacchetto.

Per aggiornare i modelli di progetto per la riga di comando, eseguire il comando seguente:

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

Dopo aver eseguito questo comando, tutti i nuovi progetti creati usando dotnet new <project-type> -lang Q# usano automaticamente questa versione di Quantum Development Kit.

Per aggiornare un progetto esistente per l'uso della versione più recente, eseguire il comando seguente dalla directory di ogni progetto:

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"

Se un progetto esistente usa anche l'integrazione XUnit per gli unit test, è possibile usare un comando simile per aggiornare anche questo pacchetto:

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

A seconda della versione di XUnit usata per il progetto di test, potrebbe essere necessario aggiornare XUnit alla versione 2.3.1:

dotnet add package xunit -v "2.3.1" 

Dopo l'aggiornamento, assicurarsi di rimuovere tutti i file temporanei generati dalla versione precedente eseguendo questo comando:

dotnet clean 

Problemi noti

Nessun altro problema noto da segnalare.

26-02-2018

Kit di sviluppo Quantum versione 0.2.1802.2202

Questa versione include il supporto per lo sviluppo in più piattaforme, l'interoperabilità dei linguaggi e miglioramenti delle prestazioni. In particolare:

  • Supporto per lo sviluppo basato su macOS e Linux.
  • Compatibilità con .NET Core, incluso il supporto per Visual Studio Code in più piattaforme.
  • Licenza open source completa per le Quantum Development Kit librerie.
  • Miglioramento delle prestazioni del simulatore nei progetti che richiedono almeno 20 qubit.
  • Interoperabilità con il linguaggio Python (versione di anteprima disponibile in Windows).

Edizioni di .NET

La piattaforma .NET è disponibile in due edizioni diverse, .NET Framework fornito con Windows e .NET Core open source disponibile in Windows, macOS e Linux. Con questa versione, la maggior parte delle parti dell'oggetto Quantum Development Kit viene fornita come librerie per .NET Standard, il set di classi comuni sia a Framework che a Core. Queste librerie sono quindi compatibili con le versioni recenti di .NET Framework o .NET Core.

Per garantire che i progetti scritti usando siano Quantum Development Kit il più portatili possibile, è consigliabile che i progetti di libreria scritti usando Quantum Development Kittarget .NET Standard. Le applicazioni console devono target .NET Core. Poiché le versioni precedenti dell'unico Quantum Development Kit .NET Framework supportato, potrebbe essere necessario eseguire la migrazione dei progetti esistenti. Per informazioni su come eseguire questa operazione, vedere di seguito.

Migrazione del progetto

I progetti creati usando le versioni precedenti di Quantum Development Kit ancora funzionano, purché non si aggiornino i pacchetti NuGet usati in essi. Per eseguire la migrazione del codice esistente alla nuova versione, seguire questa procedura:

  1. Creare un nuovo progetto .NET Core usando il tipo di modello di progetto Q# appropriato (applicazione, raccolta o progetto di test).
  2. Copiare i file con estensione .qs e .cs/.fs esistenti dal progetto precedente a quello nuovo (Aggiungi > Elemento esistente). Non copiare il file AssemblyInfo.cs.
  3. Compilare ed eseguire il nuovo progetto.

Si noti che l'operazione RandomWalkPhaseEstimation dello spazio dei nomi Microsoft.Quantum.Canon è stata spostata nello spazio dei nomi Microsoft.Research.Quantum.RandomWalkPhaseEstimation nel repository Microsoft/Quantum-NC.

Problemi noti

  • L'opzione --filter in dotnet test non funziona correttamente per i test scritti in Q#. Di conseguenza, i singoli unit test non possono essere eseguiti in Visual Studio Code; è consigliabile usare dotnet test al prompt dei comandi per eseguire nuovamente tutti i test.

18-01-2018

Kit di sviluppo Quantum versione 0.1.1801.1707

Questa versione include le correzioni per alcuni problemi segnalati dalla community, vale a dire:

  • Il simulatore ora funziona con le prime CPU non abilitate per AVX.
  • Le impostazioni decimali a livello di area non causano l'esito negativo del Q# parser.
  • L'operazione primitiva SignD restituisce ora Int invece di Double.

11-12-2017

Kit di sviluppo Quantum versione 0.1.1712.901

Problemi noti

Requisiti hardware e software
  • Il simulatore incluso nell'oggetto Quantum Development Kit richiede l'esecuzione di un'installazione a 64 bit di Microsoft Windows.
  • Il simulatore quantistico di Microsoft, installato con Quantum Development Kit, usa Advanced Vector Extensions (AVX) e richiede una CPU abilitata per AVX. I processori Intel distribuiti nel primo trimestre 2011 (Sandy Bridge) o versioni successive supportano AVX. Stiamo valutando di aggiungere il supporto per le CPU meno recenti e potremmo annunciare i dettagli in un secondo momento.
Creazione del progetto
  • Quando si crea una soluzione (.sln) che usa Q#, la soluzione deve essere una directory superiore a ogni progetto (.csproj) nella soluzione. A questo scopo, durante la creazione di una nuova soluzione, assicurarsi che la casella di controllo "Crea directory per la soluzione" sia selezionata nella finestra di dialogo "Nuovo progetto". In caso contrario, i Quantum Development Kit pacchetti NuGet devono essere installati manualmente.
Q#
  • IntelliSense non visualizza errori corretti per il codice Q#. Per visualizzare gli errori corretti di Q#, assicurarsi di visualizzare gli errori di compilazione nell'elenco errori di Visual Studio. Tenere anche presente che gli errori di Q# verranno visualizzati solo dopo aver completato una compilazione.
  • L'uso di una matrice modificabile in un'applicazione parziale può generare un comportamento imprevisto.
  • L'associazione di una matrice non modificabile a una matrice modificabile (sia a = b, dove b è una matrice modificabile) può generare un comportamento imprevisto.
  • La profilatura, il code coverage e altri plug-in di Visual Studio potrebbero non sempre conteggiare accuratamente le righe e i blocchi di Q#.
  • Il compilatore Q# non convalida le stringhe interpolate. È possibile creare errori di compilazione C# inserendo errori ortografici nei nomi delle variabili o usando espressioni nelle stringhe interpolate Q#.
Simulazione
  • Il simulatore quantistico usa OpenMP per parallelizzare l'algebra lineare necessaria. Per impostazione predefinita OpenMP usa tutti i thread hardware disponibili, che significa che i programmi con piccoli numeri di qubit spesso vengono eseguiti lentamente perché il coordinamento richiede il lavoro effettivo. Questo problema può essere risolto impostando la variabile di ambiente OMP_NUM_THREADS su un numero basso. Come regola approssimativa di pollice, un thread è buono per un massimo di quattro qubit, e quindi un thread aggiuntivo per qubit è buono, anche se questo è altamente dipendente dall'algoritmo.
Debug
  • F11 (esegui istruzione) non funziona nel codice Q#.
  • L'evidenziazione del codice in Q# in corrispondenza di un punto di interruzione o di una pausa di un singolo passaggio è talvolta imprecisa. La riga corretta è evidenziata, ma a volte l'evidenziazione inizia e termina a colonne non corrette sulla riga.
Test
  • I test devono essere eseguiti in modalità a 64 bit. Se i test hanno esito negativo con BadImageFormatException, passare al menu Test e selezionare Impostazioni test > Architettura processore predefinita > x64.
  • L'esecuzione di alcuni test richiede tempi lunghi, a volte fino a 5 minuti a seconda del computer in uso. Questo è normale, come alcuni usano oltre 20 qubit; il test più grande attualmente eseguito su 23 qubit.
Esempi
  • In alcuni computer è possibile che alcuni piccoli esempi vengano eseguiti lentamente a meno che la variabile di ambiente OMP_NUM_THREADS non sia impostata su "1". Vedere anche la nota sulla versione in "Simulazione".
Librerie
  • Esiste un presupposto implicito che i qubit passati a un'operazione in argomenti diversi siano tutti distinti. Ad esempio, tutte le operazioni con le librerie (e tutti i simulatori) presuppongono che i due qubit passati a un CNOT siano diversi tra loro. La violazione di questo presupposto può generare un comportamento imprevisto. È possibile testare questa condizione usando il simulatore di traccia del computer quantistico.
  • La funzione Microsoft.Quantum.Bind potrebbe non generare i risultati previsti in tutti i casi.
  • Nello spazio dei nomi Microsoft.Quantum.Extensions.Math la funzione SignD restituisce un valore Double anziché un valore Int, sebbene la funzione System.Math.Sign sottostante restituisca sempre un valore integer. È possibile confrontare il risultato con 1,0, -1,0 e 0,0, perché questi valori doubles hanno tutte rappresentazioni binarie esatte.