qsharp-lang 1.25.4-dev → 1.25.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.
Files changed (337) hide show
  1. package/docs/Microsoft.Quantum.Core/IsRangeEmpty.md +1 -1
  2. package/docs/Microsoft.Quantum.Core/Length.md +1 -1
  3. package/docs/Microsoft.Quantum.Core/RangeEnd.md +1 -1
  4. package/docs/Microsoft.Quantum.Core/RangeStart.md +1 -1
  5. package/docs/Microsoft.Quantum.Core/Repeated.md +1 -1
  6. package/docs/Microsoft.Quantum.Core/index.md +1 -1
  7. package/docs/Std.Arithmetic/AddLE.md +1 -1
  8. package/docs/Std.Arithmetic/ApplyIfEqualL.md +1 -1
  9. package/docs/Std.Arithmetic/ApplyIfEqualLE.md +1 -1
  10. package/docs/Std.Arithmetic/ApplyIfGreaterL.md +1 -1
  11. package/docs/Std.Arithmetic/ApplyIfGreaterLE.md +1 -1
  12. package/docs/Std.Arithmetic/ApplyIfGreaterOrEqualL.md +1 -1
  13. package/docs/Std.Arithmetic/ApplyIfGreaterOrEqualLE.md +1 -1
  14. package/docs/Std.Arithmetic/ApplyIfLessL.md +1 -1
  15. package/docs/Std.Arithmetic/ApplyIfLessLE.md +1 -1
  16. package/docs/Std.Arithmetic/ApplyIfLessOrEqualL.md +1 -1
  17. package/docs/Std.Arithmetic/ApplyIfLessOrEqualLE.md +1 -1
  18. package/docs/Std.Arithmetic/FourierTDIncByLE.md +1 -1
  19. package/docs/Std.Arithmetic/IncByI.md +1 -1
  20. package/docs/Std.Arithmetic/IncByIUsingIncByLE.md +1 -1
  21. package/docs/Std.Arithmetic/IncByL.md +1 -1
  22. package/docs/Std.Arithmetic/IncByLE.md +1 -1
  23. package/docs/Std.Arithmetic/IncByLEUsingAddLE.md +1 -1
  24. package/docs/Std.Arithmetic/IncByLUsingIncByLE.md +1 -1
  25. package/docs/Std.Arithmetic/LookAheadDKRSAddLE.md +1 -1
  26. package/docs/Std.Arithmetic/MAJ.md +1 -1
  27. package/docs/Std.Arithmetic/ReflectAboutInteger.md +1 -1
  28. package/docs/Std.Arithmetic/RippleCarryCGAddLE.md +1 -1
  29. package/docs/Std.Arithmetic/RippleCarryCGIncByLE.md +1 -1
  30. package/docs/Std.Arithmetic/RippleCarryTTKIncByLE.md +1 -1
  31. package/docs/Std.Arithmetic/index.md +1 -1
  32. package/docs/Std.Arrays/All.md +1 -1
  33. package/docs/Std.Arrays/Any.md +1 -1
  34. package/docs/Std.Arrays/Chunks.md +1 -1
  35. package/docs/Std.Arrays/CircularlyShifted.md +1 -1
  36. package/docs/Std.Arrays/ColumnAt.md +1 -1
  37. package/docs/Std.Arrays/Count.md +1 -1
  38. package/docs/Std.Arrays/Diagonal.md +1 -1
  39. package/docs/Std.Arrays/DrawMany.md +1 -1
  40. package/docs/Std.Arrays/Enumerated.md +1 -1
  41. package/docs/Std.Arrays/Excluding.md +1 -1
  42. package/docs/Std.Arrays/Filtered.md +1 -1
  43. package/docs/Std.Arrays/FlatMapped.md +1 -1
  44. package/docs/Std.Arrays/Flattened.md +1 -1
  45. package/docs/Std.Arrays/Fold.md +1 -1
  46. package/docs/Std.Arrays/ForEach.md +1 -1
  47. package/docs/Std.Arrays/Head.md +1 -1
  48. package/docs/Std.Arrays/HeadAndRest.md +1 -1
  49. package/docs/Std.Arrays/IndexOf.md +1 -1
  50. package/docs/Std.Arrays/IndexRange.md +1 -1
  51. package/docs/Std.Arrays/Interleaved.md +1 -1
  52. package/docs/Std.Arrays/IsEmpty.md +1 -1
  53. package/docs/Std.Arrays/IsRectangularArray.md +1 -1
  54. package/docs/Std.Arrays/IsSorted.md +1 -1
  55. package/docs/Std.Arrays/IsSquareArray.md +1 -1
  56. package/docs/Std.Arrays/Mapped.md +1 -1
  57. package/docs/Std.Arrays/MappedByIndex.md +1 -1
  58. package/docs/Std.Arrays/MappedOverRange.md +1 -1
  59. package/docs/Std.Arrays/Most.md +1 -1
  60. package/docs/Std.Arrays/MostAndTail.md +1 -1
  61. package/docs/Std.Arrays/Padded.md +1 -1
  62. package/docs/Std.Arrays/Partitioned.md +1 -1
  63. package/docs/Std.Arrays/Rest.md +1 -1
  64. package/docs/Std.Arrays/Reversed.md +1 -1
  65. package/docs/Std.Arrays/SequenceI.md +1 -1
  66. package/docs/Std.Arrays/SequenceL.md +1 -1
  67. package/docs/Std.Arrays/Sorted.md +1 -1
  68. package/docs/Std.Arrays/Subarray.md +1 -1
  69. package/docs/Std.Arrays/Swapped.md +1 -1
  70. package/docs/Std.Arrays/Tail.md +1 -1
  71. package/docs/Std.Arrays/Transposed.md +1 -1
  72. package/docs/Std.Arrays/Unzipped.md +1 -1
  73. package/docs/Std.Arrays/Where.md +1 -1
  74. package/docs/Std.Arrays/Windows.md +1 -1
  75. package/docs/Std.Arrays/Zipped.md +1 -1
  76. package/docs/Std.Arrays/index.md +1 -1
  77. package/docs/Std.Canon/ApplyCNOTChain.md +1 -1
  78. package/docs/Std.Canon/ApplyControlledOnBitString.md +1 -1
  79. package/docs/Std.Canon/ApplyControlledOnInt.md +1 -1
  80. package/docs/Std.Canon/ApplyOperationPowerA.md +1 -1
  81. package/docs/Std.Canon/ApplyOperationPowerCA.md +1 -1
  82. package/docs/Std.Canon/ApplyP.md +1 -1
  83. package/docs/Std.Canon/ApplyPauli.md +1 -1
  84. package/docs/Std.Canon/ApplyPauliFromBitString.md +1 -1
  85. package/docs/Std.Canon/ApplyPauliFromInt.md +1 -1
  86. package/docs/Std.Canon/ApplyQFT.md +1 -1
  87. package/docs/Std.Canon/ApplyQPE.md +1 -1
  88. package/docs/Std.Canon/ApplyToEach.md +1 -1
  89. package/docs/Std.Canon/ApplyToEachA.md +1 -1
  90. package/docs/Std.Canon/ApplyToEachC.md +1 -1
  91. package/docs/Std.Canon/ApplyToEachCA.md +1 -1
  92. package/docs/Std.Canon/ApplyXorInPlace.md +1 -1
  93. package/docs/Std.Canon/ApplyXorInPlaceL.md +1 -1
  94. package/docs/Std.Canon/CX.md +1 -1
  95. package/docs/Std.Canon/CY.md +1 -1
  96. package/docs/Std.Canon/CZ.md +1 -1
  97. package/docs/Std.Canon/Fst.md +1 -1
  98. package/docs/Std.Canon/MapPauliAxis.md +1 -1
  99. package/docs/Std.Canon/Relabel.md +1 -1
  100. package/docs/Std.Canon/Snd.md +1 -1
  101. package/docs/Std.Canon/SwapReverseRegister.md +1 -1
  102. package/docs/Std.Canon/index.md +1 -1
  103. package/docs/Std.Convert/BigIntAsBoolArray.md +1 -1
  104. package/docs/Std.Convert/BigIntAsInt.md +1 -1
  105. package/docs/Std.Convert/BoolArrayAsBigInt.md +1 -1
  106. package/docs/Std.Convert/BoolArrayAsInt.md +1 -1
  107. package/docs/Std.Convert/BoolArrayAsResultArray.md +1 -1
  108. package/docs/Std.Convert/BoolAsResult.md +1 -1
  109. package/docs/Std.Convert/ComplexAsComplexPolar.md +1 -1
  110. package/docs/Std.Convert/ComplexPolarAsComplex.md +1 -1
  111. package/docs/Std.Convert/DoubleAsStringWithPrecision.md +1 -1
  112. package/docs/Std.Convert/IntAsBigInt.md +1 -1
  113. package/docs/Std.Convert/IntAsBoolArray.md +1 -1
  114. package/docs/Std.Convert/IntAsDouble.md +1 -1
  115. package/docs/Std.Convert/ResultArrayAsBoolArray.md +1 -1
  116. package/docs/Std.Convert/ResultArrayAsInt.md +1 -1
  117. package/docs/Std.Convert/ResultAsBool.md +1 -1
  118. package/docs/Std.Convert/index.md +1 -1
  119. package/docs/Std.Core/Complex.md +1 -1
  120. package/docs/Std.Core/Length.md +1 -1
  121. package/docs/Std.Core/Repeated.md +1 -1
  122. package/docs/Std.Core/index.md +1 -1
  123. package/docs/Std.Diagnostics/ApplyIdleNoise.md +1 -1
  124. package/docs/Std.Diagnostics/BitFlipNoise.md +1 -1
  125. package/docs/Std.Diagnostics/CheckAllZero.md +1 -1
  126. package/docs/Std.Diagnostics/CheckOperationsAreEqual.md +1 -1
  127. package/docs/Std.Diagnostics/CheckZero.md +1 -1
  128. package/docs/Std.Diagnostics/ConfigurePauliNoise.md +1 -1
  129. package/docs/Std.Diagnostics/ConfigureQubitLoss.md +1 -1
  130. package/docs/Std.Diagnostics/DepolarizingNoise.md +1 -1
  131. package/docs/Std.Diagnostics/DumpMachine.md +1 -1
  132. package/docs/Std.Diagnostics/DumpOperation.md +1 -1
  133. package/docs/Std.Diagnostics/DumpRegister.md +1 -1
  134. package/docs/Std.Diagnostics/Fact.md +1 -1
  135. package/docs/Std.Diagnostics/NoNoise.md +1 -1
  136. package/docs/Std.Diagnostics/PhaseFlipNoise.md +1 -1
  137. package/docs/Std.Diagnostics/StartCountingFunction.md +1 -1
  138. package/docs/Std.Diagnostics/StartCountingOperation.md +1 -1
  139. package/docs/Std.Diagnostics/StartCountingQubits.md +1 -1
  140. package/docs/Std.Diagnostics/StopCountingFunction.md +1 -1
  141. package/docs/Std.Diagnostics/StopCountingOperation.md +1 -1
  142. package/docs/Std.Diagnostics/StopCountingQubits.md +1 -1
  143. package/docs/Std.Diagnostics/index.md +1 -1
  144. package/docs/Std.Intrinsic/AND.md +1 -1
  145. package/docs/Std.Intrinsic/ApplyUnitary.md +1 -1
  146. package/docs/Std.Intrinsic/CCNOT.md +1 -1
  147. package/docs/Std.Intrinsic/CNOT.md +1 -1
  148. package/docs/Std.Intrinsic/Exp.md +1 -1
  149. package/docs/Std.Intrinsic/H.md +1 -1
  150. package/docs/Std.Intrinsic/I.md +1 -1
  151. package/docs/Std.Intrinsic/M.md +1 -1
  152. package/docs/Std.Intrinsic/Measure.md +1 -1
  153. package/docs/Std.Intrinsic/Message.md +1 -1
  154. package/docs/Std.Intrinsic/R.md +1 -1
  155. package/docs/Std.Intrinsic/R1.md +1 -1
  156. package/docs/Std.Intrinsic/R1Frac.md +1 -1
  157. package/docs/Std.Intrinsic/RFrac.md +1 -1
  158. package/docs/Std.Intrinsic/Reset.md +1 -1
  159. package/docs/Std.Intrinsic/ResetAll.md +1 -1
  160. package/docs/Std.Intrinsic/Rx.md +1 -1
  161. package/docs/Std.Intrinsic/Rxx.md +1 -1
  162. package/docs/Std.Intrinsic/Ry.md +1 -1
  163. package/docs/Std.Intrinsic/Ryy.md +1 -1
  164. package/docs/Std.Intrinsic/Rz.md +1 -1
  165. package/docs/Std.Intrinsic/Rzz.md +1 -1
  166. package/docs/Std.Intrinsic/S.md +1 -1
  167. package/docs/Std.Intrinsic/SWAP.md +1 -1
  168. package/docs/Std.Intrinsic/SX.md +1 -1
  169. package/docs/Std.Intrinsic/T.md +1 -1
  170. package/docs/Std.Intrinsic/X.md +1 -1
  171. package/docs/Std.Intrinsic/Y.md +1 -1
  172. package/docs/Std.Intrinsic/Z.md +1 -1
  173. package/docs/Std.Intrinsic/index.md +1 -1
  174. package/docs/Std.Logical/Xor.md +1 -1
  175. package/docs/Std.Logical/index.md +1 -1
  176. package/docs/Std.Math/AbsComplex.md +1 -1
  177. package/docs/Std.Math/AbsComplexPolar.md +1 -1
  178. package/docs/Std.Math/AbsD.md +1 -1
  179. package/docs/Std.Math/AbsI.md +1 -1
  180. package/docs/Std.Math/AbsL.md +1 -1
  181. package/docs/Std.Math/AbsSquaredComplex.md +1 -1
  182. package/docs/Std.Math/AbsSquaredComplexPolar.md +1 -1
  183. package/docs/Std.Math/ApproximateFactorial.md +1 -1
  184. package/docs/Std.Math/ArcCos.md +1 -1
  185. package/docs/Std.Math/ArcCosh.md +1 -1
  186. package/docs/Std.Math/ArcSin.md +1 -1
  187. package/docs/Std.Math/ArcSinh.md +1 -1
  188. package/docs/Std.Math/ArcTan.md +1 -1
  189. package/docs/Std.Math/ArcTan2.md +1 -1
  190. package/docs/Std.Math/ArcTanh.md +1 -1
  191. package/docs/Std.Math/ArgComplex.md +1 -1
  192. package/docs/Std.Math/ArgComplexPolar.md +1 -1
  193. package/docs/Std.Math/Binom.md +1 -1
  194. package/docs/Std.Math/BitSizeI.md +1 -1
  195. package/docs/Std.Math/BitSizeL.md +1 -1
  196. package/docs/Std.Math/Ceiling.md +1 -1
  197. package/docs/Std.Math/Complex.md +1 -1
  198. package/docs/Std.Math/ComplexPolar.md +1 -1
  199. package/docs/Std.Math/ContinuedFractionConvergentI.md +1 -1
  200. package/docs/Std.Math/ContinuedFractionConvergentL.md +1 -1
  201. package/docs/Std.Math/Cos.md +1 -1
  202. package/docs/Std.Math/Cosh.md +1 -1
  203. package/docs/Std.Math/DivRemI.md +1 -1
  204. package/docs/Std.Math/DivRemL.md +1 -1
  205. package/docs/Std.Math/DividedByC.md +1 -1
  206. package/docs/Std.Math/DividedByCP.md +1 -1
  207. package/docs/Std.Math/E.md +1 -1
  208. package/docs/Std.Math/ExpModI.md +1 -1
  209. package/docs/Std.Math/ExpModL.md +1 -1
  210. package/docs/Std.Math/ExtendedGreatestCommonDivisorI.md +1 -1
  211. package/docs/Std.Math/ExtendedGreatestCommonDivisorL.md +1 -1
  212. package/docs/Std.Math/FactorialI.md +1 -1
  213. package/docs/Std.Math/FactorialL.md +1 -1
  214. package/docs/Std.Math/Floor.md +1 -1
  215. package/docs/Std.Math/GreatestCommonDivisorI.md +1 -1
  216. package/docs/Std.Math/GreatestCommonDivisorL.md +1 -1
  217. package/docs/Std.Math/HammingWeightI.md +1 -1
  218. package/docs/Std.Math/InverseModI.md +1 -1
  219. package/docs/Std.Math/InverseModL.md +1 -1
  220. package/docs/Std.Math/IsCoprimeI.md +1 -1
  221. package/docs/Std.Math/IsCoprimeL.md +1 -1
  222. package/docs/Std.Math/IsInfinite.md +1 -1
  223. package/docs/Std.Math/IsNaN.md +1 -1
  224. package/docs/Std.Math/LargestFixedPoint.md +1 -1
  225. package/docs/Std.Math/Lg.md +1 -1
  226. package/docs/Std.Math/Log.md +1 -1
  227. package/docs/Std.Math/Log10.md +1 -1
  228. package/docs/Std.Math/LogFactorialD.md +1 -1
  229. package/docs/Std.Math/LogGammaD.md +1 -1
  230. package/docs/Std.Math/LogOf2.md +1 -1
  231. package/docs/Std.Math/Max.md +1 -1
  232. package/docs/Std.Math/MaxD.md +1 -1
  233. package/docs/Std.Math/MaxI.md +1 -1
  234. package/docs/Std.Math/MaxL.md +1 -1
  235. package/docs/Std.Math/Min.md +1 -1
  236. package/docs/Std.Math/MinD.md +1 -1
  237. package/docs/Std.Math/MinI.md +1 -1
  238. package/docs/Std.Math/MinL.md +1 -1
  239. package/docs/Std.Math/MinusC.md +1 -1
  240. package/docs/Std.Math/MinusCP.md +1 -1
  241. package/docs/Std.Math/ModulusI.md +1 -1
  242. package/docs/Std.Math/ModulusL.md +1 -1
  243. package/docs/Std.Math/NegationC.md +1 -1
  244. package/docs/Std.Math/NegationCP.md +1 -1
  245. package/docs/Std.Math/PI.md +1 -1
  246. package/docs/Std.Math/PNorm.md +1 -1
  247. package/docs/Std.Math/PNormalized.md +1 -1
  248. package/docs/Std.Math/PlusC.md +1 -1
  249. package/docs/Std.Math/PlusCP.md +1 -1
  250. package/docs/Std.Math/PowC.md +1 -1
  251. package/docs/Std.Math/PowCP.md +1 -1
  252. package/docs/Std.Math/RealMod.md +1 -1
  253. package/docs/Std.Math/Round.md +1 -1
  254. package/docs/Std.Math/RoundHalfAwayFromZero.md +1 -1
  255. package/docs/Std.Math/SignD.md +1 -1
  256. package/docs/Std.Math/SignI.md +1 -1
  257. package/docs/Std.Math/SignL.md +1 -1
  258. package/docs/Std.Math/Sin.md +1 -1
  259. package/docs/Std.Math/Sinh.md +1 -1
  260. package/docs/Std.Math/SmallestFixedPoint.md +1 -1
  261. package/docs/Std.Math/Sqrt.md +1 -1
  262. package/docs/Std.Math/SquaredNorm.md +1 -1
  263. package/docs/Std.Math/Tan.md +1 -1
  264. package/docs/Std.Math/Tanh.md +1 -1
  265. package/docs/Std.Math/TimesC.md +1 -1
  266. package/docs/Std.Math/TimesCP.md +1 -1
  267. package/docs/Std.Math/TrailingZeroCountI.md +1 -1
  268. package/docs/Std.Math/TrailingZeroCountL.md +1 -1
  269. package/docs/Std.Math/Truncate.md +1 -1
  270. package/docs/Std.Math/index.md +1 -1
  271. package/docs/Std.Measurement/IsLossResult.md +1 -1
  272. package/docs/Std.Measurement/MResetEachZ.md +1 -1
  273. package/docs/Std.Measurement/MResetX.md +1 -1
  274. package/docs/Std.Measurement/MResetY.md +1 -1
  275. package/docs/Std.Measurement/MResetZ.md +1 -1
  276. package/docs/Std.Measurement/MResetZChecked.md +1 -1
  277. package/docs/Std.Measurement/MeasureAllZ.md +1 -1
  278. package/docs/Std.Measurement/MeasureEachZ.md +1 -1
  279. package/docs/Std.Measurement/MeasureInteger.md +1 -1
  280. package/docs/Std.Measurement/index.md +1 -1
  281. package/docs/Std.Random/DrawRandomBool.md +1 -1
  282. package/docs/Std.Random/DrawRandomDouble.md +1 -1
  283. package/docs/Std.Random/DrawRandomInt.md +1 -1
  284. package/docs/Std.Random/index.md +1 -1
  285. package/docs/Std.Range/IsRangeEmpty.md +1 -1
  286. package/docs/Std.Range/RangeEnd.md +1 -1
  287. package/docs/Std.Range/RangeReverse.md +1 -1
  288. package/docs/Std.Range/RangeStart.md +1 -1
  289. package/docs/Std.Range/RangeStep.md +1 -1
  290. package/docs/Std.Range/index.md +1 -1
  291. package/docs/Std.ResourceEstimation/AccountForEstimates.md +1 -1
  292. package/docs/Std.ResourceEstimation/AuxQubitCount.md +1 -1
  293. package/docs/Std.ResourceEstimation/BeginEstimateCaching.md +1 -1
  294. package/docs/Std.ResourceEstimation/BeginRepeatEstimates.md +1 -1
  295. package/docs/Std.ResourceEstimation/CczCount.md +1 -1
  296. package/docs/Std.ResourceEstimation/EnableMemoryComputeArchitecture.md +1 -1
  297. package/docs/Std.ResourceEstimation/EndEstimateCaching.md +1 -1
  298. package/docs/Std.ResourceEstimation/EndRepeatEstimates.md +1 -1
  299. package/docs/Std.ResourceEstimation/LeastFrequentlyUsed.md +1 -1
  300. package/docs/Std.ResourceEstimation/LeastRecentlyUsed.md +1 -1
  301. package/docs/Std.ResourceEstimation/MeasurementCount.md +1 -1
  302. package/docs/Std.ResourceEstimation/PSSPCLayout.md +1 -1
  303. package/docs/Std.ResourceEstimation/RepeatEstimates.md +1 -1
  304. package/docs/Std.ResourceEstimation/RotationCount.md +1 -1
  305. package/docs/Std.ResourceEstimation/RotationDepth.md +1 -1
  306. package/docs/Std.ResourceEstimation/SingleVariant.md +1 -1
  307. package/docs/Std.ResourceEstimation/TCount.md +1 -1
  308. package/docs/Std.ResourceEstimation/index.md +1 -1
  309. package/docs/Std.StatePreparation/ApproximatelyPreparePureStateCP.md +1 -1
  310. package/docs/Std.StatePreparation/PreparePureStateD.md +1 -1
  311. package/docs/Std.StatePreparation/PrepareUniformSuperposition.md +1 -1
  312. package/docs/Std.StatePreparation/index.md +1 -1
  313. package/docs/Std.TableLookup/Select.md +1 -1
  314. package/docs/Std.TableLookup/index.md +1 -1
  315. package/docs/index.md +1 -1
  316. package/lib/nodejs/qsc_wasm.cjs +1 -1
  317. package/lib/nodejs/qsc_wasm_bg.wasm +0 -0
  318. package/lib/web/qsc_wasm.js +1 -1
  319. package/lib/web/qsc_wasm_bg.wasm +0 -0
  320. package/package.json +2 -1
  321. package/ux/circuit-vis/angleExpression.ts +133 -0
  322. package/ux/circuit-vis/contextMenu.ts +8 -73
  323. package/ux/circuit-vis/events.ts +41 -1
  324. package/ux/circuit-vis/formatters/inputFormatter.ts +14 -6
  325. package/ux/circuit-vis/index.ts +12 -4
  326. package/ux/circuit-vis/panel.ts +65 -28
  327. package/ux/circuit-vis/sqore.ts +30 -16
  328. package/ux/circuit-vis/state-viz/stateViz.ts +763 -0
  329. package/ux/circuit-vis/state-viz/stateVizController.ts +285 -0
  330. package/ux/circuit-vis/state-viz/worker/index.ts +18 -0
  331. package/ux/circuit-vis/state-viz/worker/stateCompute.ts +260 -0
  332. package/ux/circuit-vis/state-viz/worker/stateVizPrep.ts +152 -0
  333. package/ux/circuit.tsx +15 -26
  334. package/ux/data.ts +5 -3
  335. package/ux/index.ts +2 -0
  336. package/ux/qdk-theme.css +15 -0
  337. package/ux/qsharp-circuit.css +311 -1
