qsharp-lang 1.3.3-dev → 1.3.5-dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/compiler/compiler.d.ts +1 -1
- package/dist/debug-service/debug-service.d.ts +2 -2
- package/dist/katas-content.generated.js +34 -0
- package/dist/language-service/language-service.d.ts +2 -2
- package/dist/main.d.ts +1 -1
- package/dist/main.js +12 -18
- package/dist/workers/common.d.ts +1 -1
- package/dist/workers/node.js +2 -1
- package/docs/Microsoft.Quantum.Arrays/All.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Any.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Chunks.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/CircularlyShifted.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/ColumnAt.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Count.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Diagonal.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/DrawMany.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Enumerated.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Excluding.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Filtered.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/FlatMapped.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Flattened.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Fold.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/ForEach.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Head.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/HeadAndRest.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/IndexOf.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/IndexRange.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Interleaved.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/IsEmpty.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/IsRectangularArray.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/IsSorted.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/IsSquareArray.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Mapped.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/MappedByIndex.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/MappedOverRange.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Most.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/MostAndTail.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Padded.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Partitioned.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Rest.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Reversed.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/SequenceI.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/SequenceL.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Sorted.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Subarray.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Swapped.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Tail.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Transposed.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Unzipped.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Where.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Windows.md +1 -1
- package/docs/Microsoft.Quantum.Arrays/Zipped.md +1 -1
- package/docs/Microsoft.Quantum.Canon/ApplyCNOTChain.md +1 -1
- package/docs/Microsoft.Quantum.Canon/ApplyControlledOnBitString.md +1 -1
- package/docs/Microsoft.Quantum.Canon/ApplyControlledOnInt.md +1 -1
- package/docs/Microsoft.Quantum.Canon/ApplyP.md +1 -1
- package/docs/Microsoft.Quantum.Canon/ApplyPauli.md +1 -1
- package/docs/Microsoft.Quantum.Canon/ApplyPauliFromBitString.md +1 -1
- package/docs/Microsoft.Quantum.Canon/ApplyPauliFromInt.md +1 -1
- package/docs/Microsoft.Quantum.Canon/ApplyQFT.md +1 -1
- package/docs/Microsoft.Quantum.Canon/ApplyToEach.md +1 -1
- package/docs/Microsoft.Quantum.Canon/ApplyToEachA.md +1 -1
- package/docs/Microsoft.Quantum.Canon/ApplyToEachC.md +1 -1
- package/docs/Microsoft.Quantum.Canon/ApplyToEachCA.md +1 -1
- package/docs/Microsoft.Quantum.Canon/ApplyXorInPlace.md +1 -1
- package/docs/Microsoft.Quantum.Canon/ApplyXorInPlaceL.md +1 -1
- package/docs/Microsoft.Quantum.Canon/CX.md +1 -1
- package/docs/Microsoft.Quantum.Canon/CY.md +1 -1
- package/docs/Microsoft.Quantum.Canon/CZ.md +1 -1
- package/docs/Microsoft.Quantum.Canon/Fst.md +1 -1
- package/docs/Microsoft.Quantum.Canon/Snd.md +1 -1
- package/docs/Microsoft.Quantum.Canon/SwapReverseRegister.md +1 -1
- package/docs/Microsoft.Quantum.Convert/BigIntAsBoolArray.md +1 -1
- package/docs/Microsoft.Quantum.Convert/BoolArrayAsBigInt.md +1 -1
- package/docs/Microsoft.Quantum.Convert/BoolArrayAsInt.md +1 -1
- package/docs/Microsoft.Quantum.Convert/BoolArrayAsResultArray.md +1 -1
- package/docs/Microsoft.Quantum.Convert/BoolAsResult.md +1 -1
- package/docs/Microsoft.Quantum.Convert/ComplexAsComplexPolar.md +1 -1
- package/docs/Microsoft.Quantum.Convert/ComplexPolarAsComplex.md +1 -1
- package/docs/Microsoft.Quantum.Convert/IntAsBigInt.md +1 -1
- package/docs/Microsoft.Quantum.Convert/IntAsBoolArray.md +1 -1
- package/docs/Microsoft.Quantum.Convert/IntAsDouble.md +1 -1
- package/docs/Microsoft.Quantum.Convert/ResultArrayAsBoolArray.md +1 -1
- package/docs/Microsoft.Quantum.Convert/ResultArrayAsInt.md +1 -1
- package/docs/Microsoft.Quantum.Convert/ResultAsBool.md +1 -1
- package/docs/Microsoft.Quantum.Core/IsRangeEmpty.md +1 -1
- package/docs/Microsoft.Quantum.Core/Length.md +1 -1
- package/docs/Microsoft.Quantum.Core/RangeEnd.md +1 -1
- package/docs/Microsoft.Quantum.Core/RangeReverse.md +1 -1
- package/docs/Microsoft.Quantum.Core/RangeStart.md +1 -1
- package/docs/Microsoft.Quantum.Core/RangeStep.md +1 -1
- package/docs/Microsoft.Quantum.Core/Repeated.md +1 -1
- package/docs/Microsoft.Quantum.Diagnostics/CheckAllZero.md +1 -1
- package/docs/Microsoft.Quantum.Diagnostics/CheckOperationsAreEqual.md +1 -1
- package/docs/Microsoft.Quantum.Diagnostics/CheckZero.md +1 -1
- package/docs/Microsoft.Quantum.Diagnostics/DumpMachine.md +1 -1
- package/docs/Microsoft.Quantum.Diagnostics/DumpRegister.md +1 -1
- package/docs/Microsoft.Quantum.Diagnostics/Fact.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/CCNOT.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/CNOT.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/Exp.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/H.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/I.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/M.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/Measure.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/Message.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/R.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/R1.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/R1Frac.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/RFrac.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/Reset.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/ResetAll.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/Rx.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/Rxx.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/Ry.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/Ryy.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/Rz.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/Rzz.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/S.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/SWAP.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/T.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/X.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/Y.md +1 -1
- package/docs/Microsoft.Quantum.Intrinsic/Z.md +1 -1
- package/docs/Microsoft.Quantum.Logical/Xor.md +1 -1
- package/docs/Microsoft.Quantum.Math/AbsComplex.md +1 -1
- package/docs/Microsoft.Quantum.Math/AbsComplexPolar.md +1 -1
- package/docs/Microsoft.Quantum.Math/AbsD.md +1 -1
- package/docs/Microsoft.Quantum.Math/AbsI.md +1 -1
- package/docs/Microsoft.Quantum.Math/AbsL.md +1 -1
- package/docs/Microsoft.Quantum.Math/AbsSquaredComplex.md +1 -1
- package/docs/Microsoft.Quantum.Math/AbsSquaredComplexPolar.md +1 -1
- package/docs/Microsoft.Quantum.Math/ApproximateFactorial.md +1 -1
- package/docs/Microsoft.Quantum.Math/ArcCos.md +1 -1
- package/docs/Microsoft.Quantum.Math/ArcCosh.md +1 -1
- package/docs/Microsoft.Quantum.Math/ArcSin.md +1 -1
- package/docs/Microsoft.Quantum.Math/ArcSinh.md +1 -1
- package/docs/Microsoft.Quantum.Math/ArcTan.md +1 -1
- package/docs/Microsoft.Quantum.Math/ArcTan2.md +1 -1
- package/docs/Microsoft.Quantum.Math/ArcTanh.md +1 -1
- package/docs/Microsoft.Quantum.Math/ArgComplex.md +1 -1
- package/docs/Microsoft.Quantum.Math/ArgComplexPolar.md +1 -1
- package/docs/Microsoft.Quantum.Math/Binom.md +1 -1
- package/docs/Microsoft.Quantum.Math/BitSizeI.md +1 -1
- package/docs/Microsoft.Quantum.Math/BitSizeL.md +1 -1
- package/docs/Microsoft.Quantum.Math/Ceiling.md +1 -1
- package/docs/Microsoft.Quantum.Math/Complex.md +1 -1
- package/docs/Microsoft.Quantum.Math/ComplexPolar.md +1 -1
- package/docs/Microsoft.Quantum.Math/ContinuedFractionConvergentI.md +1 -1
- package/docs/Microsoft.Quantum.Math/ContinuedFractionConvergentL.md +1 -1
- package/docs/Microsoft.Quantum.Math/Cos.md +1 -1
- package/docs/Microsoft.Quantum.Math/Cosh.md +1 -1
- package/docs/Microsoft.Quantum.Math/DivRemI.md +1 -1
- package/docs/Microsoft.Quantum.Math/DivRemL.md +1 -1
- package/docs/Microsoft.Quantum.Math/DividedByC.md +1 -1
- package/docs/Microsoft.Quantum.Math/DividedByCP.md +1 -1
- package/docs/Microsoft.Quantum.Math/E.md +1 -1
- package/docs/Microsoft.Quantum.Math/ExpModI.md +1 -1
- package/docs/Microsoft.Quantum.Math/ExpModL.md +1 -1
- package/docs/Microsoft.Quantum.Math/ExtendedGreatestCommonDivisorI.md +1 -1
- package/docs/Microsoft.Quantum.Math/ExtendedGreatestCommonDivisorL.md +1 -1
- package/docs/Microsoft.Quantum.Math/FactorialI.md +1 -1
- package/docs/Microsoft.Quantum.Math/FactorialL.md +1 -1
- package/docs/Microsoft.Quantum.Math/Floor.md +1 -1
- package/docs/Microsoft.Quantum.Math/GreatestCommonDivisorI.md +1 -1
- package/docs/Microsoft.Quantum.Math/GreatestCommonDivisorL.md +1 -1
- package/docs/Microsoft.Quantum.Math/HammingWeightI.md +1 -1
- package/docs/Microsoft.Quantum.Math/InverseModI.md +1 -1
- package/docs/Microsoft.Quantum.Math/InverseModL.md +1 -1
- package/docs/Microsoft.Quantum.Math/IsCoprimeI.md +1 -1
- package/docs/Microsoft.Quantum.Math/IsCoprimeL.md +1 -1
- package/docs/Microsoft.Quantum.Math/IsInfinite.md +1 -1
- package/docs/Microsoft.Quantum.Math/IsNaN.md +1 -1
- package/docs/Microsoft.Quantum.Math/LargestFixedPoint.md +1 -1
- package/docs/Microsoft.Quantum.Math/Lg.md +1 -1
- package/docs/Microsoft.Quantum.Math/Log.md +1 -1
- package/docs/Microsoft.Quantum.Math/Log10.md +1 -1
- package/docs/Microsoft.Quantum.Math/LogFactorialD.md +1 -1
- package/docs/Microsoft.Quantum.Math/LogGammaD.md +1 -1
- package/docs/Microsoft.Quantum.Math/LogOf2.md +1 -1
- package/docs/Microsoft.Quantum.Math/Max.md +1 -1
- package/docs/Microsoft.Quantum.Math/MaxD.md +1 -1
- package/docs/Microsoft.Quantum.Math/MaxI.md +1 -1
- package/docs/Microsoft.Quantum.Math/MaxL.md +1 -1
- package/docs/Microsoft.Quantum.Math/Min.md +1 -1
- package/docs/Microsoft.Quantum.Math/MinD.md +1 -1
- package/docs/Microsoft.Quantum.Math/MinI.md +1 -1
- package/docs/Microsoft.Quantum.Math/MinL.md +1 -1
- package/docs/Microsoft.Quantum.Math/MinusC.md +1 -1
- package/docs/Microsoft.Quantum.Math/MinusCP.md +1 -1
- package/docs/Microsoft.Quantum.Math/ModulusI.md +1 -1
- package/docs/Microsoft.Quantum.Math/ModulusL.md +1 -1
- package/docs/Microsoft.Quantum.Math/NegationC.md +1 -1
- package/docs/Microsoft.Quantum.Math/NegationCP.md +1 -1
- package/docs/Microsoft.Quantum.Math/PI.md +1 -1
- package/docs/Microsoft.Quantum.Math/PNorm.md +1 -1
- package/docs/Microsoft.Quantum.Math/PNormalized.md +1 -1
- package/docs/Microsoft.Quantum.Math/PlusC.md +1 -1
- package/docs/Microsoft.Quantum.Math/PlusCP.md +1 -1
- package/docs/Microsoft.Quantum.Math/PowC.md +1 -1
- package/docs/Microsoft.Quantum.Math/PowCP.md +1 -1
- package/docs/Microsoft.Quantum.Math/RealMod.md +1 -1
- package/docs/Microsoft.Quantum.Math/Round.md +1 -1
- package/docs/Microsoft.Quantum.Math/SignD.md +1 -1
- package/docs/Microsoft.Quantum.Math/SignI.md +1 -1
- package/docs/Microsoft.Quantum.Math/SignL.md +1 -1
- package/docs/Microsoft.Quantum.Math/Sin.md +1 -1
- package/docs/Microsoft.Quantum.Math/Sinh.md +1 -1
- package/docs/Microsoft.Quantum.Math/SmallestFixedPoint.md +1 -1
- package/docs/Microsoft.Quantum.Math/Sqrt.md +1 -1
- package/docs/Microsoft.Quantum.Math/SquaredNorm.md +1 -1
- package/docs/Microsoft.Quantum.Math/Tan.md +1 -1
- package/docs/Microsoft.Quantum.Math/Tanh.md +1 -1
- package/docs/Microsoft.Quantum.Math/TimesC.md +1 -1
- package/docs/Microsoft.Quantum.Math/TimesCP.md +1 -1
- package/docs/Microsoft.Quantum.Math/TrailingZeroCountI.md +1 -1
- package/docs/Microsoft.Quantum.Math/TrailingZeroCountL.md +1 -1
- package/docs/Microsoft.Quantum.Math/Truncate.md +1 -1
- package/docs/Microsoft.Quantum.Measurement/MResetEachZ.md +1 -1
- package/docs/Microsoft.Quantum.Measurement/MResetX.md +1 -1
- package/docs/Microsoft.Quantum.Measurement/MResetY.md +1 -1
- package/docs/Microsoft.Quantum.Measurement/MResetZ.md +1 -1
- package/docs/Microsoft.Quantum.Measurement/MeasureAllZ.md +1 -1
- package/docs/Microsoft.Quantum.Measurement/MeasureEachZ.md +1 -1
- package/docs/Microsoft.Quantum.Measurement/MeasureInteger.md +1 -1
- package/docs/Microsoft.Quantum.Random/DrawRandomDouble.md +1 -1
- package/docs/Microsoft.Quantum.Random/DrawRandomInt.md +1 -1
- package/docs/Microsoft.Quantum.ResourceEstimation/AccountForEstimates.md +1 -1
- package/docs/Microsoft.Quantum.ResourceEstimation/AuxQubitCount.md +1 -1
- package/docs/Microsoft.Quantum.ResourceEstimation/BeginEstimateCaching.md +1 -1
- package/docs/Microsoft.Quantum.ResourceEstimation/BeginRepeatEstimates.md +1 -1
- package/docs/Microsoft.Quantum.ResourceEstimation/CczCount.md +1 -1
- package/docs/Microsoft.Quantum.ResourceEstimation/EndEstimateCaching.md +1 -1
- package/docs/Microsoft.Quantum.ResourceEstimation/EndRepeatEstimates.md +1 -1
- package/docs/Microsoft.Quantum.ResourceEstimation/MeasurementCount.md +1 -1
- package/docs/Microsoft.Quantum.ResourceEstimation/PSSPCLayout.md +1 -1
- package/docs/Microsoft.Quantum.ResourceEstimation/RepeatEstimates.md +1 -1
- package/docs/Microsoft.Quantum.ResourceEstimation/RotationCount.md +1 -1
- package/docs/Microsoft.Quantum.ResourceEstimation/RotationDepth.md +1 -1
- package/docs/Microsoft.Quantum.ResourceEstimation/SingleVariant.md +1 -1
- package/docs/Microsoft.Quantum.ResourceEstimation/TCount.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/AddLE.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfEqualL.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfEqualLE.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfGreaterL.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfGreaterLE.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfGreaterOrEqualL.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfGreaterOrEqualLE.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfLessL.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfLessLE.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfLessOrEqualL.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfLessOrEqualLE.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/FourierTDIncByLE.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/IncByI.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/IncByIUsingIncByLE.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/IncByL.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/IncByLE.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/IncByLEUsingAddLE.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/IncByLUsingIncByLE.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/LookAheadDKRSAddLE.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/MAJ.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/ReflectAboutInteger.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/RippleCarryCGAddLE.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/RippleCarryCGIncByLE.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/RippleCarryTTKIncByLE.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.StatePreparation/ApproximatelyPreparePureStateCP.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.StatePreparation/PreparePureStateD.md +1 -1
- package/docs/Microsoft.Quantum.Unstable.TableLookup/Select.md +1 -1
- package/lib/node/qsc_wasm_bg.wasm +0 -0
- package/lib/web/qsc_wasm_bg.wasm +0 -0
- package/package.json +2 -2
- package/ux/circuit.tsx +54 -34
- package/ux/data.ts +10 -0
- package/ux/index.ts +7 -2
|
@@ -2,7 +2,7 @@ import { type Circuit as CircuitData } from "@microsoft/quantum-viz.js/lib/circu
|
|
|
2
2
|
import { IOperationInfo, TargetProfile, type VSDiagnostic } from "../../lib/web/qsc_wasm.js";
|
|
3
3
|
import { IServiceProxy, ServiceProtocol, ServiceState } from "../workers/common.js";
|
|
4
4
|
import { IQscEventTarget, QscEventData } from "./events.js";
|
|
5
|
-
type Wasm = typeof import("../../lib/
|
|
5
|
+
type Wasm = typeof import("../../lib/web/qsc_wasm.js");
|
|
6
6
|
export interface ICompiler {
|
|
7
7
|
checkCode(code: string): Promise<VSDiagnostic[]>;
|
|
8
8
|
getHir(code: string, languageFeatures?: string[]): Promise<string>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { type Circuit as CircuitData } from "@microsoft/quantum-viz.js/lib/circuit.js";
|
|
2
|
-
import type { IBreakpointSpan, IQuantumState, IStackFrame, IStructStepResult, IVariable } from "../../lib/
|
|
2
|
+
import type { IBreakpointSpan, IQuantumState, IStackFrame, IStructStepResult, IVariable } from "../../lib/web/qsc_wasm.js";
|
|
3
3
|
import { TargetProfile } from "../browser.js";
|
|
4
4
|
import { IQscEventTarget, QscEventData } from "../compiler/events.js";
|
|
5
5
|
import { IServiceProxy, ServiceProtocol } from "../workers/common.js";
|
|
6
|
-
type QscWasm = typeof import("../../lib/
|
|
6
|
+
type QscWasm = typeof import("../../lib/web/qsc_wasm.js");
|
|
7
7
|
export interface IDebugService {
|
|
8
8
|
loadSource(sources: [string, string][], target: TargetProfile, entry: string | undefined, language_features: string[]): Promise<string>;
|
|
9
9
|
getBreakpoints(path: string): Promise<IBreakpointSpan[]>;
|
|
@@ -1194,6 +1194,36 @@ export default {
|
|
|
1194
1194
|
}
|
|
1195
1195
|
]
|
|
1196
1196
|
},
|
|
1197
|
+
{
|
|
1198
|
+
"type": "exercise",
|
|
1199
|
+
"id": "single_qubit_gates__state_flip",
|
|
1200
|
+
"title": "State Flip",
|
|
1201
|
+
"description": {
|
|
1202
|
+
"type": "text-content",
|
|
1203
|
+
"asHtml": "<p><strong>Input:</strong> A qubit in state $|\\psi\\rangle = \\alpha |0\\rangle + \\beta |1\\rangle$.</p>\n<p><strong>Goal:</strong> Change the state of the qubit to $\\alpha |1\\rangle + \\beta |0\\rangle$.</p>\n<p><strong>Example:</strong></p>\n<p>If the qubit is in state $|0\\rangle$, change its state to $|1\\rangle$.</p>\n<p>If the qubit is in state $|1\\rangle$, change its state to $|0\\rangle$.</p>\n<blockquote>\n<p>Note that this operation is self-adjoint: applying it for a second time\nreturns the qubit to the original state.</p>\n</blockquote>\n",
|
|
1204
|
+
"asMarkdown": "**Input:** A qubit in state $|\\psi\\rangle = \\alpha |0\\rangle + \\beta |1\\rangle$.\n\n**Goal:** Change the state of the qubit to $\\alpha |1\\rangle + \\beta |0\\rangle$.\n\n**Example:**\n\nIf the qubit is in state $|0\\rangle$, change its state to $|1\\rangle$.\n\nIf the qubit is in state $|1\\rangle$, change its state to $|0\\rangle$.\n\n> Note that this operation is self-adjoint: applying it for a second time\n> returns the qubit to the original state.\n"
|
|
1205
|
+
},
|
|
1206
|
+
"sourceIds": [
|
|
1207
|
+
"single_qubit_gates__state_flip__Verification.qs",
|
|
1208
|
+
"KatasLibrary.qs"
|
|
1209
|
+
],
|
|
1210
|
+
"placeholderCode": "namespace Kata {\n operation StateFlip (q : Qubit) : Unit is Adj + Ctl {\n // Implement your solution here...\n \n }\n}\n\n",
|
|
1211
|
+
"explainedSolution": {
|
|
1212
|
+
"type": "explained-solution",
|
|
1213
|
+
"items": [
|
|
1214
|
+
{
|
|
1215
|
+
"type": "text-content",
|
|
1216
|
+
"asHtml": "<p>We can recognize that the Pauli $X$ gate will change the state $|0\\rangle$ to $|1\\rangle$ and vice versa, and $\\alpha|0\\rangle + \\beta|1\\rangle$ to $\\alpha|1\\rangle + \\beta|0\\rangle$.</p>\n<p>As a reminder, the Pauli $X$ gate is defined by the following matrix:</p>\n<p>$$\nX =\n\\begin{bmatrix} 0 & 1 \\\\ 1 & 0 \\end{bmatrix}\n$$</p>\n<p>We can see how it affects, for example, the basis state $|0\\rangle$:</p>\n<p>$$\nX|0\\rangle =\n\\begin{bmatrix} 0 & 1 \\\\ 1 & 0 \\end{bmatrix}\n\\begin{bmatrix} 1 \\\\ 0 \\end{bmatrix} =\n\\begin{bmatrix} 0 \\cdot 1 + 1 \\cdot 0 \\\\ 1 \\cdot 1 + 0 \\cdot 0 \\end{bmatrix}=\n\\begin{bmatrix} 0 \\\\1 \\end{bmatrix}=\n|1\\rangle\n$$</p>\n<p>Similarly, we can consider the effect of the $X$ gate on the superposition state $|\\psi\\rangle = 0.6|0\\rangle + 0.8|1\\rangle$:</p>\n<p>$$\nX|\\psi\\rangle =\n\\begin{bmatrix} 0 & 1 \\\\1 & 0\\end{bmatrix}\n\\begin{bmatrix}0.6 \\\\0.8 \\end{bmatrix}=\n\\begin{bmatrix} 0 \\cdot 0.6 + 1 \\cdot 0.8 \\\\1 \\cdot 0.6 + 0 \\cdot 0.8\\end{bmatrix}=\n\\begin{bmatrix}0.8 \\\\0.6\\end{bmatrix}=\n0.8|0\\rangle + 0.6|1\\rangle\n$$</p>\n",
|
|
1217
|
+
"asMarkdown": "\nWe can recognize that the Pauli $X$ gate will change the state $|0\\rangle$ to $|1\\rangle$ and vice versa, and $\\alpha|0\\rangle + \\beta|1\\rangle$ to $\\alpha|1\\rangle + \\beta|0\\rangle$.\n\nAs a reminder, the Pauli $X$ gate is defined by the following matrix:\n\n$$\nX =\n\\begin{bmatrix} 0 & 1 \\\\\\ 1 & 0 \\end{bmatrix}\n$$\n\nWe can see how it affects, for example, the basis state $|0\\rangle$:\n\n$$\nX|0\\rangle =\n\\begin{bmatrix} 0 & 1 \\\\\\ 1 & 0 \\end{bmatrix}\n\\begin{bmatrix} 1 \\\\\\ 0 \\end{bmatrix} =\n\\begin{bmatrix} 0 \\cdot 1 + 1 \\cdot 0 \\\\\\ 1 \\cdot 1 + 0 \\cdot 0 \\end{bmatrix}=\n\\begin{bmatrix} 0 \\\\\\1 \\end{bmatrix}=\n|1\\rangle\n$$\n\nSimilarly, we can consider the effect of the $X$ gate on the superposition state $|\\psi\\rangle = 0.6|0\\rangle + 0.8|1\\rangle$:\n\n$$\nX|\\psi\\rangle =\n\\begin{bmatrix} 0 & 1 \\\\\\1 & 0\\end{bmatrix}\n\\begin{bmatrix}0.6 \\\\\\0.8 \\end{bmatrix}=\n\\begin{bmatrix} 0 \\cdot 0.6 + 1 \\cdot 0.8 \\\\\\1 \\cdot 0.6 + 0 \\cdot 0.8\\end{bmatrix}=\n\\begin{bmatrix}0.8 \\\\\\0.6\\end{bmatrix}=\n0.8|0\\rangle + 0.6|1\\rangle\n$$"
|
|
1218
|
+
},
|
|
1219
|
+
{
|
|
1220
|
+
"type": "solution",
|
|
1221
|
+
"id": "single_qubit_gates__state_flip_solution",
|
|
1222
|
+
"code": "namespace Kata {\n operation StateFlip (q : Qubit) : Unit is Adj + Ctl {\n X(q);\n }\n}"
|
|
1223
|
+
}
|
|
1224
|
+
]
|
|
1225
|
+
}
|
|
1226
|
+
},
|
|
1197
1227
|
{
|
|
1198
1228
|
"type": "exercise",
|
|
1199
1229
|
"id": "single_qubit_gates__y_gate",
|
|
@@ -3797,6 +3827,10 @@ export default {
|
|
|
3797
3827
|
"id": "qubit__learn_single_qubit_state__Verification.qs",
|
|
3798
3828
|
"code": "namespace Kata.Verification {\n open Microsoft.Quantum.Intrinsic;\n open Microsoft.Quantum.Math;\n\n @EntryPoint()\n operation CheckSolution() : Bool {\n use q = Qubit();\n\n // Prepare the state that will be passed to the solution.\n let angle = 0.5;\n Ry(angle, q);\n\n // Call the solution and get the answer.\n let (a, b) = Kata.LearnSingleQubitState(q);\n\n // Calculate the expected values based on the rotation angle.\n let (a_exp, b_exp) = (Cos(0.5 * angle), Sin(0.5 * angle));\n\n Reset(q);\n\n let isCorrect =\n (AbsD(a - a_exp) <= 0.001) and\n (AbsD(b - b_exp) <= 0.001);\n\n // Output different feedback to the user depending on whether the exercise was correct.\n if isCorrect {\n Message(\"Correct!\");\n } else {\n Message(\"At least one of the amplitudes was too far from the expected value.\");\n }\n\n isCorrect\n }\n}\n"
|
|
3799
3829
|
},
|
|
3830
|
+
{
|
|
3831
|
+
"id": "single_qubit_gates__state_flip__Verification.qs",
|
|
3832
|
+
"code": "namespace Kata.Verification {\n open Microsoft.Quantum.Katas;\n open Microsoft.Quantum.Math;\n\n operation StateFlip(q : Qubit) : Unit is Adj + Ctl {\n X(q);\n }\n\n operation CheckSolution() : Bool {\n let solution = register => Kata.StateFlip(register[0]);\n let reference = register => StateFlip(register[0]);\n let isCorrect = CheckOperationsEquivalenceStrict(solution, reference, 1);\n\n // Output different feedback to the user depending on whether the solution was correct.\n if isCorrect {\n Message(\"Correct!\");\n } else {\n Message(\"Incorrect.\");\n Message(\"Hint: examine the effect your solution has on the state 0.6|0〉 + 0.8|1〉 and compare it with the effect it \" +\n \"is expected to have.\");\n use initial = Qubit(); // |0〉\n Ry(ArcTan2(0.8, 0.6) * 2.0, initial);\n ShowQuantumStateComparison([initial], solution, reference);\n Reset(initial);\n }\n isCorrect\n }\n}"
|
|
3833
|
+
},
|
|
3800
3834
|
{
|
|
3801
3835
|
"id": "single_qubit_gates__y_gate__Verification.qs",
|
|
3802
3836
|
"code": "namespace Kata.Verification {\n open Microsoft.Quantum.Katas;\n open Microsoft.Quantum.Math;\n\n operation ApplyY(q : Qubit) : Unit is Adj + Ctl {\n Y(q);\n }\n\n operation CheckSolution() : Bool {\n let solution = register => Kata.ApplyY(register[0]);\n let reference = register => ApplyY(register[0]);\n let isCorrect = CheckOperationsEquivalenceStrict(solution, reference, 1);\n\n // Output different feedback to the user depending on whether the solution was correct.\n if isCorrect {\n Message(\"Correct!\");\n } else {\n Message(\"Incorrect.\");\n Message(\"Hint: examine the effect your solution has on the state 0.6|0〉 + 0.8|1〉 and compare it with the effect it \" +\n \"is expected to have.\");\n use initial = Qubit(); // |0〉\n Ry(ArcTan2(0.8, 0.6) * 2.0, initial); // 0.6|0〉 + 0.8|1〉\n ShowQuantumStateComparison([initial], solution, reference);\n Reset(initial);\n }\n isCorrect\n }\n}\n"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { ICodeLens, ICompletionList, IHover, ILocation, INotebookMetadata, IPosition, ISignatureHelp, ITextEdit, IWorkspaceConfiguration, IWorkspaceEdit, VSDiagnostic } from "../../lib/
|
|
1
|
+
import type { ICodeLens, ICompletionList, IHover, ILocation, INotebookMetadata, IPosition, ISignatureHelp, ITextEdit, IWorkspaceConfiguration, IWorkspaceEdit, VSDiagnostic } from "../../lib/web/qsc_wasm.js";
|
|
2
2
|
import { IServiceProxy, ServiceProtocol } from "../workers/common.js";
|
|
3
|
-
type QscWasm = typeof import("../../lib/
|
|
3
|
+
type QscWasm = typeof import("../../lib/web/qsc_wasm.js");
|
|
4
4
|
export type LanguageServiceEvent = {
|
|
5
5
|
type: "diagnostics";
|
|
6
6
|
detail: {
|
package/dist/main.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ProjectLoader } from "../lib/node/qsc_wasm.cjs";
|
|
2
1
|
import { ICompiler, ICompilerWorker } from "./compiler/compiler.js";
|
|
3
2
|
import { IDebugService, IDebugServiceWorker } from "./debug-service/debug-service.js";
|
|
4
3
|
import { ILanguageService, ILanguageServiceWorker, qsharpLibraryUriScheme } from "./language-service/language-service.js";
|
|
4
|
+
import type { ProjectLoader } from "../lib/web/qsc_wasm.js";
|
|
5
5
|
export { qsharpLibraryUriScheme };
|
|
6
6
|
export declare function getLibrarySourceContent(path: string): Promise<string | undefined>;
|
|
7
7
|
export declare function getCompiler(): ICompiler;
|
package/dist/main.js
CHANGED
|
@@ -10,45 +10,39 @@ import { log } from "./log.js";
|
|
|
10
10
|
import { createProxy } from "./workers/node.js";
|
|
11
11
|
export { qsharpLibraryUriScheme };
|
|
12
12
|
let wasm = null;
|
|
13
|
-
|
|
14
|
-
export async function getLibrarySourceContent(path) {
|
|
15
|
-
if (!wasm) {
|
|
16
|
-
wasm = require("../lib/node/qsc_wasm.cjs");
|
|
17
|
-
return wasm.get_library_source_content(path);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
export function getCompiler() {
|
|
13
|
+
function ensureWasm() {
|
|
21
14
|
if (!wasm) {
|
|
22
15
|
wasm = require("../lib/node/qsc_wasm.cjs");
|
|
23
16
|
// Set up logging and telemetry as soon as possible after instantiating
|
|
24
17
|
wasm.initLogging(log.logWithLevel, log.getLogLevel());
|
|
25
18
|
log.onLevelChanged = (level) => wasm?.setLogLevel(level);
|
|
26
19
|
}
|
|
20
|
+
}
|
|
21
|
+
const require = createRequire(import.meta.url);
|
|
22
|
+
export async function getLibrarySourceContent(path) {
|
|
23
|
+
ensureWasm();
|
|
24
|
+
return wasm.get_library_source_content(path);
|
|
25
|
+
}
|
|
26
|
+
export function getCompiler() {
|
|
27
|
+
ensureWasm();
|
|
27
28
|
return new Compiler(wasm);
|
|
28
29
|
}
|
|
29
30
|
export function getProjectLoader(readFile, loadDirectory, getManifest) {
|
|
30
|
-
|
|
31
|
-
wasm = require("../lib/node/qsc_wasm.cjs");
|
|
32
|
-
// Set up logging and telemetry as soon as possible after instantiating
|
|
33
|
-
wasm.initLogging(log.logWithLevel, log.getLogLevel());
|
|
34
|
-
log.onLevelChanged = (level) => wasm?.setLogLevel(level);
|
|
35
|
-
}
|
|
31
|
+
ensureWasm();
|
|
36
32
|
return new wasm.ProjectLoader(readFile, loadDirectory, getManifest);
|
|
37
33
|
}
|
|
38
34
|
export function getCompilerWorker() {
|
|
39
35
|
return createProxy("../compiler/worker-node.js", compilerProtocol);
|
|
40
36
|
}
|
|
41
37
|
export function getDebugService() {
|
|
42
|
-
|
|
43
|
-
wasm = require("../lib/node/qsc_wasm.cjs");
|
|
38
|
+
ensureWasm();
|
|
44
39
|
return new QSharpDebugService(wasm);
|
|
45
40
|
}
|
|
46
41
|
export function getDebugServiceWorker() {
|
|
47
42
|
return createProxy("../debug-service/worker-node.js", debugServiceProtocol);
|
|
48
43
|
}
|
|
49
44
|
export function getLanguageService(readFile, listDir, getManifest) {
|
|
50
|
-
|
|
51
|
-
wasm = require("../lib/node/qsc_wasm.cjs");
|
|
45
|
+
ensureWasm();
|
|
52
46
|
return new QSharpLanguageService(wasm, readFile, listDir, getManifest);
|
|
53
47
|
}
|
|
54
48
|
export function getLanguageServiceWorker() {
|
package/dist/workers/common.d.ts
CHANGED
package/dist/workers/node.js
CHANGED
|
@@ -17,7 +17,8 @@ export function createWorker(protocol) {
|
|
|
17
17
|
throw "Worker script should be loaded in a Worker thread only";
|
|
18
18
|
const port = parentPort; // eslint-disable-line @typescript-eslint/no-non-null-assertion
|
|
19
19
|
const postMessage = port.postMessage.bind(port);
|
|
20
|
-
const invokeService = initService(postMessage, protocol, wasm,
|
|
20
|
+
const invokeService = initService(postMessage, protocol, wasm, // Need to cast due to difference in web and node wasm types
|
|
21
|
+
workerData && typeof workerData.qscLogLevel === "number"
|
|
21
22
|
? workerData.qscLogLevel
|
|
22
23
|
: undefined);
|
|
23
24
|
function messageHandler(data) {
|