qsharp-lang 1.9.2-dev → 1.9.4-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 (272) hide show
  1. package/dist/compiler/compiler.d.ts +2 -0
  2. package/dist/compiler/compiler.js +4 -0
  3. package/dist/katas-content.generated.js +4 -4
  4. package/dist/katas-content.generated.md.js +4 -4
  5. package/docs/Microsoft.Quantum.Core/Length.md +1 -1
  6. package/docs/Microsoft.Quantum.Core/Repeated.md +1 -1
  7. package/docs/Microsoft.Quantum.Unstable.Arithmetic/AddLE.md +1 -1
  8. package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfEqualL.md +1 -1
  9. package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfEqualLE.md +1 -1
  10. package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfGreaterL.md +1 -1
  11. package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfGreaterLE.md +1 -1
  12. package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfGreaterOrEqualL.md +1 -1
  13. package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfGreaterOrEqualLE.md +1 -1
  14. package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfLessL.md +1 -1
  15. package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfLessLE.md +1 -1
  16. package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfLessOrEqualL.md +1 -1
  17. package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfLessOrEqualLE.md +1 -1
  18. package/docs/Microsoft.Quantum.Unstable.Arithmetic/FourierTDIncByLE.md +1 -1
  19. package/docs/Microsoft.Quantum.Unstable.Arithmetic/IncByI.md +1 -1
  20. package/docs/Microsoft.Quantum.Unstable.Arithmetic/IncByIUsingIncByLE.md +1 -1
  21. package/docs/Microsoft.Quantum.Unstable.Arithmetic/IncByL.md +1 -1
  22. package/docs/Microsoft.Quantum.Unstable.Arithmetic/IncByLE.md +1 -1
  23. package/docs/Microsoft.Quantum.Unstable.Arithmetic/IncByLEUsingAddLE.md +1 -1
  24. package/docs/Microsoft.Quantum.Unstable.Arithmetic/IncByLUsingIncByLE.md +1 -1
  25. package/docs/Microsoft.Quantum.Unstable.Arithmetic/LookAheadDKRSAddLE.md +1 -1
  26. package/docs/Microsoft.Quantum.Unstable.Arithmetic/MAJ.md +1 -1
  27. package/docs/Microsoft.Quantum.Unstable.Arithmetic/ReflectAboutInteger.md +1 -1
  28. package/docs/Microsoft.Quantum.Unstable.Arithmetic/RippleCarryCGAddLE.md +1 -1
  29. package/docs/Microsoft.Quantum.Unstable.Arithmetic/RippleCarryCGIncByLE.md +1 -1
  30. package/docs/Microsoft.Quantum.Unstable.Arithmetic/RippleCarryTTKIncByLE.md +1 -1
  31. package/docs/Microsoft.Quantum.Unstable.StatePreparation/ApproximatelyPreparePureStateCP.md +1 -1
  32. package/docs/Microsoft.Quantum.Unstable.StatePreparation/PreparePureStateD.md +1 -1
  33. package/docs/Microsoft.Quantum.Unstable.TableLookup/Select.md +1 -1
  34. package/docs/Std.Arrays/All.md +1 -1
  35. package/docs/Std.Arrays/Any.md +3 -2
  36. package/docs/Std.Arrays/Chunks.md +3 -2
  37. package/docs/Std.Arrays/CircularlyShifted.md +3 -2
  38. package/docs/Std.Arrays/ColumnAt.md +3 -2
  39. package/docs/Std.Arrays/Count.md +3 -2
  40. package/docs/Std.Arrays/Diagonal.md +3 -2
  41. package/docs/Std.Arrays/DrawMany.md +3 -2
  42. package/docs/Std.Arrays/Enumerated.md +3 -2
  43. package/docs/Std.Arrays/Excluding.md +3 -2
  44. package/docs/Std.Arrays/Filtered.md +3 -2
  45. package/docs/Std.Arrays/FlatMapped.md +3 -2
  46. package/docs/Std.Arrays/Flattened.md +3 -2
  47. package/docs/Std.Arrays/Fold.md +3 -2
  48. package/docs/Std.Arrays/ForEach.md +3 -2
  49. package/docs/Std.Arrays/Head.md +3 -2
  50. package/docs/Std.Arrays/HeadAndRest.md +3 -2
  51. package/docs/Std.Arrays/IndexOf.md +3 -2
  52. package/docs/Std.Arrays/IndexRange.md +3 -2
  53. package/docs/Std.Arrays/Interleaved.md +3 -2
  54. package/docs/Std.Arrays/IsEmpty.md +3 -2
  55. package/docs/Std.Arrays/IsRectangularArray.md +3 -2
  56. package/docs/Std.Arrays/IsSorted.md +3 -2
  57. package/docs/Std.Arrays/IsSquareArray.md +3 -2
  58. package/docs/Std.Arrays/Mapped.md +3 -2
  59. package/docs/Std.Arrays/MappedByIndex.md +3 -2
  60. package/docs/Std.Arrays/MappedOverRange.md +3 -2
  61. package/docs/Std.Arrays/Most.md +3 -2
  62. package/docs/Std.Arrays/MostAndTail.md +3 -2
  63. package/docs/Std.Arrays/Padded.md +3 -2
  64. package/docs/Std.Arrays/Partitioned.md +3 -2
  65. package/docs/Std.Arrays/Rest.md +3 -2
  66. package/docs/Std.Arrays/Reversed.md +3 -2
  67. package/docs/Std.Arrays/SequenceI.md +3 -2
  68. package/docs/Std.Arrays/SequenceL.md +3 -2
  69. package/docs/Std.Arrays/Sorted.md +3 -2
  70. package/docs/Std.Arrays/Subarray.md +3 -2
  71. package/docs/Std.Arrays/Swapped.md +3 -2
  72. package/docs/Std.Arrays/Tail.md +3 -2
  73. package/docs/Std.Arrays/Transposed.md +3 -2
  74. package/docs/Std.Arrays/Unzipped.md +3 -2
  75. package/docs/Std.Arrays/Where.md +3 -2
  76. package/docs/Std.Arrays/Windows.md +3 -2
  77. package/docs/Std.Arrays/Zipped.md +3 -2
  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/ApplyP.md +1 -1
  82. package/docs/Std.Canon/ApplyPauli.md +1 -1
  83. package/docs/Std.Canon/ApplyPauliFromBitString.md +1 -1
  84. package/docs/Std.Canon/ApplyPauliFromInt.md +1 -1
  85. package/docs/Std.Canon/ApplyQFT.md +1 -1
  86. package/docs/Std.Canon/ApplyToEach.md +1 -1
  87. package/docs/Std.Canon/ApplyToEachA.md +1 -1
  88. package/docs/Std.Canon/ApplyToEachC.md +1 -1
  89. package/docs/Std.Canon/ApplyToEachCA.md +1 -1
  90. package/docs/Std.Canon/ApplyXorInPlace.md +1 -1
  91. package/docs/Std.Canon/ApplyXorInPlaceL.md +1 -1
  92. package/docs/Std.Canon/CX.md +1 -1
  93. package/docs/Std.Canon/CY.md +1 -1
  94. package/docs/Std.Canon/CZ.md +1 -1
  95. package/docs/Std.Canon/Fst.md +1 -1
  96. package/docs/Std.Canon/Relabel.md +1 -1
  97. package/docs/Std.Canon/Snd.md +1 -1
  98. package/docs/Std.Canon/SwapReverseRegister.md +1 -1
  99. package/docs/Std.Convert/BigIntAsBoolArray.md +3 -2
  100. package/docs/Std.Convert/BoolArrayAsBigInt.md +3 -2
  101. package/docs/Std.Convert/BoolArrayAsInt.md +3 -2
  102. package/docs/Std.Convert/BoolArrayAsResultArray.md +3 -2
  103. package/docs/Std.Convert/BoolAsResult.md +3 -2
  104. package/docs/Std.Convert/ComplexAsComplexPolar.md +3 -2
  105. package/docs/Std.Convert/ComplexPolarAsComplex.md +3 -2
  106. package/docs/Std.Convert/DoubleAsStringWithPrecision.md +3 -2
  107. package/docs/Std.Convert/IntAsBigInt.md +2 -1
  108. package/docs/Std.Convert/IntAsBoolArray.md +3 -2
  109. package/docs/Std.Convert/IntAsDouble.md +1 -1
  110. package/docs/Std.Convert/ResultArrayAsBoolArray.md +3 -2
  111. package/docs/Std.Convert/ResultArrayAsInt.md +3 -2
  112. package/docs/Std.Convert/ResultAsBool.md +3 -2
  113. package/docs/Std.Core/Length.md +1 -1
  114. package/docs/Std.Core/Repeated.md +1 -1
  115. package/docs/Std.Diagnostics/DumpMachine.md +1 -1
  116. package/docs/Std.Diagnostics/DumpOperation.md +1 -1
  117. package/docs/Std.Diagnostics/DumpRegister.md +3 -2
  118. package/docs/Std.Diagnostics/Fact.md +3 -2
  119. package/docs/Std.Intrinsic/AND.md +3 -2
  120. package/docs/Std.Intrinsic/CCNOT.md +3 -2
  121. package/docs/Std.Intrinsic/CNOT.md +3 -2
  122. package/docs/Std.Intrinsic/Exp.md +3 -2
  123. package/docs/Std.Intrinsic/H.md +3 -2
  124. package/docs/Std.Intrinsic/I.md +3 -2
  125. package/docs/Std.Intrinsic/M.md +3 -2
  126. package/docs/Std.Intrinsic/Measure.md +3 -2
  127. package/docs/Std.Intrinsic/Message.md +3 -2
  128. package/docs/Std.Intrinsic/R.md +3 -2
  129. package/docs/Std.Intrinsic/R1.md +3 -2
  130. package/docs/Std.Intrinsic/R1Frac.md +3 -2
  131. package/docs/Std.Intrinsic/RFrac.md +3 -2
  132. package/docs/Std.Intrinsic/Reset.md +3 -2
  133. package/docs/Std.Intrinsic/ResetAll.md +3 -2
  134. package/docs/Std.Intrinsic/Rx.md +3 -2
  135. package/docs/Std.Intrinsic/Rxx.md +3 -2
  136. package/docs/Std.Intrinsic/Ry.md +3 -2
  137. package/docs/Std.Intrinsic/Ryy.md +3 -2
  138. package/docs/Std.Intrinsic/Rz.md +3 -2
  139. package/docs/Std.Intrinsic/Rzz.md +3 -2
  140. package/docs/Std.Intrinsic/S.md +3 -2
  141. package/docs/Std.Intrinsic/SWAP.md +3 -2
  142. package/docs/Std.Intrinsic/T.md +3 -2
  143. package/docs/Std.Intrinsic/X.md +3 -2
  144. package/docs/Std.Intrinsic/Y.md +3 -2
  145. package/docs/Std.Intrinsic/Z.md +3 -2
  146. package/docs/Std.Logical/Xor.md +1 -1
  147. package/docs/Std.Math/AbsComplex.md +3 -2
  148. package/docs/Std.Math/AbsComplexPolar.md +3 -2
  149. package/docs/Std.Math/AbsD.md +2 -1
  150. package/docs/Std.Math/AbsI.md +2 -1
  151. package/docs/Std.Math/AbsL.md +1 -1
  152. package/docs/Std.Math/AbsSquaredComplex.md +3 -2
  153. package/docs/Std.Math/AbsSquaredComplexPolar.md +3 -2
  154. package/docs/Std.Math/ApproximateFactorial.md +3 -2
  155. package/docs/Std.Math/ArcCos.md +1 -1
  156. package/docs/Std.Math/ArcCosh.md +2 -1
  157. package/docs/Std.Math/ArcSin.md +2 -1
  158. package/docs/Std.Math/ArcSinh.md +2 -1
  159. package/docs/Std.Math/ArcTan.md +2 -1
  160. package/docs/Std.Math/ArcTan2.md +2 -1
  161. package/docs/Std.Math/ArcTanh.md +2 -1
  162. package/docs/Std.Math/ArgComplex.md +3 -2
  163. package/docs/Std.Math/ArgComplexPolar.md +3 -2
  164. package/docs/Std.Math/Binom.md +3 -2
  165. package/docs/Std.Math/BitSizeI.md +1 -1
  166. package/docs/Std.Math/BitSizeL.md +2 -1
  167. package/docs/Std.Math/Ceiling.md +2 -1
  168. package/docs/Std.Math/Complex.md +1 -1
  169. package/docs/Std.Math/ComplexPolar.md +3 -2
  170. package/docs/Std.Math/ContinuedFractionConvergentI.md +2 -1
  171. package/docs/Std.Math/ContinuedFractionConvergentL.md +2 -1
  172. package/docs/Std.Math/Cos.md +2 -1
  173. package/docs/Std.Math/Cosh.md +2 -1
  174. package/docs/Std.Math/DivRemI.md +1 -1
  175. package/docs/Std.Math/DivRemL.md +2 -1
  176. package/docs/Std.Math/DividedByC.md +3 -2
  177. package/docs/Std.Math/DividedByCP.md +3 -2
  178. package/docs/Std.Math/E.md +3 -2
  179. package/docs/Std.Math/ExpModI.md +2 -1
  180. package/docs/Std.Math/ExpModL.md +2 -1
  181. package/docs/Std.Math/ExtendedGreatestCommonDivisorI.md +2 -1
  182. package/docs/Std.Math/ExtendedGreatestCommonDivisorL.md +2 -1
  183. package/docs/Std.Math/FactorialI.md +1 -1
  184. package/docs/Std.Math/FactorialL.md +3 -2
  185. package/docs/Std.Math/Floor.md +2 -1
  186. package/docs/Std.Math/GreatestCommonDivisorI.md +1 -1
  187. package/docs/Std.Math/GreatestCommonDivisorL.md +2 -1
  188. package/docs/Std.Math/HammingWeightI.md +2 -1
  189. package/docs/Std.Math/InverseModI.md +3 -2
  190. package/docs/Std.Math/InverseModL.md +3 -2
  191. package/docs/Std.Math/IsCoprimeI.md +3 -2
  192. package/docs/Std.Math/IsCoprimeL.md +3 -2
  193. package/docs/Std.Math/IsInfinite.md +3 -2
  194. package/docs/Std.Math/IsNaN.md +1 -1
  195. package/docs/Std.Math/LargestFixedPoint.md +3 -2
  196. package/docs/Std.Math/Lg.md +2 -1
  197. package/docs/Std.Math/Log.md +2 -1
  198. package/docs/Std.Math/Log10.md +2 -1
  199. package/docs/Std.Math/LogFactorialD.md +3 -2
  200. package/docs/Std.Math/LogGammaD.md +3 -2
  201. package/docs/Std.Math/LogOf2.md +3 -2
  202. package/docs/Std.Math/Max.md +3 -2
  203. package/docs/Std.Math/MaxD.md +2 -1
  204. package/docs/Std.Math/MaxI.md +2 -1
  205. package/docs/Std.Math/MaxL.md +2 -1
  206. package/docs/Std.Math/Min.md +3 -2
  207. package/docs/Std.Math/MinD.md +2 -1
  208. package/docs/Std.Math/MinI.md +2 -1
  209. package/docs/Std.Math/MinL.md +2 -1
  210. package/docs/Std.Math/MinusC.md +3 -2
  211. package/docs/Std.Math/MinusCP.md +3 -2
  212. package/docs/Std.Math/ModulusI.md +2 -1
  213. package/docs/Std.Math/ModulusL.md +2 -1
  214. package/docs/Std.Math/NegationC.md +3 -2
  215. package/docs/Std.Math/NegationCP.md +3 -2
  216. package/docs/Std.Math/PI.md +1 -1
  217. package/docs/Std.Math/PNorm.md +3 -2
  218. package/docs/Std.Math/PNormalized.md +3 -2
  219. package/docs/Std.Math/PlusC.md +3 -2
  220. package/docs/Std.Math/PlusCP.md +3 -2
  221. package/docs/Std.Math/PowC.md +3 -2
  222. package/docs/Std.Math/PowCP.md +3 -2
  223. package/docs/Std.Math/RealMod.md +3 -2
  224. package/docs/Std.Math/Round.md +2 -1
  225. package/docs/Std.Math/SignD.md +2 -1
  226. package/docs/Std.Math/SignI.md +1 -1
  227. package/docs/Std.Math/SignL.md +2 -1
  228. package/docs/Std.Math/Sin.md +2 -1
  229. package/docs/Std.Math/Sinh.md +2 -1
  230. package/docs/Std.Math/SmallestFixedPoint.md +1 -1
  231. package/docs/Std.Math/Sqrt.md +1 -1
  232. package/docs/Std.Math/SquaredNorm.md +1 -1
  233. package/docs/Std.Math/Tan.md +2 -1
  234. package/docs/Std.Math/Tanh.md +2 -1
  235. package/docs/Std.Math/TimesC.md +3 -2
  236. package/docs/Std.Math/TimesCP.md +3 -2
  237. package/docs/Std.Math/TrailingZeroCountI.md +2 -1
  238. package/docs/Std.Math/TrailingZeroCountL.md +2 -1
  239. package/docs/Std.Math/Truncate.md +1 -1
  240. package/docs/Std.Measurement/MResetEachZ.md +3 -2
  241. package/docs/Std.Measurement/MResetX.md +3 -2
  242. package/docs/Std.Measurement/MResetY.md +3 -2
  243. package/docs/Std.Measurement/MResetZ.md +3 -2
  244. package/docs/Std.Measurement/MeasureAllZ.md +1 -1
  245. package/docs/Std.Measurement/MeasureEachZ.md +3 -2
  246. package/docs/Std.Measurement/MeasureInteger.md +3 -2
  247. package/docs/Std.Range/IsRangeEmpty.md +1 -1
  248. package/docs/Std.Range/RangeEnd.md +1 -1
  249. package/docs/Std.Range/RangeReverse.md +1 -1
  250. package/docs/Std.Range/RangeStart.md +1 -1
  251. package/docs/Std.Range/RangeStep.md +1 -1
  252. package/docs/Std.ResourceEstimation/AccountForEstimates.md +3 -2
  253. package/docs/Std.ResourceEstimation/AuxQubitCount.md +1 -1
  254. package/docs/Std.ResourceEstimation/BeginEstimateCaching.md +3 -2
  255. package/docs/Std.ResourceEstimation/BeginRepeatEstimates.md +3 -2
  256. package/docs/Std.ResourceEstimation/CczCount.md +2 -1
  257. package/docs/Std.ResourceEstimation/EndEstimateCaching.md +2 -1
  258. package/docs/Std.ResourceEstimation/EndRepeatEstimates.md +2 -1
  259. package/docs/Std.ResourceEstimation/MeasurementCount.md +2 -1
  260. package/docs/Std.ResourceEstimation/PSSPCLayout.md +2 -1
  261. package/docs/Std.ResourceEstimation/RepeatEstimates.md +3 -2
  262. package/docs/Std.ResourceEstimation/RotationCount.md +2 -1
  263. package/docs/Std.ResourceEstimation/RotationDepth.md +2 -1
  264. package/docs/Std.ResourceEstimation/SingleVariant.md +1 -1
  265. package/docs/Std.ResourceEstimation/TCount.md +2 -1
  266. package/lib/node/qsc_wasm.cjs +43 -5
  267. package/lib/node/qsc_wasm.d.cts +10 -1
  268. package/lib/node/qsc_wasm_bg.wasm +0 -0
  269. package/lib/web/qsc_wasm.d.ts +11 -1
  270. package/lib/web/qsc_wasm.js +41 -5
  271. package/lib/web/qsc_wasm_bg.wasm +0 -0
  272. package/package.json +1 -1
