qsharp-lang 1.22.4-dev → 1.23.0

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 (328) hide show
  1. package/dist/data-structures/circuit.d.ts +6 -1
  2. package/docs/Microsoft.Quantum.Core/IsRangeEmpty.md +1 -1
  3. package/docs/Microsoft.Quantum.Core/Length.md +1 -1
  4. package/docs/Microsoft.Quantum.Core/RangeEnd.md +1 -1
  5. package/docs/Microsoft.Quantum.Core/RangeStart.md +1 -1
  6. package/docs/Microsoft.Quantum.Core/Repeated.md +1 -1
  7. package/docs/Microsoft.Quantum.Core/index.md +1 -1
  8. package/docs/Std.Arithmetic/AddLE.md +1 -1
  9. package/docs/Std.Arithmetic/ApplyIfEqualL.md +1 -1
  10. package/docs/Std.Arithmetic/ApplyIfEqualLE.md +1 -1
  11. package/docs/Std.Arithmetic/ApplyIfGreaterL.md +1 -1
  12. package/docs/Std.Arithmetic/ApplyIfGreaterLE.md +1 -1
  13. package/docs/Std.Arithmetic/ApplyIfGreaterOrEqualL.md +1 -1
  14. package/docs/Std.Arithmetic/ApplyIfGreaterOrEqualLE.md +1 -1
  15. package/docs/Std.Arithmetic/ApplyIfLessL.md +1 -1
  16. package/docs/Std.Arithmetic/ApplyIfLessLE.md +1 -1
  17. package/docs/Std.Arithmetic/ApplyIfLessOrEqualL.md +1 -1
  18. package/docs/Std.Arithmetic/ApplyIfLessOrEqualLE.md +1 -1
  19. package/docs/Std.Arithmetic/FourierTDIncByLE.md +1 -1
  20. package/docs/Std.Arithmetic/IncByI.md +1 -1
  21. package/docs/Std.Arithmetic/IncByIUsingIncByLE.md +1 -1
  22. package/docs/Std.Arithmetic/IncByL.md +1 -1
  23. package/docs/Std.Arithmetic/IncByLE.md +1 -1
  24. package/docs/Std.Arithmetic/IncByLEUsingAddLE.md +1 -1
  25. package/docs/Std.Arithmetic/IncByLUsingIncByLE.md +1 -1
  26. package/docs/Std.Arithmetic/LookAheadDKRSAddLE.md +1 -1
  27. package/docs/Std.Arithmetic/MAJ.md +1 -1
  28. package/docs/Std.Arithmetic/ReflectAboutInteger.md +1 -1
  29. package/docs/Std.Arithmetic/RippleCarryCGAddLE.md +1 -1
  30. package/docs/Std.Arithmetic/RippleCarryCGIncByLE.md +1 -1
  31. package/docs/Std.Arithmetic/RippleCarryTTKIncByLE.md +1 -1
  32. package/docs/Std.Arithmetic/index.md +1 -1
  33. package/docs/Std.Arrays/All.md +1 -1
  34. package/docs/Std.Arrays/Any.md +1 -1
  35. package/docs/Std.Arrays/Chunks.md +1 -1
  36. package/docs/Std.Arrays/CircularlyShifted.md +1 -1
  37. package/docs/Std.Arrays/ColumnAt.md +1 -1
  38. package/docs/Std.Arrays/Count.md +1 -1
  39. package/docs/Std.Arrays/Diagonal.md +1 -1
  40. package/docs/Std.Arrays/DrawMany.md +1 -1
  41. package/docs/Std.Arrays/Enumerated.md +1 -1
  42. package/docs/Std.Arrays/Excluding.md +1 -1
  43. package/docs/Std.Arrays/Filtered.md +1 -1
  44. package/docs/Std.Arrays/FlatMapped.md +1 -1
  45. package/docs/Std.Arrays/Flattened.md +1 -1
  46. package/docs/Std.Arrays/Fold.md +1 -1
  47. package/docs/Std.Arrays/ForEach.md +1 -1
  48. package/docs/Std.Arrays/Head.md +1 -1
  49. package/docs/Std.Arrays/HeadAndRest.md +1 -1
  50. package/docs/Std.Arrays/IndexOf.md +1 -1
  51. package/docs/Std.Arrays/IndexRange.md +1 -1
  52. package/docs/Std.Arrays/Interleaved.md +1 -1
  53. package/docs/Std.Arrays/IsEmpty.md +1 -1
  54. package/docs/Std.Arrays/IsRectangularArray.md +1 -1
  55. package/docs/Std.Arrays/IsSorted.md +1 -1
  56. package/docs/Std.Arrays/IsSquareArray.md +1 -1
  57. package/docs/Std.Arrays/Mapped.md +1 -1
  58. package/docs/Std.Arrays/MappedByIndex.md +1 -1
  59. package/docs/Std.Arrays/MappedOverRange.md +1 -1
  60. package/docs/Std.Arrays/Most.md +1 -1
  61. package/docs/Std.Arrays/MostAndTail.md +1 -1
  62. package/docs/Std.Arrays/Padded.md +1 -1
  63. package/docs/Std.Arrays/Partitioned.md +1 -1
  64. package/docs/Std.Arrays/Rest.md +1 -1
  65. package/docs/Std.Arrays/Reversed.md +1 -1
  66. package/docs/Std.Arrays/SequenceI.md +1 -1
  67. package/docs/Std.Arrays/SequenceL.md +1 -1
  68. package/docs/Std.Arrays/Sorted.md +1 -1
  69. package/docs/Std.Arrays/Subarray.md +1 -1
  70. package/docs/Std.Arrays/Swapped.md +1 -1
  71. package/docs/Std.Arrays/Tail.md +1 -1
  72. package/docs/Std.Arrays/Transposed.md +1 -1
  73. package/docs/Std.Arrays/Unzipped.md +1 -1
  74. package/docs/Std.Arrays/Where.md +1 -1
  75. package/docs/Std.Arrays/Windows.md +1 -1
  76. package/docs/Std.Arrays/Zipped.md +1 -1
  77. package/docs/Std.Arrays/index.md +1 -1
  78. package/docs/Std.Canon/ApplyCNOTChain.md +1 -1
  79. package/docs/Std.Canon/ApplyControlledOnBitString.md +1 -1
  80. package/docs/Std.Canon/ApplyControlledOnInt.md +1 -1
  81. package/docs/Std.Canon/ApplyOperationPowerA.md +1 -1
  82. package/docs/Std.Canon/ApplyOperationPowerCA.md +1 -1
  83. package/docs/Std.Canon/ApplyP.md +1 -1
  84. package/docs/Std.Canon/ApplyPauli.md +1 -1
  85. package/docs/Std.Canon/ApplyPauliFromBitString.md +1 -1
  86. package/docs/Std.Canon/ApplyPauliFromInt.md +1 -1
  87. package/docs/Std.Canon/ApplyQFT.md +1 -1
  88. package/docs/Std.Canon/ApplyQPE.md +1 -1
  89. package/docs/Std.Canon/ApplyToEach.md +1 -1
  90. package/docs/Std.Canon/ApplyToEachA.md +1 -1
  91. package/docs/Std.Canon/ApplyToEachC.md +1 -1
  92. package/docs/Std.Canon/ApplyToEachCA.md +1 -1
  93. package/docs/Std.Canon/ApplyXorInPlace.md +1 -1
  94. package/docs/Std.Canon/ApplyXorInPlaceL.md +1 -1
  95. package/docs/Std.Canon/CX.md +1 -1
  96. package/docs/Std.Canon/CY.md +1 -1
  97. package/docs/Std.Canon/CZ.md +1 -1
  98. package/docs/Std.Canon/Fst.md +1 -1
  99. package/docs/Std.Canon/MapPauliAxis.md +1 -1
  100. package/docs/Std.Canon/Relabel.md +1 -1
  101. package/docs/Std.Canon/Snd.md +1 -1
  102. package/docs/Std.Canon/SwapReverseRegister.md +1 -1
  103. package/docs/Std.Canon/index.md +1 -1
  104. package/docs/Std.Convert/BigIntAsBoolArray.md +1 -1
  105. package/docs/Std.Convert/BigIntAsInt.md +1 -1
  106. package/docs/Std.Convert/BoolArrayAsBigInt.md +1 -1
  107. package/docs/Std.Convert/BoolArrayAsInt.md +1 -1
  108. package/docs/Std.Convert/BoolArrayAsResultArray.md +1 -1
  109. package/docs/Std.Convert/BoolAsResult.md +1 -1
  110. package/docs/Std.Convert/ComplexAsComplexPolar.md +1 -1
  111. package/docs/Std.Convert/ComplexPolarAsComplex.md +1 -1
  112. package/docs/Std.Convert/DoubleAsStringWithPrecision.md +1 -1
  113. package/docs/Std.Convert/IntAsBigInt.md +1 -1
  114. package/docs/Std.Convert/IntAsBoolArray.md +1 -1
  115. package/docs/Std.Convert/IntAsDouble.md +1 -1
  116. package/docs/Std.Convert/ResultArrayAsBoolArray.md +1 -1
  117. package/docs/Std.Convert/ResultArrayAsInt.md +1 -1
  118. package/docs/Std.Convert/ResultAsBool.md +1 -1
  119. package/docs/Std.Convert/index.md +1 -1
  120. package/docs/Std.Core/Complex.md +1 -1
  121. package/docs/Std.Core/Length.md +1 -1
  122. package/docs/Std.Core/Repeated.md +1 -1
  123. package/docs/Std.Core/index.md +1 -1
  124. package/docs/Std.Diagnostics/ApplyIdleNoise.md +1 -1
  125. package/docs/Std.Diagnostics/BitFlipNoise.md +1 -1
  126. package/docs/Std.Diagnostics/CheckAllZero.md +1 -1
  127. package/docs/Std.Diagnostics/CheckOperationsAreEqual.md +1 -1
  128. package/docs/Std.Diagnostics/CheckZero.md +1 -1
  129. package/docs/Std.Diagnostics/ConfigurePauliNoise.md +1 -1
  130. package/docs/Std.Diagnostics/ConfigureQubitLoss.md +1 -1
  131. package/docs/Std.Diagnostics/DepolarizingNoise.md +1 -1
  132. package/docs/Std.Diagnostics/DumpMachine.md +1 -1
  133. package/docs/Std.Diagnostics/DumpOperation.md +1 -1
  134. package/docs/Std.Diagnostics/DumpRegister.md +1 -1
  135. package/docs/Std.Diagnostics/Fact.md +1 -1
  136. package/docs/Std.Diagnostics/NoNoise.md +1 -1
  137. package/docs/Std.Diagnostics/PhaseFlipNoise.md +1 -1
  138. package/docs/Std.Diagnostics/StartCountingFunction.md +1 -1
  139. package/docs/Std.Diagnostics/StartCountingOperation.md +1 -1
  140. package/docs/Std.Diagnostics/StartCountingQubits.md +1 -1
  141. package/docs/Std.Diagnostics/StopCountingFunction.md +1 -1
  142. package/docs/Std.Diagnostics/StopCountingOperation.md +1 -1
  143. package/docs/Std.Diagnostics/StopCountingQubits.md +1 -1
  144. package/docs/Std.Diagnostics/index.md +1 -1
  145. package/docs/Std.Intrinsic/AND.md +1 -1
  146. package/docs/Std.Intrinsic/ApplyUnitary.md +1 -1
  147. package/docs/Std.Intrinsic/CCNOT.md +1 -1
  148. package/docs/Std.Intrinsic/CNOT.md +1 -1
  149. package/docs/Std.Intrinsic/Exp.md +1 -1
  150. package/docs/Std.Intrinsic/H.md +1 -1
  151. package/docs/Std.Intrinsic/I.md +1 -1
  152. package/docs/Std.Intrinsic/M.md +1 -1
  153. package/docs/Std.Intrinsic/Measure.md +1 -1
  154. package/docs/Std.Intrinsic/Message.md +1 -1
  155. package/docs/Std.Intrinsic/R.md +1 -1
  156. package/docs/Std.Intrinsic/R1.md +1 -1
  157. package/docs/Std.Intrinsic/R1Frac.md +1 -1
  158. package/docs/Std.Intrinsic/RFrac.md +1 -1
  159. package/docs/Std.Intrinsic/Reset.md +1 -1
  160. package/docs/Std.Intrinsic/ResetAll.md +1 -1
  161. package/docs/Std.Intrinsic/Rx.md +1 -1
  162. package/docs/Std.Intrinsic/Rxx.md +1 -1
  163. package/docs/Std.Intrinsic/Ry.md +1 -1
  164. package/docs/Std.Intrinsic/Ryy.md +1 -1
  165. package/docs/Std.Intrinsic/Rz.md +1 -1
  166. package/docs/Std.Intrinsic/Rzz.md +1 -1
  167. package/docs/Std.Intrinsic/S.md +1 -1
  168. package/docs/Std.Intrinsic/SWAP.md +1 -1
  169. package/docs/Std.Intrinsic/SX.md +1 -1
  170. package/docs/Std.Intrinsic/T.md +1 -1
  171. package/docs/Std.Intrinsic/X.md +1 -1
  172. package/docs/Std.Intrinsic/Y.md +1 -1
  173. package/docs/Std.Intrinsic/Z.md +1 -1
  174. package/docs/Std.Intrinsic/index.md +1 -1
  175. package/docs/Std.Logical/Xor.md +1 -1
  176. package/docs/Std.Logical/index.md +1 -1
  177. package/docs/Std.Math/AbsComplex.md +1 -1
  178. package/docs/Std.Math/AbsComplexPolar.md +1 -1
  179. package/docs/Std.Math/AbsD.md +1 -1
  180. package/docs/Std.Math/AbsI.md +1 -1
  181. package/docs/Std.Math/AbsL.md +1 -1
  182. package/docs/Std.Math/AbsSquaredComplex.md +1 -1
  183. package/docs/Std.Math/AbsSquaredComplexPolar.md +1 -1
  184. package/docs/Std.Math/ApproximateFactorial.md +1 -1
  185. package/docs/Std.Math/ArcCos.md +1 -1
  186. package/docs/Std.Math/ArcCosh.md +1 -1
  187. package/docs/Std.Math/ArcSin.md +1 -1
  188. package/docs/Std.Math/ArcSinh.md +1 -1
  189. package/docs/Std.Math/ArcTan.md +1 -1
  190. package/docs/Std.Math/ArcTan2.md +1 -1
  191. package/docs/Std.Math/ArcTanh.md +1 -1
  192. package/docs/Std.Math/ArgComplex.md +1 -1
  193. package/docs/Std.Math/ArgComplexPolar.md +1 -1
  194. package/docs/Std.Math/Binom.md +1 -1
  195. package/docs/Std.Math/BitSizeI.md +1 -1
  196. package/docs/Std.Math/BitSizeL.md +1 -1
  197. package/docs/Std.Math/Ceiling.md +1 -1
  198. package/docs/Std.Math/Complex.md +1 -1
  199. package/docs/Std.Math/ComplexPolar.md +1 -1
  200. package/docs/Std.Math/ContinuedFractionConvergentI.md +1 -1
  201. package/docs/Std.Math/ContinuedFractionConvergentL.md +1 -1
  202. package/docs/Std.Math/Cos.md +1 -1
  203. package/docs/Std.Math/Cosh.md +1 -1
  204. package/docs/Std.Math/DivRemI.md +1 -1
  205. package/docs/Std.Math/DivRemL.md +1 -1
  206. package/docs/Std.Math/DividedByC.md +1 -1
  207. package/docs/Std.Math/DividedByCP.md +1 -1
  208. package/docs/Std.Math/E.md +1 -1
  209. package/docs/Std.Math/ExpModI.md +1 -1
  210. package/docs/Std.Math/ExpModL.md +1 -1
  211. package/docs/Std.Math/ExtendedGreatestCommonDivisorI.md +1 -1
  212. package/docs/Std.Math/ExtendedGreatestCommonDivisorL.md +1 -1
  213. package/docs/Std.Math/FactorialI.md +1 -1
  214. package/docs/Std.Math/FactorialL.md +1 -1
  215. package/docs/Std.Math/Floor.md +1 -1
  216. package/docs/Std.Math/GreatestCommonDivisorI.md +1 -1
  217. package/docs/Std.Math/GreatestCommonDivisorL.md +1 -1
  218. package/docs/Std.Math/HammingWeightI.md +1 -1
  219. package/docs/Std.Math/InverseModI.md +1 -1
  220. package/docs/Std.Math/InverseModL.md +1 -1
  221. package/docs/Std.Math/IsCoprimeI.md +1 -1
  222. package/docs/Std.Math/IsCoprimeL.md +1 -1
  223. package/docs/Std.Math/IsInfinite.md +1 -1
  224. package/docs/Std.Math/IsNaN.md +1 -1
  225. package/docs/Std.Math/LargestFixedPoint.md +1 -1
  226. package/docs/Std.Math/Lg.md +1 -1
  227. package/docs/Std.Math/Log.md +1 -1
  228. package/docs/Std.Math/Log10.md +1 -1
  229. package/docs/Std.Math/LogFactorialD.md +1 -1
  230. package/docs/Std.Math/LogGammaD.md +1 -1
  231. package/docs/Std.Math/LogOf2.md +1 -1
  232. package/docs/Std.Math/Max.md +1 -1
  233. package/docs/Std.Math/MaxD.md +1 -1
  234. package/docs/Std.Math/MaxI.md +1 -1
  235. package/docs/Std.Math/MaxL.md +1 -1
  236. package/docs/Std.Math/Min.md +1 -1
  237. package/docs/Std.Math/MinD.md +1 -1
  238. package/docs/Std.Math/MinI.md +1 -1
  239. package/docs/Std.Math/MinL.md +1 -1
  240. package/docs/Std.Math/MinusC.md +1 -1
  241. package/docs/Std.Math/MinusCP.md +1 -1
  242. package/docs/Std.Math/ModulusI.md +1 -1
  243. package/docs/Std.Math/ModulusL.md +1 -1
  244. package/docs/Std.Math/NegationC.md +1 -1
  245. package/docs/Std.Math/NegationCP.md +1 -1
  246. package/docs/Std.Math/PI.md +1 -1
  247. package/docs/Std.Math/PNorm.md +1 -1
  248. package/docs/Std.Math/PNormalized.md +1 -1
  249. package/docs/Std.Math/PlusC.md +1 -1
  250. package/docs/Std.Math/PlusCP.md +1 -1
  251. package/docs/Std.Math/PowC.md +1 -1
  252. package/docs/Std.Math/PowCP.md +1 -1
  253. package/docs/Std.Math/RealMod.md +1 -1
  254. package/docs/Std.Math/Round.md +1 -1
  255. package/docs/Std.Math/RoundHalfAwayFromZero.md +1 -1
  256. package/docs/Std.Math/SignD.md +1 -1
  257. package/docs/Std.Math/SignI.md +1 -1
  258. package/docs/Std.Math/SignL.md +1 -1
  259. package/docs/Std.Math/Sin.md +1 -1
  260. package/docs/Std.Math/Sinh.md +1 -1
  261. package/docs/Std.Math/SmallestFixedPoint.md +1 -1
  262. package/docs/Std.Math/Sqrt.md +1 -1
  263. package/docs/Std.Math/SquaredNorm.md +1 -1
  264. package/docs/Std.Math/Tan.md +1 -1
  265. package/docs/Std.Math/Tanh.md +1 -1
  266. package/docs/Std.Math/TimesC.md +1 -1
  267. package/docs/Std.Math/TimesCP.md +1 -1
  268. package/docs/Std.Math/TrailingZeroCountI.md +1 -1
  269. package/docs/Std.Math/TrailingZeroCountL.md +1 -1
  270. package/docs/Std.Math/Truncate.md +1 -1
  271. package/docs/Std.Math/index.md +1 -1
  272. package/docs/Std.Measurement/IsLossResult.md +1 -1
  273. package/docs/Std.Measurement/MResetEachZ.md +1 -1
  274. package/docs/Std.Measurement/MResetX.md +1 -1
  275. package/docs/Std.Measurement/MResetY.md +1 -1
  276. package/docs/Std.Measurement/MResetZ.md +1 -1
  277. package/docs/Std.Measurement/MResetZChecked.md +1 -1
  278. package/docs/Std.Measurement/MeasureAllZ.md +1 -1
  279. package/docs/Std.Measurement/MeasureEachZ.md +1 -1
  280. package/docs/Std.Measurement/MeasureInteger.md +1 -1
  281. package/docs/Std.Measurement/index.md +1 -1
  282. package/docs/Std.Random/DrawRandomBool.md +1 -1
  283. package/docs/Std.Random/DrawRandomDouble.md +1 -1
  284. package/docs/Std.Random/DrawRandomInt.md +1 -1
  285. package/docs/Std.Random/index.md +1 -1
  286. package/docs/Std.Range/IsRangeEmpty.md +1 -1
  287. package/docs/Std.Range/RangeEnd.md +1 -1
  288. package/docs/Std.Range/RangeReverse.md +1 -1
  289. package/docs/Std.Range/RangeStart.md +1 -1
  290. package/docs/Std.Range/RangeStep.md +1 -1
  291. package/docs/Std.Range/index.md +1 -1
  292. package/docs/Std.ResourceEstimation/AccountForEstimates.md +1 -1
  293. package/docs/Std.ResourceEstimation/AuxQubitCount.md +1 -1
  294. package/docs/Std.ResourceEstimation/BeginEstimateCaching.md +1 -1
  295. package/docs/Std.ResourceEstimation/BeginRepeatEstimates.md +1 -1
  296. package/docs/Std.ResourceEstimation/CczCount.md +1 -1
  297. package/docs/Std.ResourceEstimation/EnableMemoryComputeArchitecture.md +1 -1
  298. package/docs/Std.ResourceEstimation/EndEstimateCaching.md +1 -1
  299. package/docs/Std.ResourceEstimation/EndRepeatEstimates.md +1 -1
  300. package/docs/Std.ResourceEstimation/LeastFrequentlyUsed.md +1 -1
  301. package/docs/Std.ResourceEstimation/LeastRecentlyUsed.md +1 -1
  302. package/docs/Std.ResourceEstimation/MeasurementCount.md +1 -1
  303. package/docs/Std.ResourceEstimation/PSSPCLayout.md +1 -1
  304. package/docs/Std.ResourceEstimation/RepeatEstimates.md +1 -1
  305. package/docs/Std.ResourceEstimation/RotationCount.md +1 -1
  306. package/docs/Std.ResourceEstimation/RotationDepth.md +1 -1
  307. package/docs/Std.ResourceEstimation/SingleVariant.md +1 -1
  308. package/docs/Std.ResourceEstimation/TCount.md +1 -1
  309. package/docs/Std.ResourceEstimation/index.md +1 -1
  310. package/docs/Std.StatePreparation/ApproximatelyPreparePureStateCP.md +1 -1
  311. package/docs/Std.StatePreparation/PreparePureStateD.md +1 -1
  312. package/docs/Std.StatePreparation/PrepareUniformSuperposition.md +1 -1
  313. package/docs/Std.StatePreparation/index.md +1 -1
  314. package/docs/Std.TableLookup/Select.md +1 -1
  315. package/docs/Std.TableLookup/index.md +1 -1
  316. package/docs/index.md +1 -1
  317. package/lib/nodejs/qsc_wasm.cjs +1 -1
  318. package/lib/nodejs/qsc_wasm.d.cts +2 -1
  319. package/lib/nodejs/qsc_wasm_bg.wasm +0 -0
  320. package/lib/web/qsc_wasm.d.ts +2 -1
  321. package/lib/web/qsc_wasm.js +1 -1
  322. package/lib/web/qsc_wasm_bg.wasm +0 -0
  323. package/package.json +1 -1
  324. package/ux/circuit-vis/events.ts +1 -5
  325. package/ux/circuit-vis/formatters/gateFormatter.ts +1 -1
  326. package/ux/circuit-vis/formatters/registerFormatter.ts +61 -33
  327. package/ux/circuit-vis/process.ts +27 -13
  328. package/ux/circuit-vis/sqore.ts +14 -13
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.ResourceEstimation.SingleVariant
3
3
  title: SingleVariant function
