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,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Canon.ApplyControlledOnInt
|
|
3
|
+
title: ApplyControlledOnInt 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.Canon
|
|
8
|
+
qsharp.name: ApplyControlledOnInt
|
|
9
|
+
qsharp.summary: Applies a unitary operation on the target if the control
|
|
10
|
+
register state corresponds to a specified nonnegative integer.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# ApplyControlledOnInt operation
|
|
14
|
+
|
|
15
|
+
Namespace: [Microsoft.Quantum.Canon](xref:Microsoft.Quantum.Canon)
|
|
16
|
+
|
|
17
|
+
```qsharp
|
|
18
|
+
operation ApplyControlledOnInt<'T>(numberState : Int, oracle : ('T => Unit is Adj + Ctl), controlRegister : Qubit[], target : 'T) : Unit is Adj + Ctl
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Summary
|
|
22
|
+
Applies a unitary operation on the target if the control
|
|
23
|
+
register state corresponds to a specified nonnegative integer.
|
|
24
|
+
|
|
25
|
+
## Input
|
|
26
|
+
### numberState
|
|
27
|
+
A nonnegative integer on which the operation `oracle` should be
|
|
28
|
+
controlled.
|
|
29
|
+
### oracle
|
|
30
|
+
A unitary operation to be controlled.
|
|
31
|
+
### target
|
|
32
|
+
A target on which to apply `oracle`.
|
|
33
|
+
### controlRegister
|
|
34
|
+
A quantum register that controls application of `oracle`.
|
|
35
|
+
|
|
36
|
+
## Remarks
|
|
37
|
+
The value of `numberState` is interpreted using a little-endian encoding.
|
|
38
|
+
|
|
39
|
+
`numberState` must be at most $2^\texttt{Length(controlRegister)} - 1$.
|
|
40
|
+
For example, `numberState = 537` means that `oracle`
|
|
41
|
+
is applied if and only if `controlRegister` is in the state $\ket{537}$.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Canon.ApplyP
|
|
3
|
+
title: ApplyP 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.Canon
|
|
8
|
+
qsharp.name: ApplyP
|
|
9
|
+
qsharp.summary: Given a single-qubit Pauli operator, applies the corresponding operation
|
|
10
|
+
to a single qubit.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# ApplyP operation
|
|
14
|
+
|
|
15
|
+
Namespace: [Microsoft.Quantum.Canon](xref:Microsoft.Quantum.Canon)
|
|
16
|
+
|
|
17
|
+
```qsharp
|
|
18
|
+
operation ApplyP(pauli : Pauli, target : Qubit) : Unit is Adj + Ctl
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Summary
|
|
22
|
+
Given a single-qubit Pauli operator, applies the corresponding operation
|
|
23
|
+
to a single qubit.
|
|
24
|
+
|
|
25
|
+
## Input
|
|
26
|
+
### pauli
|
|
27
|
+
The Pauli operator to be applied.
|
|
28
|
+
### target
|
|
29
|
+
The qubit to which `pauli` is to be applied as an operation.
|
|
30
|
+
|
|
31
|
+
## Example
|
|
32
|
+
The following are equivalent:
|
|
33
|
+
```qsharp
|
|
34
|
+
ApplyP(PauliX, q);
|
|
35
|
+
```
|
|
36
|
+
and
|
|
37
|
+
```qsharp
|
|
38
|
+
X(q);
|
|
39
|
+
```
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Canon.ApplyPauli
|
|
3
|
+
title: ApplyPauli 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.Canon
|
|
8
|
+
qsharp.name: ApplyPauli
|
|
9
|
+
qsharp.summary: Given a multi-qubit Pauli operator, applies the corresponding operation
|
|
10
|
+
to a quantum register.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# ApplyPauli operation
|
|
14
|
+
|
|
15
|
+
Namespace: [Microsoft.Quantum.Canon](xref:Microsoft.Quantum.Canon)
|
|
16
|
+
|
|
17
|
+
```qsharp
|
|
18
|
+
operation ApplyPauli(pauli : Pauli[], target : Qubit[]) : Unit is Adj + Ctl
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Summary
|
|
22
|
+
Given a multi-qubit Pauli operator, applies the corresponding operation
|
|
23
|
+
to a quantum register.
|
|
24
|
+
|
|
25
|
+
## Input
|
|
26
|
+
### pauli
|
|
27
|
+
A multi-qubit Pauli operator represented as an array of single-qubit Pauli operators.
|
|
28
|
+
### target
|
|
29
|
+
Register to apply the given Pauli operation on.
|
|
30
|
+
|
|
31
|
+
## Example
|
|
32
|
+
The following are equivalent:
|
|
33
|
+
```qsharp
|
|
34
|
+
ApplyPauli([PauliY, PauliZ, PauliX], target);
|
|
35
|
+
```
|
|
36
|
+
and
|
|
37
|
+
```qsharp
|
|
38
|
+
Y(target[0]);
|
|
39
|
+
Z(target[1]);
|
|
40
|
+
X(target[2]);
|
|
41
|
+
```
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Canon.ApplyPauliFromBitString
|
|
3
|
+
title: ApplyPauliFromBitString 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.Canon
|
|
8
|
+
qsharp.name: ApplyPauliFromBitString
|
|
9
|
+
qsharp.summary: Applies a Pauli operator on each qubit in an array if the corresponding
|
|
10
|
+
bit of a Boolean array matches a given input.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# ApplyPauliFromBitString operation
|
|
14
|
+
|
|
15
|
+
Namespace: [Microsoft.Quantum.Canon](xref:Microsoft.Quantum.Canon)
|
|
16
|
+
|
|
17
|
+
```qsharp
|
|
18
|
+
operation ApplyPauliFromBitString(pauli : Pauli, bitApply : Bool, bits : Bool[], qubits : Qubit[]) : Unit is Adj + Ctl
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Summary
|
|
22
|
+
Applies a Pauli operator on each qubit in an array if the corresponding
|
|
23
|
+
bit of a Boolean array matches a given input.
|
|
24
|
+
|
|
25
|
+
## Input
|
|
26
|
+
### pauli
|
|
27
|
+
Pauli operator to apply to `qubits[idx]` where `bitApply == bits[idx]`
|
|
28
|
+
### bitApply
|
|
29
|
+
apply Pauli if bit is this value
|
|
30
|
+
### bits
|
|
31
|
+
Boolean register specifying which corresponding qubit in `qubits` should be operated on
|
|
32
|
+
### qubits
|
|
33
|
+
Quantum register on which to selectively apply the specified Pauli operator
|
|
34
|
+
|
|
35
|
+
## Remarks
|
|
36
|
+
The Boolean array and the quantum register must be of equal length.
|
|
37
|
+
|
|
38
|
+
## Example
|
|
39
|
+
The following applies an X operation on qubits 0 and 2, and a Z operation on qubits 1 and 3.
|
|
40
|
+
```qsharp
|
|
41
|
+
use qubits = Qubit[4];
|
|
42
|
+
let bits = [true, false, true, false];
|
|
43
|
+
// Apply when index in `bits` is `true`.
|
|
44
|
+
ApplyPauliFromBitString(PauliX, true, bits, qubits);
|
|
45
|
+
// Apply when index in `bits` is `false`.
|
|
46
|
+
ApplyPauliFromBitString(PauliZ, false, bits, qubits);
|
|
47
|
+
```
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Canon.ApplyPauliFromInt
|
|
3
|
+
title: ApplyPauliFromInt 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.Canon
|
|
8
|
+
qsharp.name: ApplyPauliFromInt
|
|
9
|
+
qsharp.summary: Applies a Pauli operator on each qubit in an array if the corresponding
|
|
10
|
+
bit of a Little-endian integer matches a given input.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# ApplyPauliFromInt operation
|
|
14
|
+
|
|
15
|
+
Namespace: [Microsoft.Quantum.Canon](xref:Microsoft.Quantum.Canon)
|
|
16
|
+
|
|
17
|
+
```qsharp
|
|
18
|
+
operation ApplyPauliFromInt(pauli : Pauli, bitApply : Bool, numberState : Int, qubits : Qubit[]) : Unit is Adj + Ctl
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Summary
|
|
22
|
+
Applies a Pauli operator on each qubit in an array if the corresponding
|
|
23
|
+
bit of a Little-endian integer matches a given input.
|
|
24
|
+
|
|
25
|
+
## Input
|
|
26
|
+
### pauli
|
|
27
|
+
Pauli operator to apply to `qubits[idx]` when bit of numberState
|
|
28
|
+
in idx position is the same as bitApply.
|
|
29
|
+
### bitApply
|
|
30
|
+
apply Pauli if bit is this value
|
|
31
|
+
### numberState
|
|
32
|
+
Little-endian integer specifying which corresponding qubit in `qubits` should be operated on
|
|
33
|
+
### qubits
|
|
34
|
+
Quantum register on which to selectively apply the specified Pauli operator
|
|
35
|
+
|
|
36
|
+
## Example
|
|
37
|
+
The following applies an X operation on qubits 0 and 2, and a Z operation on qubits 1 and 3.
|
|
38
|
+
```qsharp
|
|
39
|
+
use qubits = Qubit[4];
|
|
40
|
+
let n = 5;
|
|
41
|
+
// Apply when index in `bits` is `true`.
|
|
42
|
+
ApplyPauliFromBitString(PauliX, true, n, qubits);
|
|
43
|
+
// Apply when index in `bits` is `false`.
|
|
44
|
+
ApplyPauliFromBitString(PauliZ, false, n, qubits);
|
|
45
|
+
```
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Canon.ApplyQFT
|
|
3
|
+
title: ApplyQFT 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.Canon
|
|
8
|
+
qsharp.name: ApplyQFT
|
|
9
|
+
qsharp.summary: Applies Quantum Fourier Transform (QFT) to a little-endian quantum register.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# ApplyQFT operation
|
|
13
|
+
|
|
14
|
+
Namespace: [Microsoft.Quantum.Canon](xref:Microsoft.Quantum.Canon)
|
|
15
|
+
|
|
16
|
+
```qsharp
|
|
17
|
+
operation ApplyQFT(qs : Qubit[]) : Unit is Adj + Ctl
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Summary
|
|
21
|
+
Applies Quantum Fourier Transform (QFT) to a little-endian quantum register.
|
|
22
|
+
|
|
23
|
+
## Description
|
|
24
|
+
Applies QFT to a little-endian register `qs` of length n
|
|
25
|
+
containing |x₁⟩⊗|x₂⟩⊗…⊗|xₙ⟩. The qs[0] contains the
|
|
26
|
+
least significant bit xₙ. The state of qs[0] becomes
|
|
27
|
+
(|0⟩+𝑒^(2π𝑖[0.xₙ])|1⟩)/sqrt(2) after the operation.
|
|
28
|
+
|
|
29
|
+
## Input
|
|
30
|
+
### qs
|
|
31
|
+
Quantum register in a little-endian format to which the QFT is applied.
|
|
32
|
+
|
|
33
|
+
## Reference
|
|
34
|
+
- [Quantum Fourier transform](https://en.wikipedia.org/wiki/Quantum_Fourier_transform)
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Canon.ApplyToEach
|
|
3
|
+
title: ApplyToEach 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.Canon
|
|
8
|
+
qsharp.name: ApplyToEach
|
|
9
|
+
qsharp.summary: Applies an operation to each element in a register.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# ApplyToEach operation
|
|
13
|
+
|
|
14
|
+
Namespace: [Microsoft.Quantum.Canon](xref:Microsoft.Quantum.Canon)
|
|
15
|
+
|
|
16
|
+
```qsharp
|
|
17
|
+
operation ApplyToEach<'T>(singleElementOperation : ('T => Unit), register : 'T[]) : Unit
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Summary
|
|
21
|
+
Applies an operation to each element in a register.
|
|
22
|
+
|
|
23
|
+
## Input
|
|
24
|
+
### singleElementOperation
|
|
25
|
+
Operation to apply to each element.
|
|
26
|
+
### register
|
|
27
|
+
Array of elements on which to apply the given operation.
|
|
28
|
+
|
|
29
|
+
## Type Parameters
|
|
30
|
+
### 'T
|
|
31
|
+
The target on which the operation acts.
|
|
32
|
+
|
|
33
|
+
## Example
|
|
34
|
+
Prepare a three-qubit |+⟩ state:
|
|
35
|
+
```qsharp
|
|
36
|
+
use register = Qubit[3];
|
|
37
|
+
ApplyToEach(H, register);
|
|
38
|
+
```
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Canon.ApplyToEachA
|
|
3
|
+
title: ApplyToEachA 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.Canon
|
|
8
|
+
qsharp.name: ApplyToEachA
|
|
9
|
+
qsharp.summary: Applies an operation to each element in a register.
|
|
10
|
+
The modifier `A` indicates that the single-element operation is adjointable.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# ApplyToEachA operation
|
|
14
|
+
|
|
15
|
+
Namespace: [Microsoft.Quantum.Canon](xref:Microsoft.Quantum.Canon)
|
|
16
|
+
|
|
17
|
+
```qsharp
|
|
18
|
+
operation ApplyToEachA<'T>(singleElementOperation : ('T => Unit is Adj), register : 'T[]) : Unit is Adj
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Summary
|
|
22
|
+
Applies an operation to each element in a register.
|
|
23
|
+
The modifier `A` indicates that the single-element operation is adjointable.
|
|
24
|
+
|
|
25
|
+
## Input
|
|
26
|
+
### singleElementOperation
|
|
27
|
+
Operation to apply to each element.
|
|
28
|
+
### register
|
|
29
|
+
Array of elements on which to apply the given operation.
|
|
30
|
+
|
|
31
|
+
## Type Parameters
|
|
32
|
+
### 'T
|
|
33
|
+
The target on which the operation acts.
|
|
34
|
+
|
|
35
|
+
## Example
|
|
36
|
+
Prepare a three-qubit |+⟩ state:
|
|
37
|
+
```qsharp
|
|
38
|
+
use register = Qubit[3];
|
|
39
|
+
ApplyToEach(H, register);
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## See Also
|
|
43
|
+
- Microsoft.Quantum.Canon.ApplyToEach
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Canon.ApplyToEachC
|
|
3
|
+
title: ApplyToEachC 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.Canon
|
|
8
|
+
qsharp.name: ApplyToEachC
|
|
9
|
+
qsharp.summary: Applies an operation to each element in a register.
|
|
10
|
+
The modifier `C` indicates that the single-element operation is controllable.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# ApplyToEachC operation
|
|
14
|
+
|
|
15
|
+
Namespace: [Microsoft.Quantum.Canon](xref:Microsoft.Quantum.Canon)
|
|
16
|
+
|
|
17
|
+
```qsharp
|
|
18
|
+
operation ApplyToEachC<'T>(singleElementOperation : ('T => Unit is Ctl), register : 'T[]) : Unit is Ctl
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Summary
|
|
22
|
+
Applies an operation to each element in a register.
|
|
23
|
+
The modifier `C` indicates that the single-element operation is controllable.
|
|
24
|
+
|
|
25
|
+
## Input
|
|
26
|
+
### singleElementOperation
|
|
27
|
+
Operation to apply to each element.
|
|
28
|
+
### register
|
|
29
|
+
Array of elements on which to apply the given operation.
|
|
30
|
+
|
|
31
|
+
## Type Parameters
|
|
32
|
+
### 'T
|
|
33
|
+
The target on which the operation acts.
|
|
34
|
+
|
|
35
|
+
## Example
|
|
36
|
+
Prepare a three-qubit |+⟩ state:
|
|
37
|
+
```qsharp
|
|
38
|
+
use register = Qubit[3];
|
|
39
|
+
ApplyToEach(H, register);
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## See Also
|
|
43
|
+
- Microsoft.Quantum.Canon.ApplyToEach
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Canon.ApplyToEachCA
|
|
3
|
+
title: ApplyToEachCA 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.Canon
|
|
8
|
+
qsharp.name: ApplyToEachCA
|
|
9
|
+
qsharp.summary: Applies an operation to each element in a register.
|
|
10
|
+
The modifier `CA` indicates that the single-element operation is controllable and adjointable.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# ApplyToEachCA operation
|
|
14
|
+
|
|
15
|
+
Namespace: [Microsoft.Quantum.Canon](xref:Microsoft.Quantum.Canon)
|
|
16
|
+
|
|
17
|
+
```qsharp
|
|
18
|
+
operation ApplyToEachCA<'T>(singleElementOperation : ('T => Unit is Adj + Ctl), register : 'T[]) : Unit is Adj + Ctl
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Summary
|
|
22
|
+
Applies an operation to each element in a register.
|
|
23
|
+
The modifier `CA` indicates that the single-element operation is controllable and adjointable.
|
|
24
|
+
|
|
25
|
+
## Input
|
|
26
|
+
### singleElementOperation
|
|
27
|
+
Operation to apply to each element.
|
|
28
|
+
### register
|
|
29
|
+
Array of elements on which to apply the given operation.
|
|
30
|
+
|
|
31
|
+
## Type Parameters
|
|
32
|
+
### 'T
|
|
33
|
+
The target on which the operation acts.
|
|
34
|
+
|
|
35
|
+
## Example
|
|
36
|
+
Prepare a three-qubit |+⟩ state:
|
|
37
|
+
```qsharp
|
|
38
|
+
use register = Qubit[3];
|
|
39
|
+
ApplyToEach(H, register);
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## See Also
|
|
43
|
+
- Microsoft.Quantum.Canon.ApplyToEach
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Canon.ApplyXorInPlace
|
|
3
|
+
title: ApplyXorInPlace 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.Canon
|
|
8
|
+
qsharp.name: ApplyXorInPlace
|
|
9
|
+
qsharp.summary: Applies a bitwise-XOR operation between a classical integer and an
|
|
10
|
+
integer represented by a register of qubits.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# ApplyXorInPlace operation
|
|
14
|
+
|
|
15
|
+
Namespace: [Microsoft.Quantum.Canon](xref:Microsoft.Quantum.Canon)
|
|
16
|
+
|
|
17
|
+
```qsharp
|
|
18
|
+
operation ApplyXorInPlace(value : Int, target : Qubit[]) : Unit is Adj + Ctl
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Summary
|
|
22
|
+
Applies a bitwise-XOR operation between a classical integer and an
|
|
23
|
+
integer represented by a register of qubits.
|
|
24
|
+
|
|
25
|
+
## Description
|
|
26
|
+
Applies `X` operations to qubits in a little-endian register based on
|
|
27
|
+
1 bits in an integer.
|
|
28
|
+
|
|
29
|
+
Let us denote `value` by a and let y be an unsigned integer encoded in `target`,
|
|
30
|
+
then `ApplyXorInPlace` performs an operation given by the following map:
|
|
31
|
+
|y⟩ ↦ |y ⊕ a⟩, where ⊕ is the bitwise exclusive OR operator.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Canon.ApplyXorInPlaceL
|
|
3
|
+
title: ApplyXorInPlaceL 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.Canon
|
|
8
|
+
qsharp.name: ApplyXorInPlaceL
|
|
9
|
+
qsharp.summary: Applies a bitwise-XOR operation between a classical integer and an
|
|
10
|
+
integer represented by a register of qubits.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# ApplyXorInPlaceL operation
|
|
14
|
+
|
|
15
|
+
Namespace: [Microsoft.Quantum.Canon](xref:Microsoft.Quantum.Canon)
|
|
16
|
+
|
|
17
|
+
```qsharp
|
|
18
|
+
operation ApplyXorInPlaceL(value : BigInt, target : Qubit[]) : Unit is Adj + Ctl
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Summary
|
|
22
|
+
Applies a bitwise-XOR operation between a classical integer and an
|
|
23
|
+
integer represented by a register of qubits.
|
|
24
|
+
|
|
25
|
+
## Description
|
|
26
|
+
Applies `X` operations to qubits in a little-endian register based on
|
|
27
|
+
1 bits in an integer.
|
|
28
|
+
|
|
29
|
+
Let us denote `value` by a and let y be an unsigned integer encoded in `target`,
|
|
30
|
+
then `ApplyXorInPlace` performs an operation given by the following map:
|
|
31
|
+
|y⟩ ↦ |y ⊕ a⟩, where ⊕ is the bitwise exclusive OR operator.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Canon.CX
|
|
3
|
+
title: CX 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.Canon
|
|
8
|
+
qsharp.name: CX
|
|
9
|
+
qsharp.summary: Applies the controlled-X (CX) gate to a pair of qubits.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# CX operation
|
|
13
|
+
|
|
14
|
+
Namespace: [Microsoft.Quantum.Canon](xref:Microsoft.Quantum.Canon)
|
|
15
|
+
|
|
16
|
+
```qsharp
|
|
17
|
+
operation CX(control : Qubit, target : Qubit) : Unit is Adj + Ctl
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Summary
|
|
21
|
+
Applies the controlled-X (CX) gate to a pair of qubits.
|
|
22
|
+
|
|
23
|
+
## Input
|
|
24
|
+
### control
|
|
25
|
+
Control qubit for the CX gate.
|
|
26
|
+
### target
|
|
27
|
+
Target qubit for the CX gate.
|
|
28
|
+
|
|
29
|
+
## Remarks
|
|
30
|
+
This operation can be simulated by the unitary matrix
|
|
31
|
+
$$
|
|
32
|
+
\begin{align}
|
|
33
|
+
\left(\begin{matrix}
|
|
34
|
+
1 & 0 & 0 & 0 \\\\
|
|
35
|
+
0 & 1 & 0 & 0 \\\\
|
|
36
|
+
0 & 0 & 0 & 1 \\\\
|
|
37
|
+
0 & 0 & 1 & 0
|
|
38
|
+
\end{matrix}\right)
|
|
39
|
+
\end{align},
|
|
40
|
+
$$
|
|
41
|
+
where rows and columns are organized as in the quantum concepts guide.
|
|
42
|
+
|
|
43
|
+
Equivalent to:
|
|
44
|
+
```qsharp
|
|
45
|
+
Controlled X([control], target);
|
|
46
|
+
```
|
|
47
|
+
and to:
|
|
48
|
+
```qsharp
|
|
49
|
+
CNOT(control, target);
|
|
50
|
+
```
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Canon.CY
|
|
3
|
+
title: CY 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.Canon
|
|
8
|
+
qsharp.name: CY
|
|
9
|
+
qsharp.summary: Applies the controlled-Y (CY) gate to a pair of qubits.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# CY operation
|
|
13
|
+
|
|
14
|
+
Namespace: [Microsoft.Quantum.Canon](xref:Microsoft.Quantum.Canon)
|
|
15
|
+
|
|
16
|
+
```qsharp
|
|
17
|
+
operation CY(control : Qubit, target : Qubit) : Unit is Adj + Ctl
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Summary
|
|
21
|
+
Applies the controlled-Y (CY) gate to a pair of qubits.
|
|
22
|
+
|
|
23
|
+
## Input
|
|
24
|
+
### control
|
|
25
|
+
Control qubit for the CY gate.
|
|
26
|
+
### target
|
|
27
|
+
Target qubit for the CY gate.
|
|
28
|
+
|
|
29
|
+
## Remarks
|
|
30
|
+
This operation can be simulated by the unitary matrix
|
|
31
|
+
$$
|
|
32
|
+
\begin{align}
|
|
33
|
+
1 & 0 & 0 & 0 \\\\
|
|
34
|
+
0 & 1 & 0 & 0 \\\\
|
|
35
|
+
0 & 0 & 0 & -i \\\\
|
|
36
|
+
0 & 0 & i & 0
|
|
37
|
+
\end{align},
|
|
38
|
+
$$
|
|
39
|
+
where rows and columns are organized as in the quantum concepts guide.
|
|
40
|
+
|
|
41
|
+
Equivalent to:
|
|
42
|
+
```qsharp
|
|
43
|
+
Controlled Y([control], target);
|
|
44
|
+
```
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Canon.CZ
|
|
3
|
+
title: CZ 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.Canon
|
|
8
|
+
qsharp.name: CZ
|
|
9
|
+
qsharp.summary: Applies the controlled-Z (CZ) gate to a pair of qubits.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# CZ operation
|
|
13
|
+
|
|
14
|
+
Namespace: [Microsoft.Quantum.Canon](xref:Microsoft.Quantum.Canon)
|
|
15
|
+
|
|
16
|
+
```qsharp
|
|
17
|
+
operation CZ(control : Qubit, target : Qubit) : Unit is Adj + Ctl
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Summary
|
|
21
|
+
Applies the controlled-Z (CZ) gate to a pair of qubits.
|
|
22
|
+
|
|
23
|
+
## Input
|
|
24
|
+
### control
|
|
25
|
+
Control qubit for the CZ gate.
|
|
26
|
+
### target
|
|
27
|
+
Target qubit for the CZ gate.
|
|
28
|
+
|
|
29
|
+
## Remarks
|
|
30
|
+
This operation can be simulated by the unitary matrix
|
|
31
|
+
$$
|
|
32
|
+
\begin{align}
|
|
33
|
+
1 & 0 & 0 & 0 \\\\
|
|
34
|
+
0 & 1 & 0 & 0 \\\\
|
|
35
|
+
0 & 0 & 1 & 0 \\\\
|
|
36
|
+
0 & 0 & 0 & -1
|
|
37
|
+
\end{align},
|
|
38
|
+
$$
|
|
39
|
+
where rows and columns are organized as in the quantum concepts guide.
|
|
40
|
+
|
|
41
|
+
Equivalent to:
|
|
42
|
+
```qsharp
|
|
43
|
+
Controlled Z([control], target);
|
|
44
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Canon.Fst
|
|
3
|
+
title: Fst 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.Canon
|
|
8
|
+
qsharp.name: Fst
|
|
9
|
+
qsharp.summary: Given a pair, returns its first element.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Fst function
|
|
13
|
+
|
|
14
|
+
Namespace: [Microsoft.Quantum.Canon](xref:Microsoft.Quantum.Canon)
|
|
15
|
+
|
|
16
|
+
```qsharp
|
|
17
|
+
function Fst<'T, 'U>(pair : ('T, 'U)) : 'T
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Given a pair, returns its first element.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Canon.Snd
|
|
3
|
+
title: Snd 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.Canon
|
|
8
|
+
qsharp.name: Snd
|
|
9
|
+
qsharp.summary: Given a pair, returns its second element.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Snd function
|
|
13
|
+
|
|
14
|
+
Namespace: [Microsoft.Quantum.Canon](xref:Microsoft.Quantum.Canon)
|
|
15
|
+
|
|
16
|
+
```qsharp
|
|
17
|
+
function Snd<'T, 'U>(pair : ('T, 'U)) : 'U
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Given a pair, returns its second element.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
uid: Microsoft.Quantum.Canon.SwapReverseRegister
|
|
3
|
+
title: SwapReverseRegister 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.Canon
|
|
8
|
+
qsharp.name: SwapReverseRegister
|
|
9
|
+
qsharp.summary: Uses SWAP gates to reverse the order of the qubits in a register.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# SwapReverseRegister operation
|
|
13
|
+
|
|
14
|
+
Namespace: [Microsoft.Quantum.Canon](xref:Microsoft.Quantum.Canon)
|
|
15
|
+
|
|
16
|
+
```qsharp
|
|
17
|
+
operation SwapReverseRegister(register : Qubit[]) : Unit is Adj + Ctl
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Summary
|
|
21
|
+
Uses SWAP gates to reverse the order of the qubits in a register.
|
|
22
|
+
|
|
23
|
+
## Input
|
|
24
|
+
### register
|
|
25
|
+
The qubits order of which should be reversed using SWAP gates
|