@@ -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: 02/11/2026
5
+ ms.date: 02/19/2026
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: 02/11/2026
5
+ ms.date: 02/19/2026
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: 02/11/2026
5
+ ms.date: 02/19/2026
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-toc
3
3
  title: Std.StatePreparation namespace
4
4
  description: Table of contents for the Q# StatePreparation namespace
5
- ms.date: 02/11/2026
5
+ ms.date: 02/19/2026
6
6
  ms.topic: landing-page
7
7
  ---
8
8
 
@@ -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: 02/11/2026
5
+ ms.date: 02/19/2026
6
6
  qsharp.kind: operation
7
7
  qsharp.package: __Std__
8
8
  qsharp.namespace: Std.TableLookup
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.TableLookup-toc
3
3
  title: Std.TableLookup namespace
4
4
  description: Table of contents for the Q# TableLookup namespace
5
- ms.date: 02/11/2026
5
+ ms.date: 02/19/2026
6
6
  ms.topic: landing-page
7
7
  ---
8
8
 
package/docs/index.md CHANGED
@@ -2,7 +2,7 @@
2
2
  uid: Microsoft.Quantum.apiref-toc
3
3
  title: Q# standard libraries for the Microsoft Quantum Development Kit
4
4
  description: Table of contents for the Q# standard libraries for Microsoft Quantum Development Kit