4
4
  description: "Q# SingleVariant function: Used to specify that there's only one execution variant in `BeginEstimateCaching` function"
5
- ms.date: 11/25/2025
5
+ ms.date: 12/09/2025
6
6
  qsharp.kind: function
7
7
  qsharp.package: __Std__
8
8
  qsharp.namespace: Std.ResourceEstimation
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.ResourceEstimation.TCount
3
3
  title: TCount function
4
4
  description: "Q# TCount function: Returns a tuple that can be passed to the `AccountForEstimates` operation to specify that the number of the T gates is equal to the `amount`."
5
- ms.date: 11/25/2025
5
+ ms.date: 12/09/2025
6
6
  qsharp.kind: function
7
7
  qsharp.package: __Std__
8
8
  qsharp.namespace: Std.ResourceEstimation
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.ResourceEstimation-toc
3
3
  title: Std.ResourceEstimation namespace
4
4
  description: Table of contents for the Q# ResourceEstimation namespace
5
- ms.date: 11/25/2025
5
+ ms.date: 12/09/2025
6
6
  ms.topic: landing-page
7
7
  ---
8
8
 
@@ -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: 11/25/2025
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: 11/25/2025
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: 11/25/2025
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-toc
3
3
  title: Std.StatePreparation namespace
4
4
  description: Table of contents for the Q# StatePreparation namespace
