microsoft/qdk
Publicmirrored from https://github.com/microsoft/qdkAvailable
source/compiler/qsc/benches/bench5x5.qs
59lines · modecode
| 1 | /// Copied from https://github.com/microsoft/qsharp-runtime/tree/main/AdvantageBenchmark, |
| 2 | /// updated for the latest Q# syntax. Originally used for testing the performance of the Q# simulator. |
| 3 | operation Main() : Unit { |
| 4 | use qs = Qubit[25]; |
| 5 | ApplyToEach(H, qs); |
| 6 | CZ(qs[2], qs[3]); |
| 7 | CZ(qs[12], qs[13]); |
| 8 | CZ(qs[22], qs[23]); |
| 9 | CZ(qs[5], qs[6]); |
| 10 | CZ(qs[9], qs[10]); |
| 11 | CZ(qs[15], qs[16]); |
| 12 | CZ(qs[19], qs[20]); |
| 13 | ApplyToEach(H, qs); |
| 14 | CZ(qs[0], qs[1]); |
| 15 | CZ(qs[4], qs[5]); |
| 16 | CZ(qs[10], qs[11]); |
| 17 | CZ(qs[14], qs[15]); |
| 18 | CZ(qs[20], qs[21]); |
| 19 | CZ(qs[7], qs[8]); |
| 20 | CZ(qs[17], qs[18]); |
| 21 | ApplyToEach(H, qs); |
| 22 | CZ(qs[15], qs[20]); |
| 23 | CZ(qs[17], qs[22]); |
| 24 | CZ(qs[19], qs[24]); |
| 25 | CZ(qs[6], qs[11]); |
| 26 | CZ(qs[8], qs[13]); |
| 27 | ApplyToEach(H, qs); |
| 28 | CZ(qs[5], qs[10]); |
| 29 | CZ(qs[7], qs[12]); |
| 30 | CZ(qs[9], qs[14]); |
| 31 | CZ(qs[16], qs[21]); |
| 32 | CZ(qs[18], qs[23]); |
| 33 | ApplyToEach(H, qs); |
| 34 | CZ(qs[3], qs[4]); |
| 35 | CZ(qs[13], qs[14]); |
| 36 | CZ(qs[23], qs[24]); |
| 37 | CZ(qs[6], qs[7]); |
| 38 | CZ(qs[16], qs[17]); |
| 39 | ApplyToEach(H, qs); |
| 40 | CZ(qs[1], qs[2]); |
| 41 | CZ(qs[11], qs[12]); |
| 42 | CZ(qs[21], qs[22]); |
| 43 | CZ(qs[8], qs[9]); |
| 44 | CZ(qs[18], qs[19]); |
| 45 | ApplyToEach(H, qs); |
| 46 | CZ(qs[0], qs[5]); |
| 47 | CZ(qs[2], qs[7]); |
| 48 | CZ(qs[4], qs[9]); |
| 49 | CZ(qs[11], qs[16]); |
| 50 | CZ(qs[13], qs[18]); |
| 51 | ApplyToEach(H, qs); |
| 52 | CZ(qs[10], qs[15]); |
| 53 | CZ(qs[12], qs[17]); |
| 54 | CZ(qs[14], qs[19]); |
| 55 | CZ(qs[1], qs[6]); |
| 56 | CZ(qs[3], qs[8]); |
| 57 | ApplyToEach(H, qs); |
| 58 | MResetEachZ(qs); |
| 59 | } |
| 60 | |