qsharp-lang 1.22.5-dev → 1.23.1-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/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/RangeStart.md +1 -1
- package/docs/Microsoft.Quantum.Core/Repeated.md +1 -1
- package/docs/Microsoft.Quantum.Core/index.md +1 -1
- package/docs/Std.Arithmetic/AddLE.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfEqualL.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfEqualLE.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfGreaterL.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfGreaterLE.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfGreaterOrEqualL.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfGreaterOrEqualLE.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfLessL.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfLessLE.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfLessOrEqualL.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfLessOrEqualLE.md +1 -1
- package/docs/Std.Arithmetic/FourierTDIncByLE.md +1 -1
- package/docs/Std.Arithmetic/IncByI.md +1 -1
- package/docs/Std.Arithmetic/IncByIUsingIncByLE.md +1 -1
- package/docs/Std.Arithmetic/IncByL.md +1 -1
- package/docs/Std.Arithmetic/IncByLE.md +1 -1
- package/docs/Std.Arithmetic/IncByLEUsingAddLE.md +1 -1
- package/docs/Std.Arithmetic/IncByLUsingIncByLE.md +1 -1
- package/docs/Std.Arithmetic/LookAheadDKRSAddLE.md +1 -1
- package/docs/Std.Arithmetic/MAJ.md +1 -1
- package/docs/Std.Arithmetic/ReflectAboutInteger.md +1 -1
- package/docs/Std.Arithmetic/RippleCarryCGAddLE.md +1 -1
- package/docs/Std.Arithmetic/RippleCarryCGIncByLE.md +1 -1
- package/docs/Std.Arithmetic/RippleCarryTTKIncByLE.md +1 -1
- package/docs/Std.Arithmetic/index.md +1 -1
- package/docs/Std.Arrays/All.md +1 -1
- package/docs/Std.Arrays/Any.md +1 -1
- package/docs/Std.Arrays/Chunks.md +1 -1
- package/docs/Std.Arrays/CircularlyShifted.md +1 -1
- package/docs/Std.Arrays/ColumnAt.md +1 -1
- package/docs/Std.Arrays/Count.md +1 -1
- package/docs/Std.Arrays/Diagonal.md +1 -1
- package/docs/Std.Arrays/DrawMany.md +1 -1
- package/docs/Std.Arrays/Enumerated.md +1 -1
- package/docs/Std.Arrays/Excluding.md +1 -1
- package/docs/Std.Arrays/Filtered.md +1 -1
- package/docs/Std.Arrays/FlatMapped.md +1 -1
- package/docs/Std.Arrays/Flattened.md +1 -1
- package/docs/Std.Arrays/Fold.md +1 -1
- package/docs/Std.Arrays/ForEach.md +1 -1
- package/docs/Std.Arrays/Head.md +1 -1
- package/docs/Std.Arrays/HeadAndRest.md +1 -1
- package/docs/Std.Arrays/IndexOf.md +1 -1
- package/docs/Std.Arrays/IndexRange.md +1 -1
- package/docs/Std.Arrays/Interleaved.md +1 -1
- package/docs/Std.Arrays/IsEmpty.md +1 -1
- package/docs/Std.Arrays/IsRectangularArray.md +1 -1
- package/docs/Std.Arrays/IsSorted.md +1 -1
- package/docs/Std.Arrays/IsSquareArray.md +1 -1
- package/docs/Std.Arrays/Mapped.md +1 -1
- package/docs/Std.Arrays/MappedByIndex.md +1 -1
- package/docs/Std.Arrays/MappedOverRange.md +1 -1
- package/docs/Std.Arrays/Most.md +1 -1
- package/docs/Std.Arrays/MostAndTail.md +1 -1
- package/docs/Std.Arrays/Padded.md +1 -1
- package/docs/Std.Arrays/Partitioned.md +1 -1
- package/docs/Std.Arrays/Rest.md +1 -1
- package/docs/Std.Arrays/Reversed.md +1 -1
- package/docs/Std.Arrays/SequenceI.md +1 -1
- package/docs/Std.Arrays/SequenceL.md +1 -1
- package/docs/Std.Arrays/Sorted.md +1 -1
- package/docs/Std.Arrays/Subarray.md +1 -1
- package/docs/Std.Arrays/Swapped.md +1 -1
- package/docs/Std.Arrays/Tail.md +1 -1
- package/docs/Std.Arrays/Transposed.md +1 -1
- package/docs/Std.Arrays/Unzipped.md +1 -1
- package/docs/Std.Arrays/Where.md +1 -1
- package/docs/Std.Arrays/Windows.md +1 -1
- package/docs/Std.Arrays/Zipped.md +1 -1
- package/docs/Std.Arrays/index.md +1 -1
- package/docs/Std.Canon/ApplyCNOTChain.md +1 -1
- package/docs/Std.Canon/ApplyControlledOnBitString.md +1 -1
- package/docs/Std.Canon/ApplyControlledOnInt.md +1 -1
- package/docs/Std.Canon/ApplyOperationPowerA.md +1 -1
- package/docs/Std.Canon/ApplyOperationPowerCA.md +1 -1
- package/docs/Std.Canon/ApplyP.md +1 -1
- package/docs/Std.Canon/ApplyPauli.md +1 -1
- package/docs/Std.Canon/ApplyPauliFromBitString.md +1 -1
- package/docs/Std.Canon/ApplyPauliFromInt.md +1 -1
- package/docs/Std.Canon/ApplyQFT.md +1 -1
- package/docs/Std.Canon/ApplyQPE.md +1 -1
- package/docs/Std.Canon/ApplyToEach.md +1 -1
- package/docs/Std.Canon/ApplyToEachA.md +1 -1
- package/docs/Std.Canon/ApplyToEachC.md +1 -1
- package/docs/Std.Canon/ApplyToEachCA.md +1 -1
- package/docs/Std.Canon/ApplyXorInPlace.md +1 -1
- package/docs/Std.Canon/ApplyXorInPlaceL.md +1 -1
- package/docs/Std.Canon/CX.md +1 -1
- package/docs/Std.Canon/CY.md +1 -1
- package/docs/Std.Canon/CZ.md +1 -1
- package/docs/Std.Canon/Fst.md +1 -1
- package/docs/Std.Canon/MapPauliAxis.md +1 -1
- package/docs/Std.Canon/Relabel.md +1 -1
- package/docs/Std.Canon/Snd.md +1 -1
- package/docs/Std.Canon/SwapReverseRegister.md +1 -1
- package/docs/Std.Canon/index.md +1 -1
- package/docs/Std.Convert/BigIntAsBoolArray.md +1 -1
- package/docs/Std.Convert/BigIntAsInt.md +1 -1
- package/docs/Std.Convert/BoolArrayAsBigInt.md +1 -1
- package/docs/Std.Convert/BoolArrayAsInt.md +1 -1
- package/docs/Std.Convert/BoolArrayAsResultArray.md +1 -1
- package/docs/Std.Convert/BoolAsResult.md +1 -1
- package/docs/Std.Convert/ComplexAsComplexPolar.md +1 -1
- package/docs/Std.Convert/ComplexPolarAsComplex.md +1 -1
- package/docs/Std.Convert/DoubleAsStringWithPrecision.md +1 -1
- package/docs/Std.Convert/IntAsBigInt.md +1 -1
- package/docs/Std.Convert/IntAsBoolArray.md +1 -1
- package/docs/Std.Convert/IntAsDouble.md +1 -1
- package/docs/Std.Convert/ResultArrayAsBoolArray.md +1 -1
- package/docs/Std.Convert/ResultArrayAsInt.md +1 -1
- package/docs/Std.Convert/ResultAsBool.md +1 -1
- package/docs/Std.Convert/index.md +1 -1
- package/docs/Std.Core/Complex.md +1 -1
- package/docs/Std.Core/Length.md +1 -1
- package/docs/Std.Core/Repeated.md +1 -1
- package/docs/Std.Core/index.md +1 -1
- package/docs/Std.Diagnostics/ApplyIdleNoise.md +1 -1
- package/docs/Std.Diagnostics/BitFlipNoise.md +1 -1
- package/docs/Std.Diagnostics/CheckAllZero.md +1 -1
- package/docs/Std.Diagnostics/CheckOperationsAreEqual.md +1 -1
- package/docs/Std.Diagnostics/CheckZero.md +1 -1
- package/docs/Std.Diagnostics/ConfigurePauliNoise.md +1 -1
- package/docs/Std.Diagnostics/ConfigureQubitLoss.md +1 -1
- package/docs/Std.Diagnostics/DepolarizingNoise.md +1 -1
- package/docs/Std.Diagnostics/DumpMachine.md +1 -1
- package/docs/Std.Diagnostics/DumpOperation.md +1 -1
- package/docs/Std.Diagnostics/DumpRegister.md +1 -1
- package/docs/Std.Diagnostics/Fact.md +1 -1
- package/docs/Std.Diagnostics/NoNoise.md +1 -1
- package/docs/Std.Diagnostics/PhaseFlipNoise.md +1 -1
- package/docs/Std.Diagnostics/StartCountingFunction.md +1 -1
- package/docs/Std.Diagnostics/StartCountingOperation.md +1 -1
- package/docs/Std.Diagnostics/StartCountingQubits.md +1 -1
- package/docs/Std.Diagnostics/StopCountingFunction.md +1 -1
- package/docs/Std.Diagnostics/StopCountingOperation.md +1 -1
- package/docs/Std.Diagnostics/StopCountingQubits.md +1 -1
- package/docs/Std.Diagnostics/index.md +1 -1
- package/docs/Std.Intrinsic/AND.md +1 -1
- package/docs/Std.Intrinsic/ApplyUnitary.md +1 -1
- package/docs/Std.Intrinsic/CCNOT.md +1 -1
- package/docs/Std.Intrinsic/CNOT.md +1 -1
- package/docs/Std.Intrinsic/Exp.md +1 -1
- package/docs/Std.Intrinsic/H.md +1 -1
- package/docs/Std.Intrinsic/I.md +1 -1
- package/docs/Std.Intrinsic/M.md +1 -1
- package/docs/Std.Intrinsic/Measure.md +1 -1
- package/docs/Std.Intrinsic/Message.md +1 -1
- package/docs/Std.Intrinsic/R.md +1 -1
- package/docs/Std.Intrinsic/R1.md +1 -1
- package/docs/Std.Intrinsic/R1Frac.md +1 -1
- package/docs/Std.Intrinsic/RFrac.md +1 -1
- package/docs/Std.Intrinsic/Reset.md +1 -1
- package/docs/Std.Intrinsic/ResetAll.md +1 -1
- package/docs/Std.Intrinsic/Rx.md +1 -1
- package/docs/Std.Intrinsic/Rxx.md +1 -1
- package/docs/Std.Intrinsic/Ry.md +1 -1
- package/docs/Std.Intrinsic/Ryy.md +1 -1
- package/docs/Std.Intrinsic/Rz.md +1 -1
- package/docs/Std.Intrinsic/Rzz.md +1 -1
- package/docs/Std.Intrinsic/S.md +1 -1
- package/docs/Std.Intrinsic/SWAP.md +1 -1
- package/docs/Std.Intrinsic/SX.md +1 -1
- package/docs/Std.Intrinsic/T.md +1 -1
- package/docs/Std.Intrinsic/X.md +1 -1
- package/docs/Std.Intrinsic/Y.md +1 -1
- package/docs/Std.Intrinsic/Z.md +1 -1
- package/docs/Std.Intrinsic/index.md +1 -1
- package/docs/Std.Logical/Xor.md +1 -1
- package/docs/Std.Logical/index.md +1 -1
- package/docs/Std.Math/AbsComplex.md +1 -1
- package/docs/Std.Math/AbsComplexPolar.md +1 -1
- package/docs/Std.Math/AbsD.md +1 -1
- package/docs/Std.Math/AbsI.md +1 -1
- package/docs/Std.Math/AbsL.md +1 -1
- package/docs/Std.Math/AbsSquaredComplex.md +1 -1
- package/docs/Std.Math/AbsSquaredComplexPolar.md +1 -1
- package/docs/Std.Math/ApproximateFactorial.md +1 -1
- package/docs/Std.Math/ArcCos.md +1 -1
- package/docs/Std.Math/ArcCosh.md +1 -1
- package/docs/Std.Math/ArcSin.md +1 -1
- package/docs/Std.Math/ArcSinh.md +1 -1
- package/docs/Std.Math/ArcTan.md +1 -1
- package/docs/Std.Math/ArcTan2.md +1 -1
- package/docs/Std.Math/ArcTanh.md +1 -1
- package/docs/Std.Math/ArgComplex.md +1 -1
- package/docs/Std.Math/ArgComplexPolar.md +1 -1
- package/docs/Std.Math/Binom.md +1 -1
- package/docs/Std.Math/BitSizeI.md +1 -1
- package/docs/Std.Math/BitSizeL.md +1 -1
- package/docs/Std.Math/Ceiling.md +1 -1
- package/docs/Std.Math/Complex.md +1 -1
- package/docs/Std.Math/ComplexPolar.md +1 -1
- package/docs/Std.Math/ContinuedFractionConvergentI.md +1 -1
- package/docs/Std.Math/ContinuedFractionConvergentL.md +1 -1
- package/docs/Std.Math/Cos.md +1 -1
- package/docs/Std.Math/Cosh.md +1 -1
- package/docs/Std.Math/DivRemI.md +1 -1
- package/docs/Std.Math/DivRemL.md +1 -1
- package/docs/Std.Math/DividedByC.md +1 -1
- package/docs/Std.Math/DividedByCP.md +1 -1
- package/docs/Std.Math/E.md +1 -1
- package/docs/Std.Math/ExpModI.md +1 -1
- package/docs/Std.Math/ExpModL.md +1 -1
- package/docs/Std.Math/ExtendedGreatestCommonDivisorI.md +1 -1
- package/docs/Std.Math/ExtendedGreatestCommonDivisorL.md +1 -1
- package/docs/Std.Math/FactorialI.md +1 -1
- package/docs/Std.Math/FactorialL.md +1 -1
- package/docs/Std.Math/Floor.md +1 -1
- package/docs/Std.Math/GreatestCommonDivisorI.md +1 -1
- package/docs/Std.Math/GreatestCommonDivisorL.md +1 -1
- package/docs/Std.Math/HammingWeightI.md +1 -1
- package/docs/Std.Math/InverseModI.md +1 -1
- package/docs/Std.Math/InverseModL.md +1 -1
- package/docs/Std.Math/IsCoprimeI.md +1 -1
- package/docs/Std.Math/IsCoprimeL.md +1 -1
- package/docs/Std.Math/IsInfinite.md +1 -1
- package/docs/Std.Math/IsNaN.md +1 -1
- package/docs/Std.Math/LargestFixedPoint.md +1 -1
- package/docs/Std.Math/Lg.md +1 -1
- package/docs/Std.Math/Log.md +1 -1
- package/docs/Std.Math/Log10.md +1 -1
- package/docs/Std.Math/LogFactorialD.md +1 -1
- package/docs/Std.Math/LogGammaD.md +1 -1
- package/docs/Std.Math/LogOf2.md +1 -1
- package/docs/Std.Math/Max.md +1 -1
- package/docs/Std.Math/MaxD.md +1 -1
- package/docs/Std.Math/MaxI.md +1 -1
- package/docs/Std.Math/MaxL.md +1 -1
- package/docs/Std.Math/Min.md +1 -1
- package/docs/Std.Math/MinD.md +1 -1
- package/docs/Std.Math/MinI.md +1 -1
- package/docs/Std.Math/MinL.md +1 -1
- package/docs/Std.Math/MinusC.md +1 -1
- package/docs/Std.Math/MinusCP.md +1 -1
- package/docs/Std.Math/ModulusI.md +1 -1
- package/docs/Std.Math/ModulusL.md +1 -1
- package/docs/Std.Math/NegationC.md +1 -1
- package/docs/Std.Math/NegationCP.md +1 -1
- package/docs/Std.Math/PI.md +1 -1
- package/docs/Std.Math/PNorm.md +1 -1
- package/docs/Std.Math/PNormalized.md +1 -1
- package/docs/Std.Math/PlusC.md +1 -1
- package/docs/Std.Math/PlusCP.md +1 -1
- package/docs/Std.Math/PowC.md +1 -1
- package/docs/Std.Math/PowCP.md +1 -1
- package/docs/Std.Math/RealMod.md +1 -1
- package/docs/Std.Math/Round.md +1 -1
- package/docs/Std.Math/RoundHalfAwayFromZero.md +1 -1
- package/docs/Std.Math/SignD.md +1 -1
- package/docs/Std.Math/SignI.md +1 -1
- package/docs/Std.Math/SignL.md +1 -1
- package/docs/Std.Math/Sin.md +1 -1
- package/docs/Std.Math/Sinh.md +1 -1
- package/docs/Std.Math/SmallestFixedPoint.md +1 -1
- package/docs/Std.Math/Sqrt.md +1 -1
- package/docs/Std.Math/SquaredNorm.md +1 -1
- package/docs/Std.Math/Tan.md +1 -1
- package/docs/Std.Math/Tanh.md +1 -1
- package/docs/Std.Math/TimesC.md +1 -1
- package/docs/Std.Math/TimesCP.md +1 -1
- package/docs/Std.Math/TrailingZeroCountI.md +1 -1
- package/docs/Std.Math/TrailingZeroCountL.md +1 -1
- package/docs/Std.Math/Truncate.md +1 -1
- package/docs/Std.Math/index.md +1 -1
- package/docs/Std.Measurement/IsLossResult.md +1 -1
- package/docs/Std.Measurement/MResetEachZ.md +1 -1
- package/docs/Std.Measurement/MResetX.md +1 -1
- package/docs/Std.Measurement/MResetY.md +1 -1
- package/docs/Std.Measurement/MResetZ.md +1 -1
- package/docs/Std.Measurement/MResetZChecked.md +1 -1
- package/docs/Std.Measurement/MeasureAllZ.md +1 -1
- package/docs/Std.Measurement/MeasureEachZ.md +1 -1
- package/docs/Std.Measurement/MeasureInteger.md +1 -1
- package/docs/Std.Measurement/index.md +1 -1
- package/docs/Std.Random/DrawRandomBool.md +1 -1
- package/docs/Std.Random/DrawRandomDouble.md +1 -1
- package/docs/Std.Random/DrawRandomInt.md +1 -1
- package/docs/Std.Random/index.md +1 -1
- package/docs/Std.Range/IsRangeEmpty.md +1 -1
- package/docs/Std.Range/RangeEnd.md +1 -1
- package/docs/Std.Range/RangeReverse.md +1 -1
- package/docs/Std.Range/RangeStart.md +1 -1
- package/docs/Std.Range/RangeStep.md +1 -1
- package/docs/Std.Range/index.md +1 -1
- package/docs/Std.ResourceEstimation/AccountForEstimates.md +1 -1
- package/docs/Std.ResourceEstimation/AuxQubitCount.md +1 -1
- package/docs/Std.ResourceEstimation/BeginEstimateCaching.md +1 -1
- package/docs/Std.ResourceEstimation/BeginRepeatEstimates.md +1 -1
- package/docs/Std.ResourceEstimation/CczCount.md +1 -1
- package/docs/Std.ResourceEstimation/EnableMemoryComputeArchitecture.md +1 -1
- package/docs/Std.ResourceEstimation/EndEstimateCaching.md +1 -1
- package/docs/Std.ResourceEstimation/EndRepeatEstimates.md +1 -1
- package/docs/Std.ResourceEstimation/LeastFrequentlyUsed.md +1 -1
- package/docs/Std.ResourceEstimation/LeastRecentlyUsed.md +1 -1
- package/docs/Std.ResourceEstimation/MeasurementCount.md +1 -1
- package/docs/Std.ResourceEstimation/PSSPCLayout.md +1 -1
- package/docs/Std.ResourceEstimation/RepeatEstimates.md +1 -1
- package/docs/Std.ResourceEstimation/RotationCount.md +1 -1
- package/docs/Std.ResourceEstimation/RotationDepth.md +1 -1
- package/docs/Std.ResourceEstimation/SingleVariant.md +1 -1
- package/docs/Std.ResourceEstimation/TCount.md +1 -1
- package/docs/Std.ResourceEstimation/index.md +1 -1
- package/docs/Std.StatePreparation/ApproximatelyPreparePureStateCP.md +1 -1
- package/docs/Std.StatePreparation/PreparePureStateD.md +1 -1
- package/docs/Std.StatePreparation/PrepareUniformSuperposition.md +1 -1
- package/docs/Std.StatePreparation/index.md +1 -1
- package/docs/Std.TableLookup/Select.md +1 -1
- package/docs/Std.TableLookup/index.md +1 -1
- package/docs/index.md +1 -1
- package/lib/nodejs/qsc_wasm_bg.wasm +0 -0
- package/lib/web/qsc_wasm_bg.wasm +0 -0
- package/package.json +1 -1
- package/ux/circuit-vis/formatters/registerFormatter.ts +61 -33
- package/ux/circuit-vis/process.ts +14 -8
- package/ux/circuit-vis/sqore.ts +4 -5
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
uid: Qdk.Std.StatePreparation.ApproximatelyPreparePureStateCP
|
|
3
3
|
title: ApproximatelyPreparePureStateCP operation
|
|
4
4
|
description: "Q# ApproximatelyPreparePureStateCP operation: Given a set of coefficients and a big-endian quantum register, prepares a state on that register described by the given coefficients, up to a given approximation tolerance."
|
|
5
|
-
ms.date: 12/
|
|
5
|
+
ms.date: 12/09/2025
|
|
6
6
|
qsharp.kind: operation
|
|
7
7
|
qsharp.package: __Std__
|
|
8
8
|
qsharp.namespace: Std.StatePreparation
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
uid: Qdk.Std.StatePreparation.PreparePureStateD
|
|
3
3
|
title: PreparePureStateD operation
|
|
4
4
|
description: "Q# PreparePureStateD operation: Given a set of coefficients and a big-endian quantum register, prepares a state on that register described by the given coefficients."
|
|
5
|
-
ms.date: 12/
|
|
5
|
+
ms.date: 12/09/2025
|
|
6
6
|
qsharp.kind: operation
|
|
7
7
|
qsharp.package: __Std__
|
|
8
8
|
qsharp.namespace: Std.StatePreparation
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
uid: Qdk.Std.StatePreparation.PrepareUniformSuperposition
|
|
3
3
|
title: PrepareUniformSuperposition operation
|
|
4
4
|
description: "Q# PrepareUniformSuperposition operation: Prepares a uniform superposition of states that represent integers 0 through `nStates - 1` in a little-endian `qubits` register."
|
|
5
|
-
ms.date: 12/
|
|
5
|
+
ms.date: 12/09/2025
|
|
6
6
|
qsharp.kind: operation
|
|
7
7
|
qsharp.package: __Std__
|
|
8
8
|
qsharp.namespace: Std.StatePreparation
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
uid: Qdk.Std.TableLookup.Select
|
|
3
3
|
title: Select operation
|
|
4
4
|
description: "Q# Select operation: Performs table lookup using a SELECT network"
|
|
5
|
-
ms.date: 12/
|
|
5
|
+
ms.date: 12/09/2025
|
|
6
6
|
qsharp.kind: operation
|
|
7
7
|
qsharp.package: __Std__
|
|
8
8
|
qsharp.namespace: Std.TableLookup
|
package/docs/index.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
uid: Microsoft.Quantum.apiref-toc
|
|
3
3
|
title: Q# standard libraries for the Azure Quantum Development Kit
|
|
4
4
|
description: Table of contents for the Q# standard libraries for Azure Quantum Development Kit
|
|
5
|
-
ms.date: 12/
|
|
5
|
+
ms.date: 12/09/2025
|
|
6
6
|
ms.topic: landing-page
|
|
7
7
|
---
|
|
8
8
|
|
|
Binary file
|
package/lib/web/qsc_wasm_bg.wasm
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -11,20 +11,22 @@ import { group, line } from "./formatUtils.js";
|
|
|
11
11
|
* stemming from each measurement gate.
|
|
12
12
|
*
|
|
13
13
|
* @param registers Map from register IDs to register render data.
|
|
14
|
-
* @param
|
|
15
|
-
* @param endX End x
|
|
14
|
+
* @param allGates All the gates in the circuit.
|
|
15
|
+
* @param endX End x-coordinate for the whole circuit.
|
|
16
|
+
* All wires will stretch to this x-coordinate.
|
|
16
17
|
*
|
|
17
18
|
* @returns SVG representation of register wires.
|
|
18
19
|
*/
|
|
19
20
|
const formatRegisters = (
|
|
20
21
|
registers: RegisterMap,
|
|
21
|
-
|
|
22
|
+
allGates: GateRenderData[],
|
|
22
23
|
endX: number,
|
|
23
24
|
): SVGElement => {
|
|
24
|
-
const
|
|
25
|
-
|
|
25
|
+
const qubitRegs: SVGElement[] = [];
|
|
26
|
+
const classicalRegs: SVGElement[] = [];
|
|
26
27
|
for (const qId in registers) {
|
|
27
|
-
|
|
28
|
+
// Render qubit wire
|
|
29
|
+
qubitRegs.push(
|
|
28
30
|
line(
|
|
29
31
|
regLineStart,
|
|
30
32
|
registers[qId].y,
|
|
@@ -33,50 +35,74 @@ const formatRegisters = (
|
|
|
33
35
|
"qubit-wire",
|
|
34
36
|
),
|
|
35
37
|
);
|
|
38
|
+
|
|
39
|
+
// Render classical wires
|
|
40
|
+
for (const classical of registers[qId].children || []) {
|
|
41
|
+
for (const gate of allGates.flat()) {
|
|
42
|
+
if (
|
|
43
|
+
gate.type === GateType.Group &&
|
|
44
|
+
gate.dataAttributes?.["expanded"] === "true"
|
|
45
|
+
) {
|
|
46
|
+
// Don't render classical wires for a group that is expanded - the wires
|
|
47
|
+
// will be coming out of the measurement operations *inside* the group.
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
for (const y of gate.targetsY.flat().filter((y) => y === classical.y)) {
|
|
52
|
+
// Found the gate that this classical wire originates from. Draw
|
|
53
|
+
// it starting at this gates x-coordinate.
|
|
54
|
+
|
|
55
|
+
// If this is a measurement gate, there is a vertical line
|
|
56
|
+
// going down from the gate to the wire
|
|
57
|
+
const verticalY =
|
|
58
|
+
gate.type === GateType.Measure ? gate.controlsY[0] : undefined;
|
|
59
|
+
|
|
60
|
+
classicalRegs.push(_classicalRegister(gate.x, endX, y, verticalY));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
36
64
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
if (type !== GateType.Measure) return;
|
|
40
|
-
const gateY: number = controlsY[0];
|
|
41
|
-
(targetsY as number[]).forEach((y) => {
|
|
42
|
-
formattedRegs.push(_classicalRegister(x, gateY, endX, y));
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
return group(formattedRegs, { class: "wires" });
|
|
65
|
+
|
|
66
|
+
return group(qubitRegs.concat(classicalRegs), { class: "wires" });
|
|
46
67
|
};
|
|
47
68
|
|
|
48
69
|
/**
|
|
49
70
|
* Generates the SVG representation of a classical register.
|
|
50
71
|
*
|
|
51
72
|
* @param startX Start x coord.
|
|
52
|
-
* @param gateY y coord of measurement gate.
|
|
53
73
|
* @param endX End x coord.
|
|
54
74
|
* @param wireY y coord of wire.
|
|
75
|
+
* @param gateY y coord of the measurement gate that this wire originates from.
|
|
76
|
+
* If undefined, no vertical line is drawn.
|
|
55
77
|
*
|
|
56
78
|
* @returns SVG representation of the given classical register.
|
|
57
79
|
*/
|
|
58
80
|
const _classicalRegister = (
|
|
59
81
|
startX: number,
|
|
60
|
-
gateY: number,
|
|
61
82
|
endX: number,
|
|
62
83
|
wireY: number,
|
|
84
|
+
gateY?: number,
|
|
63
85
|
): SVGElement => {
|
|
64
86
|
const wirePadding = 1;
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
87
|
+
const g = [];
|
|
88
|
+
if (gateY != null) {
|
|
89
|
+
// Draw vertical lines
|
|
90
|
+
const vLine1: SVGElement = line(
|
|
91
|
+
startX + wirePadding,
|
|
92
|
+
gateY,
|
|
93
|
+
startX + wirePadding,
|
|
94
|
+
wireY - wirePadding,
|
|
95
|
+
"register-classical",
|
|
96
|
+
);
|
|
97
|
+
const vLine2: SVGElement = line(
|
|
98
|
+
startX - wirePadding,
|
|
99
|
+
gateY,
|
|
100
|
+
startX - wirePadding,
|
|
101
|
+
wireY + wirePadding,
|
|
102
|
+
"register-classical",
|
|
103
|
+
);
|
|
104
|
+
g.push(vLine1, vLine2);
|
|
105
|
+
}
|
|
80
106
|
|
|
81
107
|
// Draw horizontal lines
|
|
82
108
|
const hLine1: SVGElement = line(
|
|
@@ -94,7 +120,9 @@ const _classicalRegister = (
|
|
|
94
120
|
"register-classical",
|
|
95
121
|
);
|
|
96
122
|
|
|
97
|
-
|
|
123
|
+
g.push(hLine1, hLine2);
|
|
124
|
+
|
|
125
|
+
return group(g);
|
|
98
126
|
};
|
|
99
127
|
|
|
100
128
|
export { formatRegisters };
|
|
@@ -40,7 +40,7 @@ const processOperations = (
|
|
|
40
40
|
|
|
41
41
|
// Get classical registers and their starting column index
|
|
42
42
|
const classicalRegs: [number, Register][] =
|
|
43
|
-
|
|
43
|
+
_getClassicalRegStarts(componentGrid);
|
|
44
44
|
|
|
45
45
|
// Map operation index to gate render data for formatting later
|
|
46
46
|
const renderDataArray: GateRenderData[][] = componentGrid.map(
|
|
@@ -75,21 +75,21 @@ const processOperations = (
|
|
|
75
75
|
return children[reg.result].y;
|
|
76
76
|
});
|
|
77
77
|
|
|
78
|
-
let
|
|
78
|
+
let targets: Register[];
|
|
79
79
|
switch (op.kind) {
|
|
80
80
|
case "unitary":
|
|
81
|
-
|
|
81
|
+
targets = op.targets;
|
|
82
82
|
break;
|
|
83
83
|
case "measurement":
|
|
84
|
-
|
|
84
|
+
targets = op.qubits;
|
|
85
85
|
break;
|
|
86
86
|
case "ket":
|
|
87
|
-
|
|
87
|
+
targets = op.targets;
|
|
88
88
|
break;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
renderData.targetsY = _splitTargetsY(
|
|
92
|
-
|
|
92
|
+
targets,
|
|
93
93
|
classicalRegY,
|
|
94
94
|
registers,
|
|
95
95
|
);
|
|
@@ -122,7 +122,7 @@ const processOperations = (
|
|
|
122
122
|
*
|
|
123
123
|
* @returns Array of classical register and their starting column indices in the form [[column, register]].
|
|
124
124
|
*/
|
|
125
|
-
const
|
|
125
|
+
const _getClassicalRegStarts = (
|
|
126
126
|
componentGrid: ComponentGrid,
|
|
127
127
|
): [number, Register][] => {
|
|
128
128
|
const clsRegs: [number, Register][] = [];
|
|
@@ -133,6 +133,12 @@ const _getClassicalRegStart = (
|
|
|
133
133
|
({ result }) => result !== undefined,
|
|
134
134
|
);
|
|
135
135
|
resultRegs.forEach((reg) => clsRegs.push([colIndex, reg]));
|
|
136
|
+
} else if (op.children != null) {
|
|
137
|
+
const componentGrid = op.children;
|
|
138
|
+
const childClsRegs = _getClassicalRegStarts(componentGrid);
|
|
139
|
+
childClsRegs.forEach(([, reg]) => {
|
|
140
|
+
clsRegs.push([colIndex, reg]);
|
|
141
|
+
});
|
|
136
142
|
}
|
|
137
143
|
});
|
|
138
144
|
});
|
|
@@ -338,7 +344,7 @@ const _getRegY = (reg: Register, registers: RegisterMap): number => {
|
|
|
338
344
|
/**
|
|
339
345
|
* Splits `targets` if non-adjacent or intersected by classical registers.
|
|
340
346
|
*
|
|
341
|
-
* @param targets Target qubit
|
|
347
|
+
* @param targets Target registers (can be qubit or classical).
|
|
342
348
|
* @param classicalRegY y coords of classical registers overlapping current column.
|
|
343
349
|
* @param registers Mapping from register qubit IDs to register render data.
|
|
344
350
|
*
|
package/ux/circuit-vis/sqore.ts
CHANGED
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
Column,
|
|
15
15
|
SourceLocation,
|
|
16
16
|
} from "./circuit.js";
|
|
17
|
-
import { GateRenderData
|
|
17
|
+
import { GateRenderData } from "./gateRenderData.js";
|
|
18
18
|
import {
|
|
19
19
|
gateHeight,
|
|
20
20
|
minGateWidth,
|
|
@@ -218,12 +218,11 @@ export class Sqore {
|
|
|
218
218
|
this.options.isEditable ? undefined : this.options.renderLocations,
|
|
219
219
|
);
|
|
220
220
|
const formattedGates: SVGElement = formatGates(renderDataArray);
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
);
|
|
221
|
+
|
|
222
|
+
// Draw the lines that represent qubit and classical wires.
|
|
224
223
|
const formattedRegs: SVGElement = formatRegisters(
|
|
225
224
|
registers,
|
|
226
|
-
|
|
225
|
+
flatten(renderDataArray),
|
|
227
226
|
svgWidth,
|
|
228
227
|
);
|
|
229
228
|
|