@@ -8,6 +8,7 @@ export interface ICompiler {
8
8
  getAst(code: string, languageFeatures?: string[], profile?: TargetProfile): Promise<string>;
9
9
  getHir(code: string, languageFeatures?: string[], profile?: TargetProfile): Promise<string>;
10
10
  run(program: ProgramConfig, expr: string, shots: number, eventHandler: IQscEventTarget): Promise<void>;
11
+ runWithPauliNoise(program: ProgramConfig, expr: string, shots: number, pauliNoise: number[], eventHandler: IQscEventTarget): Promise<void>;
11
12
  getQir(program: ProgramConfig): Promise<string>;
12
13
  getEstimates(program: ProgramConfig, params: string): Promise<string>;
13
14
  getCircuit(program: ProgramConfig, simulate: boolean, operation?: IOperationInfo): Promise<CircuitData>;
@@ -39,6 +40,7 @@ export declare class Compiler implements ICompiler {
39
40
  getAst(code: string, languageFeatures?: string[], profile?: TargetProfile): Promise<string>;
40
41
  getHir(code: string, languageFeatures: string[], profile: TargetProfile): Promise<string>;
41
42
  run(program: ProgramConfig, expr: string, shots: number, eventHandler: IQscEventTarget): Promise<void>;
43
+ runWithPauliNoise(program: ProgramConfig, expr: string, shots: number, pauliNoise: number[], eventHandler: IQscEventTarget): Promise<void>;
42
44
  getQir(program: ProgramConfig): Promise<string>;
43
45
  getEstimates(program: ProgramConfig, params: string): Promise<string>;
44
46
  getCircuit(program: ProgramConfig, simulate: boolean, operation?: IOperationInfo): Promise<CircuitData>;
@@ -43,6 +43,9 @@ export class Compiler {
43
43
  // may reject without all shots running or events firing.
44
44
  this.wasm.run(toWasmProgramConfig(program, "unrestricted"), expr, (msg) => onCompilerEvent(msg, eventHandler), shots);
45
45
  }
46
+ async runWithPauliNoise(program, expr, shots, pauliNoise, eventHandler) {
47
+ this.wasm.runWithPauliNoise(toWasmProgramConfig(program, "unrestricted"), expr, (msg) => onCompilerEvent(msg, eventHandler), shots, pauliNoise);
48
+ }
46
49
  async getQir(program) {
47
50
  return this.wasm.get_qir(toWasmProgramConfig(program, "base"));
48
51
  }
@@ -134,6 +137,7 @@ export const compilerProtocol = {
134
137
  getCircuit: "request",
135
138
  getDocumentation: "request",
136
139
  run: "requestWithProgress",
140
+ runWithPauliNoise: "requestWithProgress",
137
141
  checkExerciseSolution: "requestWithProgress",
138
142
  },
139
143
  eventNames: ["DumpMachine", "Matrix", "Message", "Result"],
@@ -9079,7 +9079,7 @@ export default {
9079
9079
  },
9080
9080
  {
9081
9081
  "id": "multi_qubit_gates__controlled_rotation__Verification.qs",
9082
- "code": "namespace Kata.Verification {\n open Microsoft.Quantum.Convert;\n open Microsoft.Quantum.Diagnostics;\n open Microsoft.Quantum.Katas;\n\n operation ControlledRotation (qs : Qubit[], theta : Double) : Unit is Adj + Ctl {\n let controll = qs[0];\n let target = qs[1];\n Controlled Rx([controll], (theta, target));\n }\n\n operation CheckSolution() : Bool {\n for i in 0 .. 20 {\n let angle = IntAsDouble(i) / 10.0;\n let solution = register => Kata.ControlledRotation(register, angle);\n let reference = register => ControlledRotation(register, angle);\n if not CheckOperationsAreEqual(2, solution, reference) {\n Message(\"Incorrect.\");\n Message($\"The test case for theta={angle} did not pass\");\n return false;\n }\n }\n\n Message(\"Correct!\");\n true\n }\n}"
9082
+ "code": "namespace Kata.Verification {\n open Microsoft.Quantum.Convert;\n open Microsoft.Quantum.Diagnostics;\n open Microsoft.Quantum.Katas;\n\n operation ControlledRotation (qs : Qubit[], theta : Double) : Unit is Adj + Ctl {\n let controll = qs[0];\n let target = qs[1];\n Controlled Rx([controll], (theta, target));\n }\n\n operation CheckSolution() : Bool {\n for i in 0 .. 20 {\n let angle = IntAsDouble(i) / 10.0;\n let solution = register => Kata.ControlledRotation(register, angle);\n let reference = register => ControlledRotation(register, angle);\n if not CheckOperationsAreEqual(2, solution, reference) {\n let precision = 3;\n Message(\"Incorrect.\");\n Message($\"The test case for theta={DoubleAsStringWithPrecision(angle, precision)} did not pass\");\n return false;\n }\n }\n\n Message(\"Correct!\");\n true\n }\n}"
9083
9083
  },
9084
9084
  {
9085
9085
  "id": "multi_qubit_gates__toffoli_gate__Verification.qs",
@@ -9155,7 +9155,7 @@ export default {
9155
9155
  },
9156
9156
  {
9157
9157
  "id": "preparing_states__unequal_superposition__Verification.qs",
9158
- "code": "namespace Kata.Verification {\n open Microsoft.Quantum.Convert;\n open Microsoft.Quantum.Katas;\n open Microsoft.Quantum.Math;\n\n operation UnequalSuperposition_Reference(q : Qubit, alpha : Double) : Unit is Adj + Ctl {\n Ry(2.0 * alpha, q);\n }\n\n @EntryPoint()\n operation CheckSolution() : Bool {\n let limit = 36;\n for i in 0 .. limit {\n let alpha = 2.0 * PI() * IntAsDouble(i) / IntAsDouble(limit);\n let solution = Kata.UnequalSuperposition(_, alpha);\n let reference = UnequalSuperposition_Reference(_, alpha);\n Message($\"Testing for alpha = {alpha}...\");\n if not CheckOperationsEquivalenceOnZeroStateWithFeedback(\n qs => solution(qs[0]), \n qs => reference(qs[0]),\n 1) {\n return false;\n }\n }\n\n true\n }\n}\n"
9158
+ "code": "namespace Kata.Verification {\n open Microsoft.Quantum.Convert;\n open Microsoft.Quantum.Katas;\n open Microsoft.Quantum.Math;\n\n operation UnequalSuperposition_Reference(q : Qubit, alpha : Double) : Unit is Adj + Ctl {\n Ry(2.0 * alpha, q);\n }\n\n @EntryPoint()\n operation CheckSolution() : Bool {\n let limit = 36;\n let precision = 3;\n for i in 0 .. limit {\n let alpha = 2.0 * PI() * IntAsDouble(i) / IntAsDouble(limit);\n let solution = Kata.UnequalSuperposition(_, alpha);\n let reference = UnequalSuperposition_Reference(_, alpha);\n Message($\"Testing for alpha = {DoubleAsStringWithPrecision(alpha, precision)}...\");\n if not CheckOperationsEquivalenceOnZeroStateWithFeedback(\n qs => solution(qs[0]), \n qs => reference(qs[0]),\n 1) {\n return false;\n }\n }\n\n true\n }\n}\n"
9159
9159
  },
9160
9160
  {
9161
9161
  "id": "preparing_states__controlled_rotation__Verification.qs",
@@ -9199,7 +9199,7 @@ export default {
9199
9199
  },
9200
9200
  {
9201
9201
  "id": "single_qubit_measurements__a_b_basis_measurements__Verification.qs",
9202
- "code": "namespace Kata.Verification {\n open Microsoft.Quantum.Convert;\n open Microsoft.Quantum.Math;\n open Microsoft.Quantum.Katas;\n\n // Measure state in {|A❭, |B❭} basis\n // |A⟩ = cos(alpha) * |0⟩ - i sin(alpha) * |1⟩,\n // |B⟩ = - i sin(alpha) * |0⟩ + cos(alpha) * |1⟩.\n operation StatePrep_IsQubitA (alpha : Double, q : Qubit, state : Int) : Unit is Adj {\n if state == 0 {\n // convert |0⟩ to |B⟩\n X(q);\n Rx(2.0 * alpha, q);\n } else {\n // convert |0⟩ to |A⟩\n Rx(2.0 * alpha, q);\n }\n }\n\n // We can use the StatePrep_IsQubitA operation for the testing\n operation CheckSolution() : Bool {\n for i in 0 .. 10 {\n let alpha = (PI() * IntAsDouble(i)) / 10.0;\n let isCorrect = DistinguishTwoStates_SingleQubit(\n StatePrep_IsQubitA(alpha, _, _),\n q => Kata.MeasureInABBasis(alpha, q) == Zero,\n [$\"|B⟩=(-i sin({i}π/10)|0⟩ + cos({i}π/10)|1⟩)\", $\"|A⟩=(cos({i}π/10)|0⟩ + i sin({i}π/10)|1⟩)\"],\n true);\n if not isCorrect {\n Message($\"Test fails for alpha={alpha}\");\n return false;\n }\n }\n Message(\"Correct!\");\n true\n }\n\n}\n"
9202
+ "code": "namespace Kata.Verification {\n open Microsoft.Quantum.Convert;\n open Microsoft.Quantum.Math;\n open Microsoft.Quantum.Katas;\n\n // Measure state in {|A❭, |B❭} basis\n // |A⟩ = cos(alpha) * |0⟩ - i sin(alpha) * |1⟩,\n // |B⟩ = - i sin(alpha) * |0⟩ + cos(alpha) * |1⟩.\n operation StatePrep_IsQubitA (alpha : Double, q : Qubit, state : Int) : Unit is Adj {\n if state == 0 {\n // convert |0⟩ to |B⟩\n X(q);\n Rx(2.0 * alpha, q);\n } else {\n // convert |0⟩ to |A⟩\n Rx(2.0 * alpha, q);\n }\n }\n\n // We can use the StatePrep_IsQubitA operation for the testing\n operation CheckSolution() : Bool {\n for i in 0 .. 10 {\n let alpha = (PI() * IntAsDouble(i)) / 10.0;\n let isCorrect = DistinguishTwoStates_SingleQubit(\n StatePrep_IsQubitA(alpha, _, _),\n q => Kata.MeasureInABBasis(alpha, q) == Zero,\n [$\"|B⟩=(-i sin({i}π/10)|0⟩ + cos({i}π/10)|1⟩)\", $\"|A⟩=(cos({i}π/10)|0⟩ + i sin({i}π/10)|1⟩)\"],\n true);\n if not isCorrect {\n let precision = 3;\n Message($\"Test fails for alpha={DoubleAsStringWithPrecision(alpha, precision)}\");\n return false;\n }\n }\n Message(\"Correct!\");\n true\n }\n\n}\n"
9203
9203
  },
9204
9204
  {
9205
9205
  "id": "multi_qubit_measurements__full_measurements__Verification.qs",
@@ -9235,7 +9235,7 @@ export default {
9235
9235
  },
9236
9236
  {
9237
9237
  "id": "distinguishing_states__a_b__Verification.qs",
9238
- "code": "namespace Kata.Verification {\n open Microsoft.Quantum.Convert;\n open Microsoft.Quantum.Math;\n open Microsoft.Quantum.Katas;\n\n // |A⟩ = cos(alpha) * |0⟩ + sin(alpha) * |1⟩,\n // |B⟩ = - sin(alpha) * |0⟩ + cos(alpha) * |1⟩.\n operation StatePrep_IsQubitA(alpha : Double, q : Qubit, state : Int) : Unit is Adj {\n if state == 0 {\n // convert |0⟩ to |B⟩\n X(q);\n Ry(2.0 * alpha, q);\n } else {\n // convert |0⟩ to |A⟩\n Ry(2.0 * alpha, q);\n }\n }\n\n // We can use the StatePrep_IsQubitA operation for the testing\n operation CheckSolution() : Bool {\n for i in 0 .. 10 {\n let alpha = (PI() * IntAsDouble(i)) / 10.0;\n let isCorrect = DistinguishTwoStates_SingleQubit(\n StatePrep_IsQubitA(alpha, _, _),\n Kata.IsQubitA(alpha, _),\n [$\"|B⟩=(-sin({i}π/10)|0⟩ + cos({i}π/10)|1⟩)\", $\"|A⟩=(cos({i}π/10)|0⟩ + sin({i}π/10)|1⟩)\"],\n false\n );\n\n if not isCorrect {\n Message($\"Test fails for alpha={alpha}\");\n return false;\n }\n }\n\n Message(\"Correct!\");\n true\n }\n}\n"
9238
+ "code": "namespace Kata.Verification {\n open Microsoft.Quantum.Convert;\n open Microsoft.Quantum.Math;\n open Microsoft.Quantum.Katas;\n\n // |A⟩ = cos(alpha) * |0⟩ + sin(alpha) * |1⟩,\n // |B⟩ = - sin(alpha) * |0⟩ + cos(alpha) * |1⟩.\n operation StatePrep_IsQubitA(alpha : Double, q : Qubit, state : Int) : Unit is Adj {\n if state == 0 {\n // convert |0⟩ to |B⟩\n X(q);\n Ry(2.0 * alpha, q);\n } else {\n // convert |0⟩ to |A⟩\n Ry(2.0 * alpha, q);\n }\n }\n\n // We can use the StatePrep_IsQubitA operation for the testing\n operation CheckSolution() : Bool {\n for i in 0 .. 10 {\n let alpha = (PI() * IntAsDouble(i)) / 10.0;\n let isCorrect = DistinguishTwoStates_SingleQubit(\n StatePrep_IsQubitA(alpha, _, _),\n Kata.IsQubitA(alpha, _),\n [$\"|B⟩=(-sin({i}π/10)|0⟩ + cos({i}π/10)|1⟩)\", $\"|A⟩=(cos({i}π/10)|0⟩ + sin({i}π/10)|1⟩)\"],\n false\n );\n\n if not isCorrect {\n let precision = 3;\n Message($\"Test fails for alpha={DoubleAsStringWithPrecision(alpha, precision)}\");\n return false;\n }\n }\n\n Message(\"Correct!\");\n true\n }\n}\n"
9239
9239
  },
9240
9240
  {
9241
9241
  "id": "distinguishing_states__zerozero_oneone__Verification.qs",
@@ -9079,7 +9079,7 @@ export default {
9079
9079
  },
9080
9080
  {
9081
9081
  "id": "multi_qubit_gates__controlled_rotation__Verification.qs",
9082
- "code": "namespace Kata.Verification {\n open Microsoft.Quantum.Convert;\n open Microsoft.Quantum.Diagnostics;\n open Microsoft.Quantum.Katas;\n\n operation ControlledRotation (qs : Qubit[], theta : Double) : Unit is Adj + Ctl {\n let controll = qs[0];\n let target = qs[1];\n Controlled Rx([controll], (theta, target));\n }\n\n operation CheckSolution() : Bool {\n for i in 0 .. 20 {\n let angle = IntAsDouble(i) / 10.0;\n let solution = register => Kata.ControlledRotation(register, angle);\n let reference = register => ControlledRotation(register, angle);\n if not CheckOperationsAreEqual(2, solution, reference) {\n Message(\"Incorrect.\");\n Message($\"The test case for theta={angle} did not pass\");\n return false;\n }\n }\n\n Message(\"Correct!\");\n true\n }\n}"
9082
+ "code": "namespace Kata.Verification {\n open Microsoft.Quantum.Convert;\n open Microsoft.Quantum.Diagnostics;\n open Microsoft.Quantum.Katas;\n\n operation ControlledRotation (qs : Qubit[], theta : Double) : Unit is Adj + Ctl {\n let controll = qs[0];\n let target = qs[1];\n Controlled Rx([controll], (theta, target));\n }\n\n operation CheckSolution() : Bool {\n for i in 0 .. 20 {\n let angle = IntAsDouble(i) / 10.0;\n let solution = register => Kata.ControlledRotation(register, angle);\n let reference = register => ControlledRotation(register, angle);\n if not CheckOperationsAreEqual(2, solution, reference) {\n let precision = 3;\n Message(\"Incorrect.\");\n Message($\"The test case for theta={DoubleAsStringWithPrecision(angle, precision)} did not pass\");\n return false;\n }\n }\n\n Message(\"Correct!\");\n true\n }\n}"
9083
9083
  },
9084
9084
  {
9085
9085
  "id": "multi_qubit_gates__toffoli_gate__Verification.qs",
@@ -9155,7 +9155,7 @@ export default {
9155
9155
  },
9156
9156
  {
9157
9157
  "id": "preparing_states__unequal_superposition__Verification.qs",
9158
- "code": "namespace Kata.Verification {\n open Microsoft.Quantum.Convert;\n open Microsoft.Quantum.Katas;\n open Microsoft.Quantum.Math;\n\n operation UnequalSuperposition_Reference(q : Qubit, alpha : Double) : Unit is Adj + Ctl {\n Ry(2.0 * alpha, q);\n }\n\n @EntryPoint()\n operation CheckSolution() : Bool {\n let limit = 36;\n for i in 0 .. limit {\n let alpha = 2.0 * PI() * IntAsDouble(i) / IntAsDouble(limit);\n let solution = Kata.UnequalSuperposition(_, alpha);\n let reference = UnequalSuperposition_Reference(_, alpha);\n Message($\"Testing for alpha = {alpha}...\");\n if not CheckOperationsEquivalenceOnZeroStateWithFeedback(\n qs => solution(qs[0]), \n qs => reference(qs[0]),\n 1) {\n return false;\n }\n }\n\n true\n }\n}\n"
9158
+ "code": "namespace Kata.Verification {\n open Microsoft.Quantum.Convert;\n open Microsoft.Quantum.Katas;\n open Microsoft.Quantum.Math;\n\n operation UnequalSuperposition_Reference(q : Qubit, alpha : Double) : Unit is Adj + Ctl {\n Ry(2.0 * alpha, q);\n }\n\n @EntryPoint()\n operation CheckSolution() : Bool {\n let limit = 36;\n let precision = 3;\n for i in 0 .. limit {\n let alpha = 2.0 * PI() * IntAsDouble(i) / IntAsDouble(limit);\n let solution = Kata.UnequalSuperposition(_, alpha);\n let reference = UnequalSuperposition_Reference(_, alpha);\n Message($\"Testing for alpha = {DoubleAsStringWithPrecision(alpha, precision)}...\");\n if not CheckOperationsEquivalenceOnZeroStateWithFeedback(\n qs => solution(qs[0]), \n qs => reference(qs[0]),\n 1) {\n return false;\n }\n }\n\n true\n }\n}\n"
9159
9159
  },
9160
9160
  {
9161
9161
  "id": "preparing_states__controlled_rotation__Verification.qs",
@@ -9199,7 +9199,7 @@ export default {
9199
9199
  },
9200
9200
  {
9201
9201
  "id": "single_qubit_measurements__a_b_basis_measurements__Verification.qs",
9202
- "code": "namespace Kata.Verification {\n open Microsoft.Quantum.Convert;\n open Microsoft.Quantum.Math;\n open Microsoft.Quantum.Katas;\n\n // Measure state in {|A❭, |B❭} basis\n // |A⟩ = cos(alpha) * |0⟩ - i sin(alpha) * |1⟩,\n // |B⟩ = - i sin(alpha) * |0⟩ + cos(alpha) * |1⟩.\n operation StatePrep_IsQubitA (alpha : Double, q : Qubit, state : Int) : Unit is Adj {\n if state == 0 {\n // convert |0⟩ to |B⟩\n X(q);\n Rx(2.0 * alpha, q);\n } else {\n // convert |0⟩ to |A⟩\n Rx(2.0 * alpha, q);\n }\n }\n\n // We can use the StatePrep_IsQubitA operation for the testing\n operation CheckSolution() : Bool {\n for i in 0 .. 10 {\n let alpha = (PI() * IntAsDouble(i)) / 10.0;\n let isCorrect = DistinguishTwoStates_SingleQubit(\n StatePrep_IsQubitA(alpha, _, _),\n q => Kata.MeasureInABBasis(alpha, q) == Zero,\n [$\"|B⟩=(-i sin({i}π/10)|0⟩ + cos({i}π/10)|1⟩)\", $\"|A⟩=(cos({i}π/10)|0⟩ + i sin({i}π/10)|1⟩)\"],\n true);\n if not isCorrect {\n Message($\"Test fails for alpha={alpha}\");\n return false;\n }\n }\n Message(\"Correct!\");\n true\n }\n\n}\n"
9202
+ "code": "namespace Kata.Verification {\n open Microsoft.Quantum.Convert;\n open Microsoft.Quantum.Math;\n open Microsoft.Quantum.Katas;\n\n // Measure state in {|A❭, |B❭} basis\n // |A⟩ = cos(alpha) * |0⟩ - i sin(alpha) * |1⟩,\n // |B⟩ = - i sin(alpha) * |0⟩ + cos(alpha) * |1⟩.\n operation StatePrep_IsQubitA (alpha : Double, q : Qubit, state : Int) : Unit is Adj {\n if state == 0 {\n // convert |0⟩ to |B⟩\n X(q);\n Rx(2.0 * alpha, q);\n } else {\n // convert |0⟩ to |A⟩\n Rx(2.0 * alpha, q);\n }\n }\n\n // We can use the StatePrep_IsQubitA operation for the testing\n operation CheckSolution() : Bool {\n for i in 0 .. 10 {\n let alpha = (PI() * IntAsDouble(i)) / 10.0;\n let isCorrect = DistinguishTwoStates_SingleQubit(\n StatePrep_IsQubitA(alpha, _, _),\n q => Kata.MeasureInABBasis(alpha, q) == Zero,\n [$\"|B⟩=(-i sin({i}π/10)|0⟩ + cos({i}π/10)|1⟩)\", $\"|A⟩=(cos({i}π/10)|0⟩ + i sin({i}π/10)|1⟩)\"],\n true);\n if not isCorrect {\n let precision = 3;\n Message($\"Test fails for alpha={DoubleAsStringWithPrecision(alpha, precision)}\");\n return false;\n }\n }\n Message(\"Correct!\");\n true\n }\n\n}\n"
9203
9203
  },
9204
9204
  {
9205
9205
  "id": "multi_qubit_measurements__full_measurements__Verification.qs",
@@ -9235,7 +9235,7 @@ export default {
9235
9235
  },
9236
9236
  {
9237
9237
  "id": "distinguishing_states__a_b__Verification.qs",
9238
- "code": "namespace Kata.Verification {\n open Microsoft.Quantum.Convert;\n open Microsoft.Quantum.Math;\n open Microsoft.Quantum.Katas;\n\n // |A⟩ = cos(alpha) * |0⟩ + sin(alpha) * |1⟩,\n // |B⟩ = - sin(alpha) * |0⟩ + cos(alpha) * |1⟩.\n operation StatePrep_IsQubitA(alpha : Double, q : Qubit, state : Int) : Unit is Adj {\n if state == 0 {\n // convert |0⟩ to |B⟩\n X(q);\n Ry(2.0 * alpha, q);\n } else {\n // convert |0⟩ to |A⟩\n Ry(2.0 * alpha, q);\n }\n }\n\n // We can use the StatePrep_IsQubitA operation for the testing\n operation CheckSolution() : Bool {\n for i in 0 .. 10 {\n let alpha = (PI() * IntAsDouble(i)) / 10.0;\n let isCorrect = DistinguishTwoStates_SingleQubit(\n StatePrep_IsQubitA(alpha, _, _),\n Kata.IsQubitA(alpha, _),\n [$\"|B⟩=(-sin({i}π/10)|0⟩ + cos({i}π/10)|1⟩)\", $\"|A⟩=(cos({i}π/10)|0⟩ + sin({i}π/10)|1⟩)\"],\n false\n );\n\n if not isCorrect {\n Message($\"Test fails for alpha={alpha}\");\n return false;\n }\n }\n\n Message(\"Correct!\");\n true\n }\n}\n"
9238
+ "code": "namespace Kata.Verification {\n open Microsoft.Quantum.Convert;\n open Microsoft.Quantum.Math;\n open Microsoft.Quantum.Katas;\n\n // |A⟩ = cos(alpha) * |0⟩ + sin(alpha) * |1⟩,\n // |B⟩ = - sin(alpha) * |0⟩ + cos(alpha) * |1⟩.\n operation StatePrep_IsQubitA(alpha : Double, q : Qubit, state : Int) : Unit is Adj {\n if state == 0 {\n // convert |0⟩ to |B⟩\n X(q);\n Ry(2.0 * alpha, q);\n } else {\n // convert |0⟩ to |A⟩\n Ry(2.0 * alpha, q);\n }\n }\n\n // We can use the StatePrep_IsQubitA operation for the testing\n operation CheckSolution() : Bool {\n for i in 0 .. 10 {\n let alpha = (PI() * IntAsDouble(i)) / 10.0;\n let isCorrect = DistinguishTwoStates_SingleQubit(\n StatePrep_IsQubitA(alpha, _, _),\n Kata.IsQubitA(alpha, _),\n [$\"|B⟩=(-sin({i}π/10)|0⟩ + cos({i}π/10)|1⟩)\", $\"|A⟩=(cos({i}π/10)|0⟩ + sin({i}π/10)|1⟩)\"],\n false\n );\n\n if not isCorrect {\n let precision = 3;\n Message($\"Test fails for alpha={DoubleAsStringWithPrecision(alpha, precision)}\");\n return false;\n }\n }\n\n Message(\"Correct!\");\n true\n }\n}\n"
9239
9239
  },
9240
9240
  {
9241
9241
  "id": "distinguishing_states__zerozero_oneone__Verification.qs",
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Core.Length
3
3
  title: Length exported item
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: export
7
7
  qsharp.namespace: Microsoft.Quantum.Core
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Core.Repeated
3
3
  title: Repeated exported item
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: export
7
7
  qsharp.namespace: Microsoft.Quantum.Core
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.Arithmetic.AddLE
3
3
  title: AddLE operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.Arithmetic
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.Arithmetic.ApplyIfEqualL
3
3
  title: ApplyIfEqualL operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.Arithmetic
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.Arithmetic.ApplyIfEqualLE
3
3
  title: ApplyIfEqualLE operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.Arithmetic
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.Arithmetic.ApplyIfGreaterL
3
3
  title: ApplyIfGreaterL operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.Arithmetic
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.Arithmetic.ApplyIfGreaterLE
3
3
  title: ApplyIfGreaterLE operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.Arithmetic
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.Arithmetic.ApplyIfGreaterOrEqualL
3
3
  title: ApplyIfGreaterOrEqualL operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.Arithmetic
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.Arithmetic.ApplyIfGreaterOrEqualLE
3
3
  title: ApplyIfGreaterOrEqualLE operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.Arithmetic
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.Arithmetic.ApplyIfLessL
3
3
  title: ApplyIfLessL operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.Arithmetic
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.Arithmetic.ApplyIfLessLE
3
3
  title: ApplyIfLessLE operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.Arithmetic
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.Arithmetic.ApplyIfLessOrEqualL
3
3
  title: ApplyIfLessOrEqualL operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.Arithmetic
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.Arithmetic.ApplyIfLessOrEqualLE
3
3
  title: ApplyIfLessOrEqualLE operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.Arithmetic
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.Arithmetic.FourierTDIncByLE
3
3
  title: FourierTDIncByLE operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.Arithmetic
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.Arithmetic.IncByI
3
3
  title: IncByI operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.Arithmetic
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.Arithmetic.IncByIUsingIncByLE
3
3
  title: IncByIUsingIncByLE operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.Arithmetic
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.Arithmetic.IncByL
3
3
  title: IncByL operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.Arithmetic
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.Arithmetic.IncByLE
3
3
  title: IncByLE operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.Arithmetic
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.Arithmetic.IncByLEUsingAddLE
3
3
  title: IncByLEUsingAddLE operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.Arithmetic
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.Arithmetic.IncByLUsingIncByLE
3
3
  title: IncByLUsingIncByLE operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.Arithmetic
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.Arithmetic.LookAheadDKRSAddLE
3
3
  title: LookAheadDKRSAddLE operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.Arithmetic
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.Arithmetic.MAJ
3
3
  title: MAJ operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.Arithmetic
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.Arithmetic.ReflectAboutInteger
3
3
  title: ReflectAboutInteger operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.Arithmetic
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.Arithmetic.RippleCarryCGAddLE
3
3
  title: RippleCarryCGAddLE operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.Arithmetic
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.Arithmetic.RippleCarryCGIncByLE
3
3
  title: RippleCarryCGIncByLE operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.Arithmetic
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.Arithmetic.RippleCarryTTKIncByLE
3
3
  title: RippleCarryTTKIncByLE operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.Arithmetic
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.StatePreparation.ApproximatelyPreparePureStateCP
3
3
  title: ApproximatelyPreparePureStateCP operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.StatePreparation
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.StatePreparation.PreparePureStateD
3
3
  title: PreparePureStateD operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.StatePreparation
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Microsoft.Quantum.Unstable.TableLookup.Select
3
3
  title: Select operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Microsoft.Quantum.Unstable.TableLookup
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  uid: Qdk.Std.Arrays.All
3
3
  title: All function
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: function
7
7
  qsharp.namespace: Std.Arrays
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  uid: Qdk.Std.Arrays.Any
3
3
  title: Any function
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: function
7
7
  qsharp.namespace: Std.Arrays
8
8
  qsharp.name: Any
9
- qsharp.summary: "Given an array and a predicate that is defined for the elements of the array, checks if at least one element of the array satisfies the predicate. # Type Parameters ## 'T The type of `array` elements. # Input ## predicate A function from `'T` to `Bool` that is used to check elements. ## array An array of elements over `'T`. # Output A `Bool` value of the OR function of the predicate applied to all elements. # Example ```qsharp let anyEven = Any(x -> x % 2 == 0, [1, 3, 6, 7, 9]); ```"
9
+ qsharp.summary: "Given an array and a predicate that is defined for the elements of the array, checks if at least one element of the array satisfies the predicate."
10
10
  ---
11
11
 
12
12
  # Any function
@@ -17,6 +17,7 @@ Fully qualified name: Std.Arrays.Any
17
17
  function Any<'T>(predicate : ('T -> Bool), array : 'T[]) : Bool
18
18
  ```
19
19
 
20
+ ## Summary
20
21
  Given an array and a predicate that is defined
21
22
  for the elements of the array, checks if at least one element of
22
23
  the array satisfies the predicate.
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  uid: Qdk.Std.Arrays.Chunks
3
3
  title: Chunks function
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: function
7
7
  qsharp.namespace: Std.Arrays
8
8
  qsharp.name: Chunks
9
- qsharp.summary: "Splits an array into multiple parts of equal length. # Input ## chunkSize The length of each chunk. Must be positive. ## array The array to be split in chunks. # Output A array containing each chunk of the original array. # Remarks Note that the last element of the output may be shorter than `chunkSize` if `Length(array)` is not divisible by `chunkSize`."
9
+ qsharp.summary: "Splits an array into multiple parts of equal length."
10
10
  ---
11
11
 
12
12
  # Chunks function
@@ -17,6 +17,7 @@ Fully qualified name: Std.Arrays.Chunks
17
17
  function Chunks<'T>(chunkSize : Int, array : 'T[]) : 'T[][]
18
18
  ```
19
19
 
20
+ ## Summary
20
21
  Splits an array into multiple parts of equal length.
21
22
 
22
23
  ## Input
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  uid: Qdk.Std.Arrays.CircularlyShifted
3
3
  title: CircularlyShifted function
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: function
7
7
  qsharp.namespace: Std.Arrays
8
8
  qsharp.name: CircularlyShifted
9
- qsharp.summary: "Shift an array circularly left or right by a specific step size. # Type Parameters ## 'T The type of the array elements. # Input ## stepCount The amount of positions by which the array elements will be shifted. If this is positive, `array` is circularly shifted to the right. If this is negative, `array` is circularly shifted to the left. ## array Array to be circularly shifted. # Output An array `output` that is the `array` circularly shifted to the right or left by the specified step size. # Example ```qsharp let array = [10, 11, 12]; // The following line returns [11, 12, 10]. let output = CircularlyShifted(2, array); // The following line returns [12, 10, 11]. let output = CircularlyShifted(-2, array); ```"
9
+ qsharp.summary: "Shift an array circularly left or right by a specific step size."
10
10
  ---
11
11
 
12
12
  # CircularlyShifted function
@@ -17,6 +17,7 @@ Fully qualified name: Std.Arrays.CircularlyShifted
17
17
  function CircularlyShifted<'T>(stepCount : Int, array : 'T[]) : 'T[]
18
18
  ```
19
19
 
20
+ ## Summary
20
21
  Shift an array circularly left or right by a specific step size.
21
22
 
22
23
  ## Type Parameters
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  uid: Qdk.Std.Arrays.ColumnAt
3
3
  title: ColumnAt function
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: function
7
7
  qsharp.namespace: Std.Arrays
8
8
  qsharp.name: ColumnAt
9
- qsharp.summary: "Extracts a column from a matrix. # Description This function extracts a column in a matrix in row-wise order. Extracting a row corresponds to element access of the first index and therefore requires no further treatment. # Type Parameters ## 'T The type of each element of `matrix`. # Input ## column Column of the matrix ## matrix 2-dimensional matrix in row-wise order # Example ```qsharp let matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; let column = ColumnAt(0, matrix); // same as: column = [1, 4, 7] ``` # See Also - Microsoft.Quantum.Arrays.Transposed - Microsoft.Quantum.Arrays.Diagonal"
9
+ qsharp.summary: "Extracts a column from a matrix."
10
10
  ---
11
11
 
12
12
  # ColumnAt function
@@ -17,6 +17,7 @@ Fully qualified name: Std.Arrays.ColumnAt
17
17
  function ColumnAt<'T>(column : Int, matrix : 'T[][]) : 'T[]
18
18
  ```
19
19
 
20
+ ## Summary
20
21
  Extracts a column from a matrix.
21
22
 
22
23
  ## Description
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  uid: Qdk.Std.Arrays.Count
3
3
  title: Count function
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: function
7
7
  qsharp.namespace: Std.Arrays
8
8
  qsharp.name: Count
9
- qsharp.summary: "Given an array and a predicate that is defined for the elements of the array, returns the number of elements an array that consists of those elements that satisfy the predicate. # Type Parameters ## 'T The type of `array` elements. # Input ## predicate A function from `'T` to Boolean that is used to filter elements. ## array An array of elements over `'T`. # Output The number of elements in `array` that satisfy the predicate. # Example ```qsharp let evensCount = Count(x -> x % 2 == 0, [1, 3, 6, 7, 9]); // evensCount is 1. ```"
9
+ qsharp.summary: "Given an array and a predicate that is defined for the elements of the array, returns the number of elements an array that consists of those elements that satisfy the predicate."
10
10
  ---
11
11
 
12
12
  # Count function
@@ -17,6 +17,7 @@ Fully qualified name: Std.Arrays.Count
17
17
  function Count<'T>(predicate : ('T -> Bool), array : 'T[]) : Int
18
18
  ```
19
19
 
20
+ ## Summary
20
21
  Given an array and a predicate that is defined
21
22
  for the elements of the array, returns the number of elements
22
23
  an array that consists of those elements that satisfy the predicate.
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  uid: Qdk.Std.Arrays.Diagonal
3
3
  title: Diagonal function
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: function
7
7
  qsharp.namespace: Std.Arrays
8
8
  qsharp.name: Diagonal
9
- qsharp.summary: "Returns an array of diagonal elements of a 2-dimensional array # Description If the 2-dimensional array has not a square shape, the diagonal over the minimum over the number of rows and columns will be returned. # Type Parameters ## 'T The type of each element of `matrix`. # Input ## matrix 2-dimensional matrix in row-wise order. # Example ```qsharp let matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; let diagonal = Diagonal(matrix); // same as: column = [1, 5, 9] ``` # See Also - Microsoft.Quantum.Arrays.Transposed"
9
+ qsharp.summary: "Returns an array of diagonal elements of a 2-dimensional array"
10
10
  ---
11
11
 
12
12
  # Diagonal function
@@ -17,6 +17,7 @@ Fully qualified name: Std.Arrays.Diagonal
17
17
  function Diagonal<'T>(matrix : 'T[][]) : 'T[]
18
18
  ```
19
19
 
20
+ ## Summary
20
21
  Returns an array of diagonal elements of a 2-dimensional array
21
22
 
22
23
  ## Description
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  uid: Qdk.Std.Arrays.DrawMany
3
3
  title: DrawMany operation
4
- ms.date: 09/30/2024 12:00:00 AM
4
+ ms.date: 10/26/2024 12:00:00 AM
5
5
  ms.topic: managed-reference
6
6
  qsharp.kind: operation
7
7
  qsharp.namespace: Std.Arrays
8
8
  qsharp.name: DrawMany
9
- qsharp.summary: "Repeats an operation for a given number of samples, collecting its outputs in an array. # Input ## op The operation to be called repeatedly. ## nSamples The number of samples of calling `op` to collect. ## input The input to be passed to `op`. # Type Parameters ## TInput The type of input expected by `op`. ## TOutput The type of output returned by `op`. # Example The following samples an alternating array of results. ```qsharp use qubit = Qubit(); let results = Microsoft.Quantum.Arrays.DrawMany(q => {X(q); M(q)}, 3, qubit); ```"
9
+ qsharp.summary: "Repeats an operation for a given number of samples, collecting its outputs in an array."
10
10
  ---
11
11
 
12
12
  # DrawMany operation
@@ -17,6 +17,7 @@ Fully qualified name: Std.Arrays.DrawMany
17
17
  operation DrawMany<'TInput, 'TOutput>(op : ('TInput => 'TOutput), nSamples : Int, input : 'TInput) : 'TOutput[]
18
18
  ```
19
19
 
20
+ ## Summary
20
21
  Repeats an operation for a given number of samples, collecting its outputs
21
22
  in an array.
22
23