microsoft/qdk

Public

mirrored from https://github.com/microsoft/qdkAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
iadavis/pipeline-issue-debugging

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

source/pip/tests-integration/resources/adaptive_ri/input/CopyAndUpdateExpressions.qs

32lines · modecode

1namespace Test {
2
3 import Std.Intrinsic.*;
4 import Std.Measurement.*;
5
6 // Demonstrates copy and update expressions.
7 // Expected output: ([1], [0], [1, 1, 1])
8 @EntryPoint()
9 operation Main() : (Result[], Result[], Result[]) {
10 use qubitA = Qubit();
11 X(qubitA);
12 let resultsA = [Zero] w/ 0 <- MResetZ(qubitA);
13
14 // Simple concatenated copy and update expressions.
15 use qubitB = Qubit();
16 let resultsB = [Zero]
17 w/ 0 <- One
18 w/ 0 <- MResetZ(qubitB);
19
20 // Copy and update expression that make use of ranges.
21 use registerC = Qubit[3];
22 X(registerC[0]);
23 mutable resultsC = MeasureEachZ(registerC);
24 ApplyToEachCA(X, registerC[1..2]);
25 set resultsC w/= 1..2 <- MeasureEachZ(registerC[1..2]);
26 return (
27 resultsA,
28 resultsB,
29 resultsC
30 );
31 }
32}
33