5
- ms.date: 02/11/2026
5
+ ms.date: 02/19/2026
6
6
  ms.topic: landing-page
7
7
  ---
8
8
 
@@ -1570,7 +1570,7 @@ module.exports.__wbindgen_cb_drop = function(arg0) {
1570
1570
  return ret;
1571
1571
  };
1572
1572
 
1573
- module.exports.__wbindgen_closure_wrapper6571 = function(arg0, arg1, arg2) {
1573
+ module.exports.__wbindgen_closure_wrapper6572 = function(arg0, arg1, arg2) {
1574
1574
  const ret = makeMutClosure(arg0, arg1, 2071, __wbg_adapter_52);
1575
1575
  return addHeapObject(ret);
1576
1576
  };
Binary file
@@ -1525,7 +1525,7 @@ function __wbg_get_imports() {
1525
1525
  const ret = false;
1526
1526
  return ret;
1527
1527
  };
1528
- imports.wbg.__wbindgen_closure_wrapper6571 = function(arg0, arg1, arg2) {
1528
+ imports.wbg.__wbindgen_closure_wrapper6572 = function(arg0, arg1, arg2) {
1529
1529
  const ret = makeMutClosure(arg0, arg1, 2071, __wbg_adapter_52);
1530
1530
  return addHeapObject(ret);
1531
1531
  };
Binary file
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "qsharp-lang",
3
3
  "description": "qsharp language package for quantum development",
4
- "version": "1.25.4-dev",
4
+ "version": "1.25.5-dev",
5
5
  "license": "MIT",
6
6
  "engines": {
7
7
  "node": ">=16.17.0"
@@ -22,6 +22,7 @@
22
22
  "./debug-service-worker": "./dist/debug-service/worker-browser.js",
23
23
  "./katas": "./dist/katas.js",
24
24
  "./katas-md": "./dist/katas-md.js",
25
+ "./state-viz": "./ux/circuit-vis/state-viz/worker/index.ts",
25
26
  "./ux": "./ux/index.ts",
26
27
  "./qdk-theme.css": "./ux/qdk-theme.css"
27
28
  },
@@ -0,0 +1,133 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+
4
+ // Normalizes "pi" (any case) to "π" and trims whitespace for
5
+ // consistent storage and display.
6
+ export function normalizeAngleExpression(expr: string): string {
7
+ return expr.trim().replace(/pi/gi, "π");
8
+ }
9
+
10
+ // Evaluate a simple arithmetic expression supporting numbers, + - * /, parentheses, and π.
11
+ // Returns `undefined` for invalid inputs.
12
+ export function evaluateAngleExpression(expr: string): number | undefined {
13
+ if (!expr) return undefined;
14
+ const src = normalizeAngleExpression(expr);
15
+ if (!src) return undefined;
16
+
17
+ // Tokenizer
18
+ type Tok = { type: "num" | "pi" | "op" | "lpar" | "rpar"; value?: string };
19
+ const toks: Tok[] = [];
20
+ let i = 0;
21
+ while (i < src.length) {
22
+ const ch = src[i];
23
+ if (ch === " " || ch === "\t" || ch === "\n") {
24
+ i++;
25
+ continue;
26
+ }
27
+ if (ch === "(" || ch === ")") {
28
+ toks.push({ type: ch === "(" ? "lpar" : "rpar" });
29
+ i++;
30
+ continue;
31
+ }
32
+ if (ch === "+" || ch === "-" || ch === "*" || ch === "/") {
33
+ toks.push({ type: "op", value: ch });
34
+ i++;
35
+ continue;
36
+ }
37
+ if (ch === "π") {
38
+ toks.push({ type: "pi" });
39
+ i++;
40
+ continue;
41
+ }
42
+ // number: digits with optional decimal part; no leading dot
43
+ if (ch === "." || /\d/.test(ch)) {
44
+ let j = i + 1;
45
+ while (j < src.length && /[0-9.]/.test(src[j])) j++;
46
+ const numStr = src.slice(i, j);
47
+ const valid = /^(?:\d+(?:\.\d*)?)$/.test(numStr);
48
+ if (!valid) return undefined;
49
+ toks.push({ type: "num", value: numStr });
50
+ i = j;
51
+ continue;
52
+ }
53
+ // Unknown character
54
+ return undefined;
55
+ }
56
+
57
+ // Recursive descent parser
58
+ let k = 0;
59
+ const peek = () => toks[k];
60
+ const consume = () => toks[k++];
61
+
62
+ const parseExpr = (): number | undefined => {
63
+ let lhs = parseTerm();
64
+ if (lhs === undefined) return undefined;
65
+ while (
66
+ peek() &&
67
+ peek().type === "op" &&
68
+ (peek().value === "+" || peek().value === "-")
69
+ ) {
70
+ const op = consume().value!;
71
+ const rhs = parseTerm();
72
+ if (rhs === undefined) return undefined;
73
+ lhs = op === "+" ? lhs + rhs : lhs - rhs;
74
+ }
75
+ return lhs;
76
+ };
77
+
78
+ const parseTerm = (): number | undefined => {
79
+ let lhs = parseFactor();
80
+ if (lhs === undefined) return undefined;
81
+ while (
82
+ peek() &&
83
+ peek().type === "op" &&
84
+ (peek().value === "*" || peek().value === "/")
85
+ ) {
86
+ const op = consume().value!;
87
+ const rhs = parseFactor();
88
+ if (rhs === undefined) return undefined;
89
+ lhs = op === "*" ? lhs * rhs : lhs / rhs;
90
+ }
91
+ return lhs;
92
+ };
93
+
94
+ const parseFactor = (): number | undefined => {
95
+ let sign = 1;
96
+ if (
97
+ peek() &&
98
+ peek().type === "op" &&
99
+ (peek().value === "+" || peek().value === "-")
100
+ ) {
101
+ sign = consume().value! === "-" ? -1 : 1;
102
+ }
103
+
104
+ const t = peek();
105
+ if (!t) return undefined;
106
+ if (t.type === "num") {
107
+ consume();
108
+ return sign * parseFloat(t.value!);
109
+ }
110
+ if (t.type === "pi") {
111
+ consume();
112
+ return sign * Math.PI;
113
+ }
114
+ if (t.type === "lpar") {
115
+ consume();
116
+ const v = parseExpr();
117
+ if (peek() && peek().type === "rpar") consume();
118
+ else return undefined;
119
+ if (v === undefined) return undefined;
120
+ return sign * v;
121
+ }
122
+ return undefined;
123
+ };
124
+
125
+ const result = parseExpr();
126
+ if (result === undefined || k !== toks.length || !isFinite(result))
127
+ return undefined;
128
+ return result;
129
+ }
130
+
131
+ export function isValidAngleExpression(expr: string): boolean {
132
+ return evaluateAngleExpression(expr) !== undefined;
133
+ }
@@ -5,6 +5,10 @@ import { Parameter } from "./circuit.js";
5
5
  import { removeControl, removeOperation } from "./circuitManipulation.js";
6
6
  import { CircuitEvents } from "./events.js";
7
7
  import { findGateElem, findOperation } from "./utils.js";
8
+ import {
9
+ isValidAngleExpression,
10
+ normalizeAngleExpression,
11
+ } from "./angleExpression.js";
8
12
 
9
13
  /**
10
14
  * Adds a context menu to a host element in the circuit visualization.
@@ -176,7 +180,7 @@ const promptForArguments = (
176
180
  }
177
181
  },
178
182
  defaultValue,
179
- validateExpression,
183
+ isValidAngleExpression,
180
184
  'Examples: "2.0 * π" or "π / 2.0"',
181
185
  );
182
186
  };
@@ -185,72 +189,6 @@ const promptForArguments = (
185
189
  });
186
190
  };
187
191
 
188
- /**
189
- * Validate a mathematical expression.
190
- * @param input - The input string to validate.
191
- * @returns True if the expression is valid, false otherwise.
192
- */
193
- const validateExpression = (input: string): boolean => {
194
- // Removes outermost parentheses
195
- const removeParentheses = (expr: string): string => {
196
- while (expr.startsWith("(") && expr.endsWith(")")) {
197
- expr = expr.slice(1, -1).trim(); // Remove outermost parentheses
198
- }
199
- return expr;
200
- };
201
-
202
- // Validates parentheses balance and nesting
203
- const validateParentheses = (expr: string): boolean => {
204
- const stack: string[] = [];
205
- for (const char of expr) {
206
- if (char === "(") {
207
- stack.push(char);
208
- } else if (char === ")") {
209
- if (stack.length === 0) {
210
- return false; // Unmatched closing parenthesis
211
- }
212
- stack.pop();
213
- }
214
- }
215
- return stack.length === 0; // Ensure no unmatched opening parentheses
216
- };
217
-
218
- // Validate the expression recursively
219
- const validate = (expr: string): boolean => {
220
- expr = expr.trim();
221
-
222
- // Remove outermost parentheses
223
- expr = removeParentheses(expr);
224
-
225
- // Find and validate all sub-expressions within parentheses
226
- const parenthesesRegex = /\(([^()]+)\)/g;
227
- let match;
228
- while ((match = parenthesesRegex.exec(expr)) !== null) {
229
- const innerExpr = match[1];
230
- if (!validate(innerExpr)) {
231
- return false; // Invalid sub-expression
232
- }
233
-
234
- // Replace the validated sub-expression with a placeholder that we know is valid
235
- expr = expr.replace(match[0], "π");
236
- }
237
-
238
- // Validate the remaining expression (without parentheses)
239
- const sign = "[+-]?";
240
- const number = "((\\d+(\\.\\d*)?))"; // Matches integers and decimals
241
- const pi = "(?i:π)"; // Matches π
242
- const value = `${sign}(${number}|${pi})`; // Matches a signed number or π
243
- const operator = "[+\\-*/]"; // Matches arithmetic operators
244
- const expressionRegex = new RegExp(
245
- `^${value}(\\s*${operator}\\s*${value})*$`,
246
- );
247
-
248
- return expressionRegex.test(expr);
249
- };
250
-
251
- return validateParentheses(input) && validate(input);
252
- };
253
-
254
192
  /**
255
193
  * Create a context menu item
256
194
  * @param text - The text to display in the menu item
@@ -316,12 +254,9 @@ const _createInputPrompt = (
316
254
  okButton.classList.add("prompt-button");
317
255
  okButton.textContent = "OK";
318
256
 
319
- // Function to replace "pi" with "π" (case-insensitive)
320
- const replacePiWithSymbol = (input: string) => input.replace(/pi/gi, "π");
321
-
322
257
  // Function to validate input and toggle the OK button
323
258
  const validateAndToggleOkButton = () => {
324
- const processedInput = replacePiWithSymbol(inputElem.value.trim());
259
+ const processedInput = normalizeAngleExpression(inputElem.value);
325
260
  const isValid = validateInput(processedInput);
326
261
  okButton.disabled = !isValid;
327
262
  };
@@ -337,9 +272,9 @@ const _createInputPrompt = (
337
272
  }
338
273
  });
339
274
 
340
- okButton.disabled = !validateInput(replacePiWithSymbol(defaultValue.trim()));
275
+ okButton.disabled = !validateInput(normalizeAngleExpression(defaultValue));
341
276
  okButton.addEventListener("click", () => {
342
- callback(replacePiWithSymbol(inputElem.value.trim()));
277
+ callback(normalizeAngleExpression(inputElem.value));
343
278
  document.body.removeChild(overlay);
344
279
  document.removeEventListener("keydown", handleGlobalKeyDown, true);
345
280
  });
@@ -1,7 +1,13 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
3
 
4
- import { ComponentGrid, Operation, Qubit, Unitary } from "./circuit.js";
4
+ import {
5
+ Circuit,
6
+ ComponentGrid,
7
+ Operation,
8
+ Qubit,
9
+ Unitary,
10
+ } from "./circuit.js";
5
11
  import { Sqore } from "./sqore.js";
6
12
  import { toolboxGateDictionary } from "./panel.js";
7
13
  import {
@@ -39,6 +45,7 @@ import {
39
45
  import { getOperationRegisters } from "../../src/utils.js";
40
46
 
41
47
  let events: CircuitEvents | null = null;
48
+ let currentCircuitSvg: SVGElement | null = null;
42
49
 
43
50
  /**
44
51
  * Creates and attaches the events that allow editing of the circuit.
@@ -55,6 +62,26 @@ const enableEvents = (
55
62
  events.dispose();
56
63
  }
57
64
  events = new CircuitEvents(container, sqore, useRefresh);
65
+
66
+ // Track which rendered SVG the current `events` instance is associated with.
67
+ // This lets other modules avoid reading a stale model during a re-render where
68
+ // the SVG has been replaced but `enableEvents` hasn't run yet.
69
+ currentCircuitSvg = container.querySelector("svg.qviz") as SVGElement | null;
70
+
71
+ // Signal that the circuit model (events + model snapshot) is now ready.
72
+ // The state visualization uses this to re-render without relying on polling.
73
+ try {
74
+ const CustomEventCtor = (globalThis as any).CustomEvent as
75
+ | (new (type: string, init?: CustomEventInit) => CustomEvent)
76
+ | undefined;
77
+ if (CustomEventCtor && typeof container.dispatchEvent === "function") {
78
+ container.dispatchEvent(
79
+ new CustomEventCtor("qsharp:circuit:modelReady", { bubbles: true }),
80
+ );
81
+ }
82
+ } catch {
83
+ // ignore
84
+ }
58
85
  };
59
86
 
60
87
  class CircuitEvents {
@@ -1062,3 +1089,16 @@ const _createConfirmPrompt = (
1062
1089
  };
1063
1090
 
1064
1091
  export { enableEvents, CircuitEvents };
1092
+
1093
+ // Provide access to the current circuit model, but only if it matches the
1094
+ // currently-rendered SVG element. This prevents state visualization from
1095
+ // computing against the previous render's model during a re-render.
1096
+ export function getCurrentCircuitModel(
1097
+ expectedSvg?: SVGElement | null,
1098
+ ): Circuit | null {
1099
+ if (events == null) return null;
1100
+ if (expectedSvg && currentCircuitSvg && expectedSvg !== currentCircuitSvg) {
1101
+ return null;
1102
+ }
1103
+ return { qubits: events.qubits, componentGrid: events.componentGrid };
1104
+ }
@@ -45,6 +45,7 @@ const formatInputs = (
45
45
  // ╎╎ ┌─┐ ╎╎
46
46
  // ───┼┼─│X│─┼┼──
47
47
  // ╎╎ └╥┘ ╎╎
48
+ // ╎╎ ║ ╎╎
48
49
  // ╎╎ ╚══╪╪══
49
50
  // ╎╎ ╎╎
50
51
  // ╎└╌╌╌╌╌┘╎
@@ -63,6 +64,7 @@ const formatInputs = (
63
64
  // ╎╎ ┌─┐ ╎╎
64
65
  // ───┼┼─│X│─┼┼──
65
66
  // ╎╎ └╥┘ ╎╎
67
+ // ╎╎ ║ ╎╎
66
68
  // ╎╎ ╚══╪╪══
67
69
  // ╎╎ ╎╎
68
70
  // ╎└╌╌╌╌╌┘╎
@@ -76,6 +78,7 @@ const formatInputs = (
76
78
  // ╎╎ ┌─┐ ╎╎
77
79
  // currY -> ───┼┼─│X│─┼┼──
78
80
  // ╎╎ └╥┘ ╎╎
81
+ // ╎╎ ║ ╎╎
79
82
  // ╎╎ ╚══╪╪══
80
83
  // ╎╎ ╎╎
81
84
  // ╎└╌╌╌╌╌┘╎
@@ -95,14 +98,15 @@ const formatInputs = (
95
98
  y: currY,
96
99
  };
97
100
 
98
- currY += gateHeight / 2;
101
+ currY += gatePadding + gateHeight / 2;
99
102
 
100
103
  // ┌╌╌╌╌╌╌╌┐
101
104
  // ╎┌╌╌╌╌╌┐╎
102
105
  // ╎╎ ╎╎
103
106
  // ╎╎ ┌─┐ ╎╎
104
107
  // ───┼┼─│X│─┼┼──
105
- // currY -> ╎╎ └╥┘ ╎╎
108
+ // ╎╎ └╥┘ ╎╎
109
+ // currY -> ╎╎ ║ ╎╎
106
110
  // ╎╎ ╚══╪╪══
107
111
  // ╎╎ ╎╎
108
112
  // ╎└╌╌╌╌╌┘╎
@@ -111,8 +115,8 @@ const formatInputs = (
111
115
  // Increment current height by classical register height for attached classical registers
112
116
 
113
117
  // Add classical wires
114
- registers[id].children = Array.from(Array(numResults), () => {
115
- currY += classicalRegHeight;
118
+ registers[id].children = Array.from(Array(numResults ?? 0), () => {
119
+ currY += gateHeight / 2 + gatePadding;
116
120
 
117
121
  // ┌╌╌╌╌╌╌╌┐
118
122
  // ╎┌╌╌╌╌╌┐╎
@@ -120,6 +124,7 @@ const formatInputs = (
120
124
  // ╎╎ ┌─┐ ╎╎
121
125
  // ───┼┼─│X│─┼┼──
122
126
  // ╎╎ └╥┘ ╎╎
127
+ // ╎╎ ║ ╎╎
123
128
  // currY -> ╎╎ ╚══╪╪══
124
129
  // ╎╎ ╎╎
125
130
  // ╎└╌╌╌╌╌┘╎
@@ -129,17 +134,19 @@ const formatInputs = (
129
134
  type: RegisterType.Classical,
130
135
  y: currY,
131
136
  };
137
+
138
+ currY += gateHeight / 2 + gatePadding;
139
+
132
140
  return clsReg;
133
141
  });
134
142
 
135
- currY += gatePadding + gateHeight / 2;
136
-
137
143
  // ┌╌╌╌╌╌╌╌┐
138
144
  // ╎┌╌╌╌╌╌┐╎
139
145
  // ╎╎ ╎╎
140
146
  // ╎╎ ┌─┐ ╎╎
141
147
  // ───┼┼─│X│─┼┼──
142
148
  // ╎╎ └╥┘ ╎╎
149
+ // ╎╎ ║ ╎╎
143
150
  // ╎╎ ╚══╪╪══
144
151
  // currY -> ╎╎ ╎╎
145
152
  // ╎└╌╌╌╌╌┘╎
@@ -155,6 +162,7 @@ const formatInputs = (
155
162
  // ╎╎ └╥┘ ╎╎
156
163
  // ╎╎ ║ ╎╎
157
164
  // ╎╎ ╚══╪╪══
165
+ // ╎╎ ╎╎
158
166
  // ╎└╌╌╌╌╌┘╎
159
167
  // └╌╌╌╌╌╌╌┘
160
168
  // currY ->
@@ -9,10 +9,16 @@ import { CircuitGroup } from "./circuit.js";
9
9
  *
10
10
  * @param circuitGroup Group of circuits to be visualized.
11
11
  * @param container HTML element for rendering visualization into.
12
- * @param renderDepth Initial layer depth at which to render gates.
13
- * @param isEditable Whether the circuit is editable.
14
- * @param editCallback Callback function to be called when the circuit is edited.
15
- * @param runCallback Callback function to be called when the circuit is run.
12
+ * @param options Rendering/interaction options.
13
+ * - `renderDepth`: Initial layer depth at which to render gates.
14
+ * - `renderLocations`: Callback to generate links for source locations.
15
+ * - `editor`: When provided, enables editing behaviors and requires:
16
+ * - `editCallback`: Called when the circuit is edited.
17
+ * - `runCallback` (optional): When provided, enables the Run button.
18
+ * - `computeStateVizColumnsForCircuitModel` (optional): When provided,
19
+ * delegates async state visualization computation to the host, which
20
+ * is necessary for large circuits and/or when using a Web Worker (e.g. in VS Code).
21
+ * When omitted, state visualization will be computed on the main thread.
16
22
  */
17
23
  export const draw = (
18
24
  circuitGroup: CircuitGroup,
@@ -23,6 +29,8 @@ export const draw = (
23
29
  sqore.draw(container);
24
30
  };
25
31
 
32
+ export type { DrawOptions, EditorHandlers } from "./sqore.js";
33
+
26
34
  // Export types
27
35
  export type {
28
36
  CircuitGroup,