qsharp-lang 1.1.2-dev → 1.1.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.
- package/dist/katas-content.generated.js +133 -122
- package/dist/language-service/language-service.d.ts +3 -1
- package/dist/language-service/language-service.js +3 -0
- package/dist/language-service/worker-proxy.js +1 -0
- package/docs/Microsoft.Quantum.Arrays/All.md +44 -0
- package/docs/Microsoft.Quantum.Arrays/Any.md +43 -0
- package/docs/Microsoft.Quantum.Arrays/Chunks.md +34 -0
- package/docs/Microsoft.Quantum.Arrays/CircularlyShifted.md +46 -0
- package/docs/Microsoft.Quantum.Arrays/ColumnAt.md +47 -0
- package/docs/Microsoft.Quantum.Arrays/Count.md +44 -0
- package/docs/Microsoft.Quantum.Arrays/Diagonal.md +43 -0
- package/docs/Microsoft.Quantum.Arrays/DrawMany.md +44 -0
- package/docs/Microsoft.Quantum.Arrays/Enumerated.md +45 -0
- package/docs/Microsoft.Quantum.Arrays/Excluding.md +47 -0
- package/docs/Microsoft.Quantum.Arrays/Filtered.md +44 -0
- package/docs/Microsoft.Quantum.Arrays/FlatMapped.md +46 -0
- package/docs/Microsoft.Quantum.Arrays/Flattened.md +38 -0
- package/docs/Microsoft.Quantum.Arrays/Fold.md +47 -0
- package/docs/Microsoft.Quantum.Arrays/ForEach.md +43 -0
- package/docs/Microsoft.Quantum.Arrays/Head.md +32 -0
- package/docs/Microsoft.Quantum.Arrays/HeadAndRest.md +32 -0
- package/docs/Microsoft.Quantum.Arrays/IndexOf.md +40 -0
- package/docs/Microsoft.Quantum.Arrays/IndexRange.md +41 -0
- package/docs/Microsoft.Quantum.Arrays/Interleaved.md +49 -0
- package/docs/Microsoft.Quantum.Arrays/IsEmpty.md +28 -0
- package/docs/Microsoft.Quantum.Arrays/IsRectangularArray.md +42 -0
- package/docs/Microsoft.Quantum.Arrays/IsSorted.md +43 -0
- package/docs/Microsoft.Quantum.Arrays/IsSquareArray.md +42 -0
- package/docs/Microsoft.Quantum.Arrays/Mapped.md +43 -0
- package/docs/Microsoft.Quantum.Arrays/MappedByIndex.md +54 -0
- package/docs/Microsoft.Quantum.Arrays/MappedOverRange.md +48 -0
- package/docs/Microsoft.Quantum.Arrays/Most.md +34 -0
- package/docs/Microsoft.Quantum.Arrays/MostAndTail.md +32 -0
- package/docs/Microsoft.Quantum.Arrays/Padded.md +50 -0
- package/docs/Microsoft.Quantum.Arrays/Partitioned.md +44 -0
- package/docs/Microsoft.Quantum.Arrays/Rest.md +34 -0
- package/docs/Microsoft.Quantum.Arrays/Reversed.md +34 -0
- package/docs/Microsoft.Quantum.Arrays/SequenceI.md +41 -0
- package/docs/Microsoft.Quantum.Arrays/SequenceL.md +41 -0
- package/docs/Microsoft.Quantum.Arrays/Sorted.md +52 -0
- package/docs/Microsoft.Quantum.Arrays/Subarray.md +51 -0
- package/docs/Microsoft.Quantum.Arrays/Swapped.md +40 -0
- package/docs/Microsoft.Quantum.Arrays/Tail.md +32 -0
- package/docs/Microsoft.Quantum.Arrays/Transposed.md +47 -0
- package/docs/Microsoft.Quantum.Arrays/Unzipped.md +46 -0
- package/docs/Microsoft.Quantum.Arrays/Where.md +36 -0
- package/docs/Microsoft.Quantum.Arrays/Windows.md +47 -0
- package/docs/Microsoft.Quantum.Arrays/Zipped.md +50 -0
- package/docs/Microsoft.Quantum.Canon/ApplyCNOTChain.md +35 -0
- package/docs/Microsoft.Quantum.Canon/ApplyControlledOnBitString.md +42 -0
- package/docs/Microsoft.Quantum.Canon/ApplyControlledOnInt.md +41 -0
- package/docs/Microsoft.Quantum.Canon/ApplyP.md +39 -0
- package/docs/Microsoft.Quantum.Canon/ApplyPauli.md +41 -0
- package/docs/Microsoft.Quantum.Canon/ApplyPauliFromBitString.md +47 -0
- package/docs/Microsoft.Quantum.Canon/ApplyPauliFromInt.md +45 -0
- package/docs/Microsoft.Quantum.Canon/ApplyQFT.md +34 -0
- package/docs/Microsoft.Quantum.Canon/ApplyToEach.md +38 -0
- package/docs/Microsoft.Quantum.Canon/ApplyToEachA.md +43 -0
- package/docs/Microsoft.Quantum.Canon/ApplyToEachC.md +43 -0
- package/docs/Microsoft.Quantum.Canon/ApplyToEachCA.md +43 -0
- package/docs/Microsoft.Quantum.Canon/ApplyXorInPlace.md +31 -0
- package/docs/Microsoft.Quantum.Canon/ApplyXorInPlaceL.md +31 -0
- package/docs/Microsoft.Quantum.Canon/CX.md +50 -0
- package/docs/Microsoft.Quantum.Canon/CY.md +44 -0
- package/docs/Microsoft.Quantum.Canon/CZ.md +44 -0
- package/docs/Microsoft.Quantum.Canon/Fst.md +20 -0
- package/docs/Microsoft.Quantum.Canon/Snd.md +20 -0
- package/docs/Microsoft.Quantum.Canon/SwapReverseRegister.md +25 -0
- package/docs/Microsoft.Quantum.Convert/BigIntAsBoolArray.md +36 -0
- package/docs/Microsoft.Quantum.Convert/BoolArrayAsBigInt.md +35 -0
- package/docs/Microsoft.Quantum.Convert/BoolArrayAsInt.md +25 -0
- package/docs/Microsoft.Quantum.Convert/BoolArrayAsResultArray.md +30 -0
- package/docs/Microsoft.Quantum.Convert/BoolAsResult.md +30 -0
- package/docs/Microsoft.Quantum.Convert/ComplexAsComplexPolar.md +30 -0
- package/docs/Microsoft.Quantum.Convert/ComplexPolarAsComplex.md +30 -0
- package/docs/Microsoft.Quantum.Convert/IntAsBigInt.md +21 -0
- package/docs/Microsoft.Quantum.Convert/IntAsBoolArray.md +36 -0
- package/docs/Microsoft.Quantum.Convert/IntAsDouble.md +21 -0
- package/docs/Microsoft.Quantum.Convert/ResultArrayAsBoolArray.md +30 -0
- package/docs/Microsoft.Quantum.Convert/ResultArrayAsInt.md +34 -0
- package/docs/Microsoft.Quantum.Convert/ResultAsBool.md +30 -0
- package/docs/Microsoft.Quantum.Core/IsRangeEmpty.md +32 -0
- package/docs/Microsoft.Quantum.Core/Length.md +28 -0
- package/docs/Microsoft.Quantum.Core/RangeEnd.md +38 -0
- package/docs/Microsoft.Quantum.Core/RangeReverse.md +32 -0
- package/docs/Microsoft.Quantum.Core/RangeStart.md +36 -0
- package/docs/Microsoft.Quantum.Core/RangeStep.md +33 -0
- package/docs/Microsoft.Quantum.Core/Repeated.md +36 -0
- package/docs/Microsoft.Quantum.Diagnostics/CheckAllZero.md +18 -0
- package/docs/Microsoft.Quantum.Diagnostics/CheckOperationsAreEqual.md +47 -0
- package/docs/Microsoft.Quantum.Diagnostics/CheckZero.md +18 -0
- package/docs/Microsoft.Quantum.Diagnostics/DumpMachine.md +18 -0
- package/docs/Microsoft.Quantum.Diagnostics/Fact.md +20 -0
- package/docs/Microsoft.Quantum.Intrinsic/CCNOT.md +35 -0
- package/docs/Microsoft.Quantum.Intrinsic/CNOT.md +47 -0
- package/docs/Microsoft.Quantum.Intrinsic/Exp.md +40 -0
- package/docs/Microsoft.Quantum.Intrinsic/H.md +34 -0
- package/docs/Microsoft.Quantum.Intrinsic/I.md +25 -0
- package/docs/Microsoft.Quantum.Intrinsic/M.md +46 -0
- package/docs/Microsoft.Quantum.Intrinsic/Measure.md +56 -0
- package/docs/Microsoft.Quantum.Intrinsic/Message.md +30 -0
- package/docs/Microsoft.Quantum.Intrinsic/R.md +42 -0
- package/docs/Microsoft.Quantum.Intrinsic/R1.md +41 -0
- package/docs/Microsoft.Quantum.Intrinsic/R1Frac.md +57 -0
- package/docs/Microsoft.Quantum.Intrinsic/RFrac.md +58 -0
- package/docs/Microsoft.Quantum.Intrinsic/Reset.md +27 -0
- package/docs/Microsoft.Quantum.Intrinsic/ResetAll.md +27 -0
- package/docs/Microsoft.Quantum.Intrinsic/Rx.md +44 -0
- package/docs/Microsoft.Quantum.Intrinsic/Rxx.md +42 -0
- package/docs/Microsoft.Quantum.Intrinsic/Ry.md +44 -0
- package/docs/Microsoft.Quantum.Intrinsic/Ryy.md +42 -0
- package/docs/Microsoft.Quantum.Intrinsic/Rz.md +44 -0
- package/docs/Microsoft.Quantum.Intrinsic/Rzz.md +42 -0
- package/docs/Microsoft.Quantum.Intrinsic/S.md +36 -0
- package/docs/Microsoft.Quantum.Intrinsic/SWAP.md +49 -0
- package/docs/Microsoft.Quantum.Intrinsic/T.md +36 -0
- package/docs/Microsoft.Quantum.Intrinsic/X.md +36 -0
- package/docs/Microsoft.Quantum.Intrinsic/Y.md +36 -0
- package/docs/Microsoft.Quantum.Intrinsic/Z.md +36 -0
- package/docs/Microsoft.Quantum.Logical/Xor.md +38 -0
- package/docs/Microsoft.Quantum.Math/AbsComplex.md +30 -0
- package/docs/Microsoft.Quantum.Math/AbsComplexPolar.md +30 -0
- package/docs/Microsoft.Quantum.Math/AbsD.md +21 -0
- package/docs/Microsoft.Quantum.Math/AbsI.md +21 -0
- package/docs/Microsoft.Quantum.Math/AbsL.md +20 -0
- package/docs/Microsoft.Quantum.Math/AbsSquaredComplex.md +30 -0
- package/docs/Microsoft.Quantum.Math/AbsSquaredComplexPolar.md +30 -0
- package/docs/Microsoft.Quantum.Math/ApproximateFactorial.md +40 -0
- package/docs/Microsoft.Quantum.Math/ArcCos.md +21 -0
- package/docs/Microsoft.Quantum.Math/ArcCosh.md +21 -0
- package/docs/Microsoft.Quantum.Math/ArcSin.md +21 -0
- package/docs/Microsoft.Quantum.Math/ArcSinh.md +21 -0
- package/docs/Microsoft.Quantum.Math/ArcTan.md +21 -0
- package/docs/Microsoft.Quantum.Math/ArcTan2.md +21 -0
- package/docs/Microsoft.Quantum.Math/ArcTanh.md +21 -0
- package/docs/Microsoft.Quantum.Math/ArgComplex.md +30 -0
- package/docs/Microsoft.Quantum.Math/ArgComplexPolar.md +28 -0
- package/docs/Microsoft.Quantum.Math/Binom.md +34 -0
- package/docs/Microsoft.Quantum.Math/BitSizeI.md +23 -0
- package/docs/Microsoft.Quantum.Math/BitSizeL.md +23 -0
- package/docs/Microsoft.Quantum.Math/Ceiling.md +23 -0
- package/docs/Microsoft.Quantum.Math/Complex.md +31 -0
- package/docs/Microsoft.Quantum.Math/ComplexPolar.md +29 -0
- package/docs/Microsoft.Quantum.Math/ContinuedFractionConvergentI.md +25 -0
- package/docs/Microsoft.Quantum.Math/ContinuedFractionConvergentL.md +25 -0
- package/docs/Microsoft.Quantum.Math/Cos.md +21 -0
- package/docs/Microsoft.Quantum.Math/Cosh.md +21 -0
- package/docs/Microsoft.Quantum.Math/DivRemI.md +21 -0
- package/docs/Microsoft.Quantum.Math/DivRemL.md +21 -0
- package/docs/Microsoft.Quantum.Math/DividedByC.md +30 -0
- package/docs/Microsoft.Quantum.Math/DividedByCP.md +30 -0
- package/docs/Microsoft.Quantum.Math/E.md +28 -0
- package/docs/Microsoft.Quantum.Math/ExpModI.md +23 -0
- package/docs/Microsoft.Quantum.Math/ExpModL.md +23 -0
- package/docs/Microsoft.Quantum.Math/ExtendedGreatestCommonDivisorI.md +23 -0
- package/docs/Microsoft.Quantum.Math/ExtendedGreatestCommonDivisorL.md +23 -0
- package/docs/Microsoft.Quantum.Math/FactorialI.md +38 -0
- package/docs/Microsoft.Quantum.Math/FactorialL.md +32 -0
- package/docs/Microsoft.Quantum.Math/Floor.md +23 -0
- package/docs/Microsoft.Quantum.Math/GreatestCommonDivisorI.md +23 -0
- package/docs/Microsoft.Quantum.Math/GreatestCommonDivisorL.md +23 -0
- package/docs/Microsoft.Quantum.Math/HammingWeightI.md +21 -0
- package/docs/Microsoft.Quantum.Math/InverseModI.md +25 -0
- package/docs/Microsoft.Quantum.Math/InverseModL.md +25 -0
- package/docs/Microsoft.Quantum.Math/IsCoprimeI.md +34 -0
- package/docs/Microsoft.Quantum.Math/IsCoprimeL.md +34 -0
- package/docs/Microsoft.Quantum.Math/IsInfinite.md +49 -0
- package/docs/Microsoft.Quantum.Math/IsNaN.md +30 -0
- package/docs/Microsoft.Quantum.Math/LargestFixedPoint.md +31 -0
- package/docs/Microsoft.Quantum.Math/Lg.md +21 -0
- package/docs/Microsoft.Quantum.Math/Log.md +21 -0
- package/docs/Microsoft.Quantum.Math/Log10.md +21 -0
- package/docs/Microsoft.Quantum.Math/LogFactorialD.md +35 -0
- package/docs/Microsoft.Quantum.Math/LogGammaD.md +39 -0
- package/docs/Microsoft.Quantum.Math/LogOf2.md +24 -0
- package/docs/Microsoft.Quantum.Math/Max.md +28 -0
- package/docs/Microsoft.Quantum.Math/MaxD.md +21 -0
- package/docs/Microsoft.Quantum.Math/MaxI.md +21 -0
- package/docs/Microsoft.Quantum.Math/MaxL.md +21 -0
- package/docs/Microsoft.Quantum.Math/Min.md +28 -0
- package/docs/Microsoft.Quantum.Math/MinD.md +21 -0
- package/docs/Microsoft.Quantum.Math/MinI.md +21 -0
- package/docs/Microsoft.Quantum.Math/MinL.md +21 -0
- package/docs/Microsoft.Quantum.Math/MinusC.md +30 -0
- package/docs/Microsoft.Quantum.Math/MinusCP.md +30 -0
- package/docs/Microsoft.Quantum.Math/ModulusI.md +23 -0
- package/docs/Microsoft.Quantum.Math/ModulusL.md +23 -0
- package/docs/Microsoft.Quantum.Math/NegationC.md +28 -0
- package/docs/Microsoft.Quantum.Math/NegationCP.md +28 -0
- package/docs/Microsoft.Quantum.Math/PI.md +28 -0
- package/docs/Microsoft.Quantum.Math/PNorm.md +34 -0
- package/docs/Microsoft.Quantum.Math/PNormalized.md +39 -0
- package/docs/Microsoft.Quantum.Math/PlusC.md +30 -0
- package/docs/Microsoft.Quantum.Math/PlusCP.md +30 -0
- package/docs/Microsoft.Quantum.Math/PowC.md +32 -0
- package/docs/Microsoft.Quantum.Math/PowCP.md +32 -0
- package/docs/Microsoft.Quantum.Math/RealMod.md +38 -0
- package/docs/Microsoft.Quantum.Math/Round.md +23 -0
- package/docs/Microsoft.Quantum.Math/SignD.md +21 -0
- package/docs/Microsoft.Quantum.Math/SignI.md +21 -0
- package/docs/Microsoft.Quantum.Math/SignL.md +21 -0
- package/docs/Microsoft.Quantum.Math/Sin.md +21 -0
- package/docs/Microsoft.Quantum.Math/Sinh.md +21 -0
- package/docs/Microsoft.Quantum.Math/SmallestFixedPoint.md +30 -0
- package/docs/Microsoft.Quantum.Math/Sqrt.md +21 -0
- package/docs/Microsoft.Quantum.Math/SquaredNorm.md +32 -0
- package/docs/Microsoft.Quantum.Math/Tan.md +21 -0
- package/docs/Microsoft.Quantum.Math/Tanh.md +21 -0
- package/docs/Microsoft.Quantum.Math/TimesC.md +30 -0
- package/docs/Microsoft.Quantum.Math/TimesCP.md +30 -0
- package/docs/Microsoft.Quantum.Math/TrailingZeroCountI.md +23 -0
- package/docs/Microsoft.Quantum.Math/TrailingZeroCountL.md +23 -0
- package/docs/Microsoft.Quantum.Math/Truncate.md +23 -0
- package/docs/Microsoft.Quantum.Measurement/MResetEachZ.md +28 -0
- package/docs/Microsoft.Quantum.Measurement/MResetX.md +37 -0
- package/docs/Microsoft.Quantum.Measurement/MResetY.md +37 -0
- package/docs/Microsoft.Quantum.Measurement/MResetZ.md +37 -0
- package/docs/Microsoft.Quantum.Measurement/MeasureAllZ.md +36 -0
- package/docs/Microsoft.Quantum.Measurement/MeasureEachZ.md +30 -0
- package/docs/Microsoft.Quantum.Measurement/MeasureInteger.md +36 -0
- package/docs/Microsoft.Quantum.Random/DrawRandomDouble.md +40 -0
- package/docs/Microsoft.Quantum.Random/DrawRandomInt.md +40 -0
- package/docs/Microsoft.Quantum.ResourceEstimation/AccountForEstimates.md +35 -0
- package/docs/Microsoft.Quantum.ResourceEstimation/AuxQubitCount.md +23 -0
- package/docs/Microsoft.Quantum.ResourceEstimation/BeginEstimateCaching.md +39 -0
- package/docs/Microsoft.Quantum.ResourceEstimation/BeginRepeatEstimates.md +36 -0
- package/docs/Microsoft.Quantum.ResourceEstimation/CczCount.md +23 -0
- package/docs/Microsoft.Quantum.ResourceEstimation/EndEstimateCaching.md +25 -0
- package/docs/Microsoft.Quantum.ResourceEstimation/EndRepeatEstimates.md +22 -0
- package/docs/Microsoft.Quantum.ResourceEstimation/MeasurementCount.md +23 -0
- package/docs/Microsoft.Quantum.ResourceEstimation/PSSPCLayout.md +25 -0
- package/docs/Microsoft.Quantum.ResourceEstimation/RepeatEstimates.md +32 -0
- package/docs/Microsoft.Quantum.ResourceEstimation/RotationCount.md +23 -0
- package/docs/Microsoft.Quantum.ResourceEstimation/RotationDepth.md +23 -0
- package/docs/Microsoft.Quantum.ResourceEstimation/SingleVariant.md +23 -0
- package/docs/Microsoft.Quantum.ResourceEstimation/TCount.md +23 -0
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/AddLE.md +29 -0
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfEqualL.md +23 -0
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfEqualLE.md +25 -0
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfGreaterL.md +23 -0
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfGreaterLE.md +25 -0
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfGreaterOrEqualL.md +23 -0
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfGreaterOrEqualLE.md +25 -0
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfLessL.md +23 -0
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfLessLE.md +25 -0
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfLessOrEqualL.md +23 -0
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/ApplyIfLessOrEqualLE.md +25 -0
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/FourierTDIncByLE.md +32 -0
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/IncByI.md +27 -0
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/IncByIUsingIncByLE.md +27 -0
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/IncByL.md +27 -0
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/IncByLE.md +27 -0
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/IncByLEUsingAddLE.md +36 -0
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/IncByLUsingIncByLE.md +27 -0
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/LookAheadDKRSAddLE.md +36 -0
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/MAJ.md +34 -0
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/ReflectAboutInteger.md +37 -0
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/RippleCarryCGAddLE.md +34 -0
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/RippleCarryCGIncByLE.md +34 -0
- package/docs/Microsoft.Quantum.Unstable.Arithmetic/RippleCarryTTKIncByLE.md +35 -0
- package/docs/Microsoft.Quantum.Unstable.StatePreparation/ApproximatelyPreparePureStateCP.md +68 -0
- package/docs/Microsoft.Quantum.Unstable.StatePreparation/PreparePureStateD.md +65 -0
- package/docs/Microsoft.Quantum.Unstable.TableLookup/Select.md +53 -0
- package/docs/toc.yml +305 -0
- package/lib/node/qsc_wasm.cjs +40 -13
- package/lib/node/qsc_wasm.d.cts +15 -0
- package/lib/node/qsc_wasm_bg.wasm +0 -0
- package/lib/web/qsc_wasm.d.ts +17 -0
- package/lib/web/qsc_wasm.js +38 -11
- package/lib/web/qsc_wasm_bg.wasm +0 -0
- package/package.json +4 -2
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Diagnostics.CheckOperationsAreEqual
|
|
3
|
+
title: CheckOperationsAreEqual operation
|
|
4
|
+
ms.date: 02/16/2024 12:00:00 AM
|
|
5
|
+
ms.topic: managed-reference
|
|
6
|
+
qsharp.kind: opeartion
|
|
7
|
+
qsharp.namespace: Microsoft.Quantum.Diagnostics
|
|
8
|
+
qsharp.name: CheckOperationsAreEqual
|
|
9
|
+
qsharp.summary: Given two operations, checks that they act identically for all input states.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# CheckOperationsAreEqual operation
|
|
13
|
+
|
|
14
|
+
Namespace: [Microsoft.Quantum.Diagnostics](xref:Microsoft.Quantum.Diagnostics)
|
|
15
|
+
|
|
16
|
+
```qsharp
|
|
17
|
+
operation CheckOperationsAreEqual(nQubits : Int, actual : (Qubit[] => Unit), expected : (Qubit[] => Unit is Adj)) : Bool
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Summary
|
|
21
|
+
Given two operations, checks that they act identically for all input states.
|
|
22
|
+
|
|
23
|
+
## Description
|
|
24
|
+
This check is implemented by using the Choi–Jamiołkowski isomorphism to reduce
|
|
25
|
+
this check to a check on two entangled registers.
|
|
26
|
+
Thus, this operation needs only a single call to each operation being tested,
|
|
27
|
+
but requires twice as many qubits to be allocated.
|
|
28
|
+
This check can be used to ensure, for instance, that an optimized version of an
|
|
29
|
+
operation acts identically to its naïve implementation, or that an operation
|
|
30
|
+
which acts on a range of non-quantum inputs agrees with known cases.
|
|
31
|
+
|
|
32
|
+
## Remarks
|
|
33
|
+
This operation requires that the operation modeling the expected behavior is
|
|
34
|
+
adjointable, so that the inverse can be performed on the target register alone.
|
|
35
|
+
Formally, one can specify a transpose operation, which relaxes this requirement,
|
|
36
|
+
but the transpose operation is not in general physically realizable for arbitrary
|
|
37
|
+
quantum operations and thus is not included here as an option.
|
|
38
|
+
|
|
39
|
+
## Input
|
|
40
|
+
### nQubits
|
|
41
|
+
Number of qubits to pass to each operation.
|
|
42
|
+
### actual
|
|
43
|
+
Operation to be tested.
|
|
44
|
+
### expected
|
|
45
|
+
Operation defining the expected behavior for the operation under test.
|
|
46
|
+
## Output
|
|
47
|
+
True if operations are equal, false otherwise.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Diagnostics.CheckZero
|
|
3
|
+
title: CheckZero operation
|
|
4
|
+
ms.date: 02/16/2024 12:00:00 AM
|
|
5
|
+
ms.topic: managed-reference
|
|
6
|
+
qsharp.kind: opeartion
|
|
7
|
+
qsharp.namespace: Microsoft.Quantum.Diagnostics
|
|
8
|
+
qsharp.name: CheckZero
|
|
9
|
+
qsharp.summary:
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# CheckZero operation
|
|
13
|
+
|
|
14
|
+
Namespace: [Microsoft.Quantum.Diagnostics](xref:Microsoft.Quantum.Diagnostics)
|
|
15
|
+
|
|
16
|
+
```qsharp
|
|
17
|
+
operation CheckZero(qubit : Qubit) : Bool
|
|
18
|
+
```
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Diagnostics.DumpMachine
|
|
3
|
+
title: DumpMachine function
|
|
4
|
+
ms.date: 02/16/2024 12:00:00 AM
|
|
5
|
+
ms.topic: managed-reference
|
|
6
|
+
qsharp.kind: function
|
|
7
|
+
qsharp.namespace: Microsoft.Quantum.Diagnostics
|
|
8
|
+
qsharp.name: DumpMachine
|
|
9
|
+
qsharp.summary:
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# DumpMachine function
|
|
13
|
+
|
|
14
|
+
Namespace: [Microsoft.Quantum.Diagnostics](xref:Microsoft.Quantum.Diagnostics)
|
|
15
|
+
|
|
16
|
+
```qsharp
|
|
17
|
+
function DumpMachine() : Unit
|
|
18
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Diagnostics.Fact
|
|
3
|
+
title: Fact function
|
|
4
|
+
ms.date: 02/16/2024 12:00:00 AM
|
|
5
|
+
ms.topic: managed-reference
|
|
6
|
+
qsharp.kind: function
|
|
7
|
+
qsharp.namespace: Microsoft.Quantum.Diagnostics
|
|
8
|
+
qsharp.name: Fact
|
|
9
|
+
qsharp.summary: Checks whether a classical condition is true, and throws an exception if it is not.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Fact function
|
|
13
|
+
|
|
14
|
+
Namespace: [Microsoft.Quantum.Diagnostics](xref:Microsoft.Quantum.Diagnostics)
|
|
15
|
+
|
|
16
|
+
```qsharp
|
|
17
|
+
function Fact(actual : Bool, message : String) : Unit
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Checks whether a classical condition is true, and throws an exception if it is not.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Intrinsic.CCNOT
|
|
3
|
+
title: CCNOT operation
|
|
4
|
+
ms.date: 02/16/2024 12:00:00 AM
|
|
5
|
+
ms.topic: managed-reference
|
|
6
|
+
qsharp.kind: opeartion
|
|
7
|
+
qsharp.namespace: Microsoft.Quantum.Intrinsic
|
|
8
|
+
qsharp.name: CCNOT
|
|
9
|
+
qsharp.summary: Applies the doubly controlled–NOT (CCNOT) gate to three qubits.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# CCNOT operation
|
|
13
|
+
|
|
14
|
+
Namespace: [Microsoft.Quantum.Intrinsic](xref:Microsoft.Quantum.Intrinsic)
|
|
15
|
+
|
|
16
|
+
```qsharp
|
|
17
|
+
operation CCNOT(control1 : Qubit, control2 : Qubit, target : Qubit) : Unit is Adj + Ctl
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Summary
|
|
21
|
+
Applies the doubly controlled–NOT (CCNOT) gate to three qubits.
|
|
22
|
+
|
|
23
|
+
## Input
|
|
24
|
+
### control1
|
|
25
|
+
First control qubit for the CCNOT gate.
|
|
26
|
+
### control2
|
|
27
|
+
Second control qubit for the CCNOT gate.
|
|
28
|
+
### target
|
|
29
|
+
Target qubit for the CCNOT gate.
|
|
30
|
+
|
|
31
|
+
## Remarks
|
|
32
|
+
Equivalent to:
|
|
33
|
+
```qsharp
|
|
34
|
+
Controlled X([control1, control2], target);
|
|
35
|
+
```
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Intrinsic.CNOT
|
|
3
|
+
title: CNOT operation
|
|
4
|
+
ms.date: 02/16/2024 12:00:00 AM
|
|
5
|
+
ms.topic: managed-reference
|
|
6
|
+
qsharp.kind: opeartion
|
|
7
|
+
qsharp.namespace: Microsoft.Quantum.Intrinsic
|
|
8
|
+
qsharp.name: CNOT
|
|
9
|
+
qsharp.summary: Applies the controlled-NOT (CNOT) gate to a pair of qubits.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# CNOT operation
|
|
13
|
+
|
|
14
|
+
Namespace: [Microsoft.Quantum.Intrinsic](xref:Microsoft.Quantum.Intrinsic)
|
|
15
|
+
|
|
16
|
+
```qsharp
|
|
17
|
+
operation CNOT(control : Qubit, target : Qubit) : Unit is Adj + Ctl
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Summary
|
|
21
|
+
Applies the controlled-NOT (CNOT) gate to a pair of qubits.
|
|
22
|
+
|
|
23
|
+
## Input
|
|
24
|
+
### control
|
|
25
|
+
Control qubit for the CNOT gate.
|
|
26
|
+
### target
|
|
27
|
+
Target qubit for the CNOT gate.
|
|
28
|
+
|
|
29
|
+
## Remarks
|
|
30
|
+
$$
|
|
31
|
+
\begin{align}
|
|
32
|
+
\operatorname{CNOT} \mathrel{:=}
|
|
33
|
+
\begin{bmatrix}
|
|
34
|
+
1 & 0 & 0 & 0 \\\\
|
|
35
|
+
0 & 1 & 0 & 0 \\\\
|
|
36
|
+
0 & 0 & 0 & 1 \\\\
|
|
37
|
+
0 & 0 & 1 & 0
|
|
38
|
+
\end{bmatrix},
|
|
39
|
+
\end{align}
|
|
40
|
+
$$
|
|
41
|
+
|
|
42
|
+
where rows and columns are ordered as in the quantum concepts guide.
|
|
43
|
+
|
|
44
|
+
Equivalent to:
|
|
45
|
+
```qsharp
|
|
46
|
+
Controlled X([control], target);
|
|
47
|
+
```
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Intrinsic.Exp
|
|
3
|
+
title: Exp operation
|
|
4
|
+
ms.date: 02/16/2024 12:00:00 AM
|
|
5
|
+
ms.topic: managed-reference
|
|
6
|
+
qsharp.kind: opeartion
|
|
7
|
+
qsharp.namespace: Microsoft.Quantum.Intrinsic
|
|
8
|
+
qsharp.name: Exp
|
|
9
|
+
qsharp.summary: Applies the exponential of a multi-qubit Pauli operator.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Exp operation
|
|
13
|
+
|
|
14
|
+
Namespace: [Microsoft.Quantum.Intrinsic](xref:Microsoft.Quantum.Intrinsic)
|
|
15
|
+
|
|
16
|
+
```qsharp
|
|
17
|
+
operation Exp(paulis : Pauli[], theta : Double, qubits : Qubit[]) : Unit is Adj + Ctl
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Summary
|
|
21
|
+
Applies the exponential of a multi-qubit Pauli operator.
|
|
22
|
+
|
|
23
|
+
## Input
|
|
24
|
+
### paulis
|
|
25
|
+
Array of single-qubit Pauli values indicating the tensor product
|
|
26
|
+
factors on each qubit.
|
|
27
|
+
### theta
|
|
28
|
+
Angle about the given multi-qubit Pauli operator by which the
|
|
29
|
+
target register is to be rotated.
|
|
30
|
+
### qubits
|
|
31
|
+
Register to apply the given rotation to.
|
|
32
|
+
|
|
33
|
+
## Remarks
|
|
34
|
+
$$
|
|
35
|
+
\begin{align}
|
|
36
|
+
e^{i \theta [P_0 \otimes P_1 \cdots P_{N-1}]},
|
|
37
|
+
\end{align}
|
|
38
|
+
$$
|
|
39
|
+
where $P_i$ is the $i$th element of `paulis`, and where
|
|
40
|
+
$N = $`Length(paulis)`.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Intrinsic.H
|
|
3
|
+
title: H operation
|
|
4
|
+
ms.date: 02/16/2024 12:00:00 AM
|
|
5
|
+
ms.topic: managed-reference
|
|
6
|
+
qsharp.kind: opeartion
|
|
7
|
+
qsharp.namespace: Microsoft.Quantum.Intrinsic
|
|
8
|
+
qsharp.name: H
|
|
9
|
+
qsharp.summary: Applies the Hadamard transformation to a single qubit.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# H operation
|
|
13
|
+
|
|
14
|
+
Namespace: [Microsoft.Quantum.Intrinsic](xref:Microsoft.Quantum.Intrinsic)
|
|
15
|
+
|
|
16
|
+
```qsharp
|
|
17
|
+
operation H(qubit : Qubit) : Unit is Adj + Ctl
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Summary
|
|
21
|
+
Applies the Hadamard transformation to a single qubit.
|
|
22
|
+
|
|
23
|
+
## Input
|
|
24
|
+
### qubit
|
|
25
|
+
Qubit to which the gate should be applied.
|
|
26
|
+
|
|
27
|
+
## Remarks
|
|
28
|
+
$$
|
|
29
|
+
\begin{align}
|
|
30
|
+
e^{i \theta [P_0 \otimes P_1 \cdots P_{N-1}]},
|
|
31
|
+
\end{align}
|
|
32
|
+
$$
|
|
33
|
+
where $P_i$ is the $i$th element of `paulis`, and where
|
|
34
|
+
$N = $`Length(paulis)`.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Intrinsic.I
|
|
3
|
+
title: I operation
|
|
4
|
+
ms.date: 02/16/2024 12:00:00 AM
|
|
5
|
+
ms.topic: managed-reference
|
|
6
|
+
qsharp.kind: opeartion
|
|
7
|
+
qsharp.namespace: Microsoft.Quantum.Intrinsic
|
|
8
|
+
qsharp.name: I
|
|
9
|
+
qsharp.summary: Performs the identity operation (no-op) on a single qubit.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# I operation
|
|
13
|
+
|
|
14
|
+
Namespace: [Microsoft.Quantum.Intrinsic](xref:Microsoft.Quantum.Intrinsic)
|
|
15
|
+
|
|
16
|
+
```qsharp
|
|
17
|
+
operation I(target : Qubit) : Unit is Adj + Ctl
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Summary
|
|
21
|
+
Performs the identity operation (no-op) on a single qubit.
|
|
22
|
+
|
|
23
|
+
## Remarks
|
|
24
|
+
This is a no-op. It is provided for completeness and because
|
|
25
|
+
sometimes it is useful to call the identity in an algorithm or to pass it as a parameter.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Intrinsic.M
|
|
3
|
+
title: M operation
|
|
4
|
+
ms.date: 02/16/2024 12:00:00 AM
|
|
5
|
+
ms.topic: managed-reference
|
|
6
|
+
qsharp.kind: opeartion
|
|
7
|
+
qsharp.namespace: Microsoft.Quantum.Intrinsic
|
|
8
|
+
qsharp.name: M
|
|
9
|
+
qsharp.summary: Performs a measurement of a single qubit in the
|
|
10
|
+
Pauli _Z_ basis.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# M operation
|
|
14
|
+
|
|
15
|
+
Namespace: [Microsoft.Quantum.Intrinsic](xref:Microsoft.Quantum.Intrinsic)
|
|
16
|
+
|
|
17
|
+
```qsharp
|
|
18
|
+
operation M(qubit : Qubit) : Result
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Summary
|
|
22
|
+
Performs a measurement of a single qubit in the
|
|
23
|
+
Pauli _Z_ basis.
|
|
24
|
+
|
|
25
|
+
## Input
|
|
26
|
+
### qubit
|
|
27
|
+
Qubit to be measured.
|
|
28
|
+
|
|
29
|
+
## Output
|
|
30
|
+
`Zero` if the +1 eigenvalue is observed, and `One` if
|
|
31
|
+
the -1 eigenvalue is observed.
|
|
32
|
+
|
|
33
|
+
## Remarks
|
|
34
|
+
The output result is given by
|
|
35
|
+
the distribution
|
|
36
|
+
$$
|
|
37
|
+
\begin{align}
|
|
38
|
+
\Pr(\texttt{Zero} | \ket{\psi}) =
|
|
39
|
+
\braket{\psi | 0} \braket{0 | \psi}.
|
|
40
|
+
\end{align}
|
|
41
|
+
$$
|
|
42
|
+
|
|
43
|
+
Equivalent to:
|
|
44
|
+
```qsharp
|
|
45
|
+
Measure([PauliZ], [qubit]);
|
|
46
|
+
```
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Intrinsic.Measure
|
|
3
|
+
title: Measure operation
|
|
4
|
+
ms.date: 02/16/2024 12:00:00 AM
|
|
5
|
+
ms.topic: managed-reference
|
|
6
|
+
qsharp.kind: opeartion
|
|
7
|
+
qsharp.namespace: Microsoft.Quantum.Intrinsic
|
|
8
|
+
qsharp.name: Measure
|
|
9
|
+
qsharp.summary: Performs a joint measurement of one or more qubits in the
|
|
10
|
+
specified Pauli bases.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Measure operation
|
|
14
|
+
|
|
15
|
+
Namespace: [Microsoft.Quantum.Intrinsic](xref:Microsoft.Quantum.Intrinsic)
|
|
16
|
+
|
|
17
|
+
```qsharp
|
|
18
|
+
operation Measure(bases : Pauli[], qubits : Qubit[]) : Result
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Summary
|
|
22
|
+
Performs a joint measurement of one or more qubits in the
|
|
23
|
+
specified Pauli bases.
|
|
24
|
+
|
|
25
|
+
## Input
|
|
26
|
+
### bases
|
|
27
|
+
Array of single-qubit Pauli values indicating the tensor product
|
|
28
|
+
factors on each qubit.
|
|
29
|
+
### qubits
|
|
30
|
+
Register of qubits to be measured.
|
|
31
|
+
|
|
32
|
+
## Output
|
|
33
|
+
`Zero` if the +1 eigenvalue is observed, and `One` if
|
|
34
|
+
the -1 eigenvalue is observed.
|
|
35
|
+
|
|
36
|
+
## Remarks
|
|
37
|
+
The output result is given by the distribution:
|
|
38
|
+
$$
|
|
39
|
+
\begin{align}
|
|
40
|
+
\Pr(\texttt{Zero} | \ket{\psi}) =
|
|
41
|
+
\frac12 \braket{
|
|
42
|
+
\psi \mid|
|
|
43
|
+
\left(
|
|
44
|
+
\boldone + P_0 \otimes P_1 \otimes \cdots \otimes P_{N-1}
|
|
45
|
+
\right) \mid|
|
|
46
|
+
\psi
|
|
47
|
+
},
|
|
48
|
+
\end{align}
|
|
49
|
+
$$
|
|
50
|
+
where $P_i$ is the $i$th element of `bases`, and where
|
|
51
|
+
$N = \texttt{Length}(\texttt{bases})$.
|
|
52
|
+
That is, measurement returns a `Result` $d$ such that the eigenvalue of the
|
|
53
|
+
observed measurement effect is $(-1)^d$.
|
|
54
|
+
|
|
55
|
+
If the basis array and qubit array are different lengths, then the
|
|
56
|
+
operation will fail.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Intrinsic.Message
|
|
3
|
+
title: Message function
|
|
4
|
+
ms.date: 02/16/2024 12:00:00 AM
|
|
5
|
+
ms.topic: managed-reference
|
|
6
|
+
qsharp.kind: function
|
|
7
|
+
qsharp.namespace: Microsoft.Quantum.Intrinsic
|
|
8
|
+
qsharp.name: Message
|
|
9
|
+
qsharp.summary: Logs a message.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Message function
|
|
13
|
+
|
|
14
|
+
Namespace: [Microsoft.Quantum.Intrinsic](xref:Microsoft.Quantum.Intrinsic)
|
|
15
|
+
|
|
16
|
+
```qsharp
|
|
17
|
+
function Message(msg : String) : Unit
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Summary
|
|
21
|
+
Logs a message.
|
|
22
|
+
|
|
23
|
+
## Input
|
|
24
|
+
### msg
|
|
25
|
+
The message to be reported.
|
|
26
|
+
|
|
27
|
+
## Remarks
|
|
28
|
+
The specific behavior of this function is simulator-dependent,
|
|
29
|
+
but in most cases the given message will be written to the console.
|
|
30
|
+
```
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Intrinsic.R
|
|
3
|
+
title: R operation
|
|
4
|
+
ms.date: 02/16/2024 12:00:00 AM
|
|
5
|
+
ms.topic: managed-reference
|
|
6
|
+
qsharp.kind: opeartion
|
|
7
|
+
qsharp.namespace: Microsoft.Quantum.Intrinsic
|
|
8
|
+
qsharp.name: R
|
|
9
|
+
qsharp.summary: Applies a rotation about the given Pauli axis.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# R operation
|
|
13
|
+
|
|
14
|
+
Namespace: [Microsoft.Quantum.Intrinsic](xref:Microsoft.Quantum.Intrinsic)
|
|
15
|
+
|
|
16
|
+
```qsharp
|
|
17
|
+
operation R(pauli : Pauli, theta : Double, qubit : Qubit) : Unit is Adj + Ctl
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Summary
|
|
21
|
+
Applies a rotation about the given Pauli axis.
|
|
22
|
+
|
|
23
|
+
## Input
|
|
24
|
+
### pauli
|
|
25
|
+
Pauli operator (μ) to be exponentiated to form the rotation.
|
|
26
|
+
### theta
|
|
27
|
+
Angle in radians about which the qubit is to be rotated.
|
|
28
|
+
### qubit
|
|
29
|
+
Qubit to which the gate should be applied.
|
|
30
|
+
|
|
31
|
+
## Remarks
|
|
32
|
+
$$
|
|
33
|
+
\begin{align}
|
|
34
|
+
R_{\mu}(\theta) \mathrel{:=}
|
|
35
|
+
e^{-i \theta \sigma_{\mu} / 2},
|
|
36
|
+
\end{align}
|
|
37
|
+
$$
|
|
38
|
+
where $\mu \in \{I, X, Y, Z\}$.
|
|
39
|
+
|
|
40
|
+
When called with `pauli = PauliI`, this operation applies
|
|
41
|
+
a *global phase*. This phase can be significant
|
|
42
|
+
when used with the `Controlled` functor.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Intrinsic.R1
|
|
3
|
+
title: R1 operation
|
|
4
|
+
ms.date: 02/16/2024 12:00:00 AM
|
|
5
|
+
ms.topic: managed-reference
|
|
6
|
+
qsharp.kind: opeartion
|
|
7
|
+
qsharp.namespace: Microsoft.Quantum.Intrinsic
|
|
8
|
+
qsharp.name: R1
|
|
9
|
+
qsharp.summary: Applies a rotation about the |1⟩ state by a given angle.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# R1 operation
|
|
13
|
+
|
|
14
|
+
Namespace: [Microsoft.Quantum.Intrinsic](xref:Microsoft.Quantum.Intrinsic)
|
|
15
|
+
|
|
16
|
+
```qsharp
|
|
17
|
+
operation R1(theta : Double, qubit : Qubit) : Unit is Adj + Ctl
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Summary
|
|
21
|
+
Applies a rotation about the |1⟩ state by a given angle.
|
|
22
|
+
|
|
23
|
+
## Input
|
|
24
|
+
### theta
|
|
25
|
+
Angle about which the qubit is to be rotated.
|
|
26
|
+
### qubit
|
|
27
|
+
Qubit to which the gate should be applied.
|
|
28
|
+
|
|
29
|
+
## Remarks
|
|
30
|
+
$$
|
|
31
|
+
\begin{align}
|
|
32
|
+
R_1(\theta) \mathrel{:=}
|
|
33
|
+
\operatorname{diag}(1, e^{i\theta}).
|
|
34
|
+
\end{align}
|
|
35
|
+
$$
|
|
36
|
+
|
|
37
|
+
Equivalent to:
|
|
38
|
+
```qsharp
|
|
39
|
+
R(PauliZ, theta, qubit);
|
|
40
|
+
R(PauliI, -theta, qubit);
|
|
41
|
+
```
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Intrinsic.R1Frac
|
|
3
|
+
title: R1Frac operation
|
|
4
|
+
ms.date: 02/16/2024 12:00:00 AM
|
|
5
|
+
ms.topic: managed-reference
|
|
6
|
+
qsharp.kind: opeartion
|
|
7
|
+
qsharp.namespace: Microsoft.Quantum.Intrinsic
|
|
8
|
+
qsharp.name: R1Frac
|
|
9
|
+
qsharp.summary: Applies a rotation about the |1⟩ state by an angle specified
|
|
10
|
+
as a dyadic fraction.
|
|
11
|
+
|
|
12
|
+
WARNING:
|
|
13
|
+
This operation uses the **opposite** sign convention from
|
|
14
|
+
Microsoft.Quantum.Intrinsic.R, and does not include the
|
|
15
|
+
factor of 1/2 included by Microsoft.Quantum.Intrinsic.R1.
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# R1Frac operation
|
|
19
|
+
|
|
20
|
+
Namespace: [Microsoft.Quantum.Intrinsic](xref:Microsoft.Quantum.Intrinsic)
|
|
21
|
+
|
|
22
|
+
```qsharp
|
|
23
|
+
operation R1Frac(numerator : Int, power : Int, qubit : Qubit) : Unit is Adj + Ctl
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Summary
|
|
27
|
+
Applies a rotation about the |1⟩ state by an angle specified
|
|
28
|
+
as a dyadic fraction.
|
|
29
|
+
|
|
30
|
+
WARNING:
|
|
31
|
+
This operation uses the **opposite** sign convention from
|
|
32
|
+
Microsoft.Quantum.Intrinsic.R, and does not include the
|
|
33
|
+
factor of 1/2 included by Microsoft.Quantum.Intrinsic.R1.
|
|
34
|
+
|
|
35
|
+
## Input
|
|
36
|
+
### numerator
|
|
37
|
+
Numerator in the dyadic fraction representation of the angle
|
|
38
|
+
by which the qubit is to be rotated. This angle is expressed in radians.
|
|
39
|
+
### power
|
|
40
|
+
Power of two specifying the denominator of the angle by which
|
|
41
|
+
the qubit is to be rotated. This angle is expressed in radians.
|
|
42
|
+
### qubit
|
|
43
|
+
Qubit to which the gate should be applied.
|
|
44
|
+
|
|
45
|
+
## Remarks
|
|
46
|
+
$$
|
|
47
|
+
\begin{align}
|
|
48
|
+
R_1(n, k) \mathrel{:=}
|
|
49
|
+
\operatorname{diag}(1, e^{i \pi k / 2^n}).
|
|
50
|
+
\end{align}
|
|
51
|
+
$$
|
|
52
|
+
|
|
53
|
+
Equivalent to:
|
|
54
|
+
```qsharp
|
|
55
|
+
RFrac(PauliZ, -numerator, denominator + 1, qubit);
|
|
56
|
+
RFrac(PauliI, numerator, denominator + 1, qubit);
|
|
57
|
+
```
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Intrinsic.RFrac
|
|
3
|
+
title: RFrac operation
|
|
4
|
+
ms.date: 02/16/2024 12:00:00 AM
|
|
5
|
+
ms.topic: managed-reference
|
|
6
|
+
qsharp.kind: opeartion
|
|
7
|
+
qsharp.namespace: Microsoft.Quantum.Intrinsic
|
|
8
|
+
qsharp.name: RFrac
|
|
9
|
+
qsharp.summary: Applies a rotation about the given Pauli axis by an angle specified
|
|
10
|
+
as a dyadic fraction.
|
|
11
|
+
|
|
12
|
+
WARNING:
|
|
13
|
+
This operation uses the **opposite** sign convention from
|
|
14
|
+
Microsoft.Quantum.Intrinsic.R.
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# RFrac operation
|
|
18
|
+
|
|
19
|
+
Namespace: [Microsoft.Quantum.Intrinsic](xref:Microsoft.Quantum.Intrinsic)
|
|
20
|
+
|
|
21
|
+
```qsharp
|
|
22
|
+
operation RFrac(pauli : Pauli, numerator : Int, power : Int, qubit : Qubit) : Unit is Adj + Ctl
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Summary
|
|
26
|
+
Applies a rotation about the given Pauli axis by an angle specified
|
|
27
|
+
as a dyadic fraction.
|
|
28
|
+
|
|
29
|
+
WARNING:
|
|
30
|
+
This operation uses the **opposite** sign convention from
|
|
31
|
+
Microsoft.Quantum.Intrinsic.R.
|
|
32
|
+
|
|
33
|
+
## Input
|
|
34
|
+
### pauli
|
|
35
|
+
Pauli operator to be exponentiated to form the rotation.
|
|
36
|
+
### numerator
|
|
37
|
+
Numerator in the dyadic fraction representation of the angle
|
|
38
|
+
by which the qubit is to be rotated. This angle is expressed in radians.
|
|
39
|
+
### power
|
|
40
|
+
Power of two specifying the denominator of the angle by which
|
|
41
|
+
the qubit is to be rotated. This angle is expressed in radians.
|
|
42
|
+
### qubit
|
|
43
|
+
Qubit to which the gate should be applied.
|
|
44
|
+
|
|
45
|
+
## Remarks
|
|
46
|
+
$$
|
|
47
|
+
\begin{align}
|
|
48
|
+
R_{\mu}(n, k) \mathrel{:=}
|
|
49
|
+
e^{i \pi n \sigma_{\mu} / 2^k},
|
|
50
|
+
\end{align}
|
|
51
|
+
$$
|
|
52
|
+
where $\mu \in \{I, X, Y, Z\}$.
|
|
53
|
+
|
|
54
|
+
Equivalent to:
|
|
55
|
+
```qsharp
|
|
56
|
+
// PI() is a Q# function that returns an approximation of π.
|
|
57
|
+
R(pauli, -PI() * IntAsDouble(numerator) / IntAsDouble(2 ^ (power - 1)), qubit);
|
|
58
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Intrinsic.Reset
|
|
3
|
+
title: Reset operation
|
|
4
|
+
ms.date: 02/16/2024 12:00:00 AM
|
|
5
|
+
ms.topic: managed-reference
|
|
6
|
+
qsharp.kind: opeartion
|
|
7
|
+
qsharp.namespace: Microsoft.Quantum.Intrinsic
|
|
8
|
+
qsharp.name: Reset
|
|
9
|
+
qsharp.summary: Given a single qubit, measures it and ensures it is in the |0⟩ state
|
|
10
|
+
such that it can be safely released.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Reset operation
|
|
14
|
+
|
|
15
|
+
Namespace: [Microsoft.Quantum.Intrinsic](xref:Microsoft.Quantum.Intrinsic)
|
|
16
|
+
|
|
17
|
+
```qsharp
|
|
18
|
+
operation Reset(qubit : Qubit) : Unit
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Summary
|
|
22
|
+
Given a single qubit, measures it and ensures it is in the |0⟩ state
|
|
23
|
+
such that it can be safely released.
|
|
24
|
+
|
|
25
|
+
## Input
|
|
26
|
+
### qubit
|
|
27
|
+
The qubit whose state is to be reset to |0⟩.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Intrinsic.ResetAll
|
|
3
|
+
title: ResetAll operation
|
|
4
|
+
ms.date: 02/16/2024 12:00:00 AM
|
|
5
|
+
ms.topic: managed-reference
|
|
6
|
+
qsharp.kind: opeartion
|
|
7
|
+
qsharp.namespace: Microsoft.Quantum.Intrinsic
|
|
8
|
+
qsharp.name: ResetAll
|
|
9
|
+
qsharp.summary: Given an array of qubits, measure them and ensure they are in the |0⟩ state
|
|
10
|
+
such that they can be safely released.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# ResetAll operation
|
|
14
|
+
|
|
15
|
+
Namespace: [Microsoft.Quantum.Intrinsic](xref:Microsoft.Quantum.Intrinsic)
|
|
16
|
+
|
|
17
|
+
```qsharp
|
|
18
|
+
operation ResetAll(qubits : Qubit[]) : Unit
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Summary
|
|
22
|
+
Given an array of qubits, measure them and ensure they are in the |0⟩ state
|
|
23
|
+
such that they can be safely released.
|
|
24
|
+
|
|
25
|
+
## Input
|
|
26
|
+
### qubits
|
|
27
|
+
An array of qubits whose states are to be reset to |0⟩.
|