5
- ms.date: 11/25/2025
5
+ ms.date: 12/09/2025
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: 11/25/2025
5
+ ms.date: 12/09/2025
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: 11/25/2025
5
+ ms.date: 12/09/2025
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 Azure Quantum Development Kit
4
4
  description: Table of contents for the Q# standard libraries for Azure Quantum Development Kit
5
- ms.date: 11/25/2025
5
+ ms.date: 12/09/2025
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_wrapper986 = function(arg0, arg1, arg2) {
1573
+ module.exports.__wbindgen_closure_wrapper988 = function(arg0, arg1, arg2) {
1574
1574
  const ret = makeMutClosure(arg0, arg1, 333, __wbg_adapter_52);
1575
1575
  return addHeapObject(ret);
1576
1576
  };
@@ -267,9 +267,10 @@ export interface ITestDescriptor {
267
267
  }
268
268
 
269
269
  export interface ICircuitConfig {
270
+ generationMethod: "simulate" | "classicalEval";
270
271
  maxOperations: number;
271
- generationMethod: "simulate" | "classicalEval" ;
272
272
  sourceLocations: boolean;
273
+ groupByScope: boolean;
273
274
  }
274
275
 
275
276
  export interface IDocFile {
Binary file
@@ -267,9 +267,10 @@ export interface ITestDescriptor {
267
267
  }
268
268
 
269
269
  export interface ICircuitConfig {
270
+ generationMethod: "simulate" | "classicalEval";
270
271
  maxOperations: number;
271
- generationMethod: "simulate" | "classicalEval" ;
272
272
  sourceLocations: boolean;
273
+ groupByScope: boolean;
273
274
  }
274
275
 
275
276
  export interface IDocFile {
@@ -1525,7 +1525,7 @@ function __wbg_get_imports() {
1525
1525
  const ret = false;
1526
1526
  return ret;
1527
1527
  };
1528
- imports.wbg.__wbindgen_closure_wrapper986 = function(arg0, arg1, arg2) {
1528
+ imports.wbg.__wbindgen_closure_wrapper988 = function(arg0, arg1, arg2) {
1529
1529
  const ret = makeMutClosure(arg0, arg1, 333, __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.22.4-dev",
4
+ "version": "1.23.0",
5
5
  "license": "MIT",
6
6
  "engines": {
7
7
  "node": ">=16.17.0"
@@ -170,11 +170,7 @@ class CircuitEvents {
170
170
  this.selectedOperation.controls != null &&
171
171
  this.selectedWire != null
172
172
  ) {
173
- const controlIndex = this.selectedOperation.controls.findIndex(
174
- (control) => control.qubit === this.selectedWire,
175
- );
176
- if (controlIndex !== -1)
177
- this.selectedOperation.controls.splice(controlIndex, 1);
173
+ removeControl(this, this.selectedOperation, this.selectedWire);
178
174
  } else {
179
175
  // Otherwise, remove the selectedOperation
180
176
  removeOperation(this, selectedLocation);
@@ -164,7 +164,7 @@ const _zoomButton = (
164
164
  let { dataAttributes } = renderData;
165
165
  dataAttributes = dataAttributes || {};
166
166
 
167
- const expanded = "expanded" in dataAttributes;
167
+ const expanded = dataAttributes["expanded"] == "true";
168
168
 
169
169
  const x = gateBoundingBoxX + 2;
170
170
  const y = gateBoundingBoxY + 2;
@@ -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 measureGates Array of measurement gate render data.
15
- * @param endX End x coord.
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
- measureGates: GateRenderData[],
22
+ allGates: GateRenderData[],
22
23
  endX: number,
23
24
  ): SVGElement => {
24
- const formattedRegs: SVGElement[] = [];
25
- // Render qubit wires
25
+ const qubitRegs: SVGElement[] = [];
26
+ const classicalRegs: SVGElement[] = [];
26
27
  for (const qId in registers) {
27
- formattedRegs.push(
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
- // Render classical wires
38
- measureGates.forEach(({ type, x, targetsY, controlsY }) => {
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
- // Draw vertical lines
66
- const vLine1: SVGElement = line(
67
- startX + wirePadding,
68
- gateY,
69
- startX + wirePadding,
70
- wireY - wirePadding,
71
- "register-classical",
72
- );
73
- const vLine2: SVGElement = line(
74
- startX - wirePadding,
75
- gateY,
76
- startX - wirePadding,
77
- wireY + wirePadding,
78
- "register-classical",
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
- return group([vLine1, vLine2, hLine1, hLine2]);
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
- _getClassicalRegStart(componentGrid);
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 qubits: Register[];
78
+ let targets: Register[];
79
79
  switch (op.kind) {
80
80
  case "unitary":
81
- qubits = op.targets;
81
+ targets = op.targets;
82
82
  break;
83
83
  case "measurement":
84
- qubits = op.qubits;
84
+ targets = op.qubits;
85
85
  break;
86
86
  case "ket":
87
- qubits = op.targets;
87
+ targets = op.targets;
88
88
  break;
89
89
  }
90
90
 
91
91
  renderData.targetsY = _splitTargetsY(
92
- qubits,
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 _getClassicalRegStart = (
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
  });
@@ -213,7 +219,11 @@ const _opToRenderData = (
213
219
  ),
214
220
  }))
215
221
  .filter((col) => col.components.length > 0);
216
- let childrenInstrs = processOperations(onZeroOps, registers);
222
+ let childrenInstrs = processOperations(
223
+ onZeroOps,
224
+ registers,
225
+ renderLocations,
226
+ );
217
227
  const zeroGates: GateRenderData[][] = childrenInstrs.renderDataArray;
218
228
  const zeroChildWidth: number = childrenInstrs.svgWidth;
219
229
 
@@ -225,7 +235,7 @@ const _opToRenderData = (
225
235
  ),
226
236
  }))
227
237
  .filter((col) => col.components.length > 0);
228
- childrenInstrs = processOperations(onOneOps, registers);
238
+ childrenInstrs = processOperations(onOneOps, registers, renderLocations);
229
239
  const oneGates: GateRenderData[][] = childrenInstrs.renderDataArray;
230
240
  const oneChildWidth: number = childrenInstrs.svgWidth;
231
241
 
@@ -247,7 +257,11 @@ const _opToRenderData = (
247
257
  conditionalRender == ConditionalRender.AsGroup &&
248
258
  (children?.length || 0) > 0
249
259
  ) {
250
- const childrenInstrs = processOperations(children!, registers);
260
+ const childrenInstrs = processOperations(
261
+ children!,
262
+ registers,
263
+ renderLocations,
264
+ );
251
265
  renderData.type = GateType.Group;
252
266
  renderData.children = childrenInstrs.renderDataArray;
253
267
  // _zoomButton function in gateFormatter.ts relies on
@@ -285,8 +299,8 @@ const _opToRenderData = (
285
299
  // Set gate width
286
300
  renderData.width = getGateWidth(renderData);
287
301
 
288
- if (op.source && renderLocations) {
289
- renderData.link = renderLocations([op.source]);
302
+ if (op.metadata?.source && renderLocations) {
303
+ renderData.link = renderLocations([op.metadata.source]);
290
304
  }
291
305
 
292
306
  // Extend existing data attributes with user-provided data attributes
@@ -330,7 +344,7 @@ const _getRegY = (reg: Register, registers: RegisterMap): number => {
330
344
  /**
331
345
  * Splits `targets` if non-adjacent or intersected by classical registers.
332
346
  *
333
- * @param targets Target qubit registers.
347
+ * @param targets Target registers (can be qubit or classical).
334
348
  * @param classicalRegY y coords of classical registers overlapping current column.
335
349
  * @param registers Mapping from register qubit IDs to register render data.
336
350
  *
@@ -14,7 +14,7 @@ import {
14
14
  Column,
15
15
  SourceLocation,
16
16
  } from "./circuit.js";
17
- import { GateRenderData, GateType } from "./gateRenderData.js";
17
+ import { GateRenderData } from "./gateRenderData.js";
18
18
  import {
19
19
  gateHeight,
20
20
  minGateWidth,
@@ -59,6 +59,7 @@ export type DrawOptions = {
59
59
  export class Sqore {
60
60
  circuit: Circuit;
61
61
  gateRegistry: GateRegistry = {};
62
+ renderDepth: number = this.options.renderDepth ?? 0;
62
63
  /**
63
64
  * Initializes Sqore object.
64
65
  *
@@ -106,7 +107,6 @@ export class Sqore {
106
107
  // Create copy of circuit to prevent mutation
107
108
  const _circuit: Circuit =
108
109
  circuit ?? JSON.parse(JSON.stringify(this.circuit));
109
- const renderDepth = this.options.renderDepth || 0;
110
110
 
111
111
  // Assign unique locations to each operation
112
112
  _circuit.componentGrid.forEach((col, colIndex) =>
@@ -118,7 +118,7 @@ export class Sqore {
118
118
  // Render operations starting at given depth
119
119
  _circuit.componentGrid = this.selectOpsAtDepth(
120
120
  _circuit.componentGrid,
121
- renderDepth,
121
+ this.renderDepth,
122
122
  );
123
123
 
124
124
  // If only one top-level operation, expand automatically:
@@ -129,7 +129,9 @@ export class Sqore {
129
129
  Object.prototype.hasOwnProperty.call(
130
130
  _circuit.componentGrid[0].components[0].dataAttributes,
131
131
  "location",
132
- )
132
+ ) &&
133
+ _circuit.componentGrid[0].components[0].dataAttributes["expanded"] !==
134
+ "false"
133
135
  ) {
134
136
  const location: string =
135
137
  _circuit.componentGrid[0].components[0].dataAttributes["location"];
@@ -216,12 +218,11 @@ export class Sqore {
216
218
  this.options.isEditable ? undefined : this.options.renderLocations,
217
219
  );
218
220
  const formattedGates: SVGElement = formatGates(renderDataArray);
219
- const measureGates: GateRenderData[] = flatten(renderDataArray).filter(
220
- ({ type }) => type === GateType.Measure,
221
- );
221
+
222
+ // Draw the lines that represent qubit and classical wires.
222
223
  const formattedRegs: SVGElement = formatRegisters(
223
224
  registers,
224
- measureGates,
225
+ flatten(renderDataArray),
225
226
  svgWidth,
226
227
  );
227
228
 
@@ -337,11 +338,11 @@ export class Sqore {
337
338
  } else {
338
339
  selectedCol.push(op);
339
340
  }
340
- selectedOps.push({ components: selectedCol });
341
- if (extraCols.length > 0) {
342
- selectedOps.push(...extraCols);
343
- }
344
341
  });
342
+ selectedOps.push({ components: selectedCol });
343
+ if (extraCols.length > 0) {
344
+ selectedOps.push(...extraCols);
345
+ }
345
346
  });
346
347
  return selectedOps;
347
348
  }
@@ -478,7 +479,7 @@ export class Sqore {
478
479
  // Collapse parent gate and its children
479
480
  if (opId.startsWith(parentLoc)) {
480
481
  op.conditionalRender = ConditionalRender.Always;
481
- delete op.dataAttributes["expanded"];
482
+ op.dataAttributes["expanded"] = "false";
482
483
  }
483
484
  }),
484
485
  );