Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unexpected (incorrect) measurement #32

Closed
quantumkoen opened this issue Jul 31, 2018 · 7 comments
Closed

Unexpected (incorrect) measurement #32

quantumkoen opened this issue Jul 31, 2018 · 7 comments

Comments

@quantumkoen
Copy link
Contributor

quantumkoen commented Jul 31, 2018

Consider the below (auto-generated) code. The tail end of the output for the dev branch is:

[+] loading circuit from '/tmp/dem-385-3.qc' ...
Semantic check complete. Qasm file is valid.
[+] creating quantum register of 16 qubits... 
[+] executing circuit 'default' (1 iter) ...
--------------[quantum state]-------------- 
                (+0.500000,-0.000001) |0000000000000000> +
                (-0.500000,+0.000001) |0000000000000001> +
                (+0.500000,-0.000001) |1000000000000000> +
                (-0.500000,+0.000001) |1000000000000001> +
------------------------------------------- 
[>>] measurement averaging (ground state) :  | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 |
------------------------------------------- 
[>>] measurement prediction:  | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X |
------------------------------------------- 
[>>] measurement register  :  | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
------------------------------------------- 
--------------[quantum state]-------------- 
                (+0.000000,-0.000003) |0000000000000000> +
                (+0.000003,+0.000000) |0000000000000001> +
                (-0.000000,-0.000003) |1111111111111110> +
                (-0.000002,-0.999997) |1111111111111111> +
------------------------------------------- 
[>>] measurement averaging (ground state) :  | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 |
------------------------------------------- 
[>>] measurement prediction:  | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X |
------------------------------------------- 
[>>] measurement register  :  | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
------------------------------------------- 
[+] circuit execution time: +0.102653 sec.
[+] executing circuit 'measurement' (1 iter) ...
--------------[quantum state]-------------- 
------------------------------------------- 
[>>] measurement averaging (ground state) :  | +1.000000 | +1.000000 | +1.000000 | +1.000000 | +1.000000 | +1.000000 | +1.000000 | +1.000000 | +1.000000 | +1.000000 | +1.000000 | +0.000000 | +1.000000 | +0.000000 | +1.000000 | +0.000000 |
------------------------------------------- 
[>>] measurement prediction:  | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 |
------------------------------------------- 
[>>] measurement register  :  | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 |
------------------------------------------- 
[+] circuit execution time: +0.038105 sec.

Despite the state (-0.000002,-0.999997) |1111111111111111> + being the most likely, the measurement shows | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 |. An older version of qx-simulator (commit cd9d120) did give a more correct and expected result:

[+] loading circuit from '/tmp/test.qc' ...
Semantic check complete. Qasm file is valid.
[+] creating quantum register of 16 qubits... 
[+] executing circuit 'default' (1 iter) ...
--------------[quantum state]-------------- 
                (+0.500000,-0.000001) |0000000000000000> +
                (-0.500000,+0.000001) |0000000000000001> +
                (+0.500000,-0.000001) |1000000000000000> +
                (-0.500000,+0.000001) |1000000000000001> +
------------------------------------------- 
[>>] measurement averaging (ground state) :  | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 |
------------------------------------------- 
[>>] measurement prediction:  | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X |
------------------------------------------- 
[>>] measurement register  :  | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
------------------------------------------- 
--------------[quantum state]-------------- 
                (+0.000000,-0.000003) |0000000000000000> +
                (+0.000003,+0.000000) |0000000000000001> +
                (-0.000000,-0.000003) |1111111111111110> +
                (-0.000002,-0.999997) |1111111111111111> +
------------------------------------------- 
[>>] measurement averaging (ground state) :  | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 |
------------------------------------------- 
[>>] measurement prediction:  | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X |
------------------------------------------- 
[>>] measurement register  :  | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
------------------------------------------- 
[+] circuit execution time: +0.236325 sec.
[+] executing circuit 'measurement' (1 iter) ...
--------------[quantum state]-------------- 
                (-0.000002,-1.000000) |1111111111111111> +
------------------------------------------- 
[>>] measurement averaging (ground state) :  | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 | +0.000000 |
------------------------------------------- 
[>>] measurement prediction:  | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
------------------------------------------- 
[>>] measurement register  :  | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
------------------------------------------- 
[+] circuit execution time: +0.022862 sec.
version 1.0
# cqasm generated by QI backend for QisKit
qubits 16
H q[15]
H q[14]
H q[13]
H q[12]
H q[11]
H q[10]
H q[9]
H q[8]
H q[7]
H q[6]
H q[5]
H q[4]
H q[3]
H q[2]
H q[1]
H q[0]
Rz q[0], 1.570796
Ry q[0], -1.570796
Rz q[0], 1.570796
Rz q[1], 1.570796
Ry q[1], -1.570796
Rz q[1], 1.570796
Rz q[2], 1.570796
Ry q[2], -1.570796
Rz q[2], 1.570796
Rz q[3], 1.570796
Ry q[3], -1.570796
Rz q[3], 1.570796
Rz q[4], 1.570796
Ry q[4], -1.570796
Rz q[4], 1.570796
Rz q[5], 1.570796
Ry q[5], -1.570796
Rz q[5], 1.570796
Rz q[6], 1.570796
Ry q[6], -1.570796
Rz q[6], 1.570796
Rz q[7], 1.570796
Ry q[7], -1.570796
Rz q[7], 1.570796
Rz q[8], 1.570796
Ry q[8], -1.570796
Rz q[8], 1.570796
Rz q[9], 1.570796
Ry q[9], -1.570796
Rz q[9], 1.570796
Rz q[10], 1.570796
Ry q[10], -1.570796
Rz q[10], 1.570796
Rz q[11], 1.570796
Ry q[11], -1.570796
Rz q[11], 1.570796
Rz q[12], 1.570796
Ry q[12], -1.570796
Rz q[12], 1.570796
Rz q[13], 1.570796
Ry q[13], -1.570796
Rz q[13], 1.570796
Rz q[14], 1.570796
Ry q[14], -1.570796
Rz q[14], 1.570796
Rz q[15], 1.570796
Ry q[15], -1.570796
Rz q[15], 1.570796
CNOT q[1], q[0]
H q[1]
CNOT q[2], q[0]
H q[2]
CNOT q[3], q[0]
H q[3]
CNOT q[4], q[0]
H q[4]
CNOT q[5], q[0]
H q[5]
CNOT q[6], q[0]
H q[6]
CNOT q[7], q[0]
H q[7]
CNOT q[8], q[0]
H q[8]
CNOT q[9], q[0]
H q[9]
CNOT q[10], q[0]
H q[10]
CNOT q[11], q[0]
H q[11]
CNOT q[12], q[0]
H q[12]
CNOT q[13], q[0]
H q[13]
CNOT q[14], q[0]
H q[14]
CNOT q[15], q[0]
display
H q[15]
H q[0]
Rz q[0], 1.570796
Ry q[0], -1.570796
Rz q[0], 1.570796
Rz q[1], 1.570796
Ry q[1], -1.570796
Rz q[1], 1.570796
Rz q[2], 1.570796
Ry q[2], -1.570796
Rz q[2], 1.570796
Rz q[3], 1.570796
Ry q[3], -1.570796
Rz q[3], 1.570796
Rz q[4], 1.570796
Ry q[4], -1.570796
Rz q[4], 1.570796
Rz q[5], 1.570796
Ry q[5], -1.570796
Rz q[5], 1.570796
Rz q[6], 1.570796
Ry q[6], -1.570796
Rz q[6], 1.570796
Rz q[7], 1.570796
Ry q[7], -1.570796
Rz q[7], 1.570796
Rz q[8], 1.570796
Ry q[8], -1.570796
Rz q[8], 1.570796
Rz q[9], 1.570796
Ry q[9], -1.570796
Rz q[9], 1.570796
Rz q[10], 1.570796
Ry q[10], -1.570796
Rz q[10], 1.570796
Rz q[11], 1.570796
Ry q[11], -1.570796
Rz q[11], 1.570796
Rz q[12], 1.570796
Ry q[12], -1.570796
Rz q[12], 1.570796
Rz q[13], 1.570796
Ry q[13], -1.570796
Rz q[13], 1.570796
Rz q[14], 1.570796
Ry q[14], -1.570796
Rz q[14], 1.570796
Rz q[15], 1.570796
Ry q[15], -1.570796
Rz q[15], 1.570796
CNOT q[1], q[0]
H q[1]
CNOT q[2], q[0]
H q[2]
CNOT q[3], q[0]
H q[3]
CNOT q[4], q[0]
H q[4]
CNOT q[5], q[0]
H q[5]
CNOT q[6], q[0]
H q[6]
CNOT q[7], q[0]
H q[7]
CNOT q[8], q[0]
H q[8]
CNOT q[9], q[0]
H q[9]
CNOT q[10], q[0]
H q[10]
CNOT q[11], q[0]
H q[11]
CNOT q[12], q[0]
H q[12]
CNOT q[13], q[0]
H q[13]
CNOT q[14], q[0]
H q[14]
CNOT q[15], q[0]
H q[15]
H q[0]
Rz q[0], 1.570796
Ry q[0], -1.570796
Rz q[0], 1.570796
Rz q[1], 1.570796
Ry q[1], -1.570796
Rz q[1], 1.570796
Rz q[2], 1.570796
Ry q[2], -1.570796
Rz q[2], 1.570796
Rz q[3], 1.570796
Ry q[3], -1.570796
Rz q[3], 1.570796
Rz q[4], 1.570796
Ry q[4], -1.570796
Rz q[4], 1.570796
Rz q[5], 1.570796
Ry q[5], -1.570796
Rz q[5], 1.570796
Rz q[6], 1.570796
Ry q[6], -1.570796
Rz q[6], 1.570796
Rz q[7], 1.570796
Ry q[7], -1.570796
Rz q[7], 1.570796
Rz q[8], 1.570796
Ry q[8], -1.570796
Rz q[8], 1.570796
Rz q[9], 1.570796
Ry q[9], -1.570796
Rz q[9], 1.570796
Rz q[10], 1.570796
Ry q[10], -1.570796
Rz q[10], 1.570796
Rz q[11], 1.570796
Ry q[11], -1.570796
Rz q[11], 1.570796
Rz q[12], 1.570796
Ry q[12], -1.570796
Rz q[12], 1.570796
Rz q[13], 1.570796
Ry q[13], -1.570796
Rz q[13], 1.570796
Rz q[14], 1.570796
Ry q[14], -1.570796
Rz q[14], 1.570796
Rz q[15], 1.570796
Ry q[15], -1.570796
Rz q[15], 1.570796
CNOT q[1], q[0]
H q[1]
CNOT q[2], q[0]
H q[2]
CNOT q[3], q[0]
H q[3]
CNOT q[4], q[0]
H q[4]
CNOT q[5], q[0]
H q[5]
CNOT q[6], q[0]
H q[6]
CNOT q[7], q[0]
H q[7]
CNOT q[8], q[0]
H q[8]
CNOT q[9], q[0]
H q[9]
CNOT q[10], q[0]
H q[10]
CNOT q[11], q[0]
H q[11]
CNOT q[12], q[0]
H q[12]
CNOT q[13], q[0]
H q[13]
CNOT q[14], q[0]
H q[14]
CNOT q[15], q[0]
H q[15]
H q[0]
Rz q[0], 1.570796
Ry q[0], -1.570796
Rz q[0], 1.570796
Rz q[1], 1.570796
Ry q[1], -1.570796
Rz q[1], 1.570796
Rz q[2], 1.570796
Ry q[2], -1.570796
Rz q[2], 1.570796
Rz q[3], 1.570796
Ry q[3], -1.570796
Rz q[3], 1.570796
Rz q[4], 1.570796
Ry q[4], -1.570796
Rz q[4], 1.570796
Rz q[5], 1.570796
Ry q[5], -1.570796
Rz q[5], 1.570796
Rz q[6], 1.570796
Ry q[6], -1.570796
Rz q[6], 1.570796
Rz q[7], 1.570796
Ry q[7], -1.570796
Rz q[7], 1.570796
Rz q[8], 1.570796
Ry q[8], -1.570796
Rz q[8], 1.570796
Rz q[9], 1.570796
Ry q[9], -1.570796
Rz q[9], 1.570796
Rz q[10], 1.570796
Ry q[10], -1.570796
Rz q[10], 1.570796
Rz q[11], 1.570796
Ry q[11], -1.570796
Rz q[11], 1.570796
Rz q[12], 1.570796
Ry q[12], -1.570796
Rz q[12], 1.570796
Rz q[13], 1.570796
Ry q[13], -1.570796
Rz q[13], 1.570796
Rz q[14], 1.570796
Ry q[14], -1.570796
Rz q[14], 1.570796
Rz q[15], 1.570796
Ry q[15], -1.570796
Rz q[15], 1.570796
CNOT q[1], q[0]
H q[1]
CNOT q[2], q[0]
H q[2]
CNOT q[3], q[0]
H q[3]
CNOT q[4], q[0]
H q[4]
CNOT q[5], q[0]
H q[5]
CNOT q[6], q[0]
H q[6]
CNOT q[7], q[0]
H q[7]
CNOT q[8], q[0]
H q[8]
CNOT q[9], q[0]
H q[9]
CNOT q[10], q[0]
H q[10]
CNOT q[11], q[0]
H q[11]
CNOT q[12], q[0]
H q[12]
CNOT q[13], q[0]
H q[13]
CNOT q[14], q[0]
H q[14]
CNOT q[15], q[0]
H q[15]
H q[0]
Rz q[0], 1.570796
Ry q[0], -1.570796
Rz q[0], 1.570796
Rz q[1], 1.570796
Ry q[1], -1.570796
Rz q[1], 1.570796
Rz q[2], 1.570796
Ry q[2], -1.570796
Rz q[2], 1.570796
Rz q[3], 1.570796
Ry q[3], -1.570796
Rz q[3], 1.570796
Rz q[4], 1.570796
Ry q[4], -1.570796
Rz q[4], 1.570796
Rz q[5], 1.570796
Ry q[5], -1.570796
Rz q[5], 1.570796
Rz q[6], 1.570796
Ry q[6], -1.570796
Rz q[6], 1.570796
Rz q[7], 1.570796
Ry q[7], -1.570796
Rz q[7], 1.570796
Rz q[8], 1.570796
Ry q[8], -1.570796
Rz q[8], 1.570796
Rz q[9], 1.570796
Ry q[9], -1.570796
Rz q[9], 1.570796
Rz q[10], 1.570796
Ry q[10], -1.570796
Rz q[10], 1.570796
Rz q[11], 1.570796
Ry q[11], -1.570796
Rz q[11], 1.570796
Rz q[12], 1.570796
Ry q[12], -1.570796
Rz q[12], 1.570796
Rz q[13], 1.570796
Ry q[13], -1.570796
Rz q[13], 1.570796
Rz q[14], 1.570796
Ry q[14], -1.570796
Rz q[14], 1.570796
Rz q[15], 1.570796
Ry q[15], -1.570796
Rz q[15], 1.570796
CNOT q[1], q[0]
H q[1]
CNOT q[2], q[0]
H q[2]
CNOT q[3], q[0]
H q[3]
CNOT q[4], q[0]
H q[4]
CNOT q[5], q[0]
H q[5]
CNOT q[6], q[0]
H q[6]
CNOT q[7], q[0]
H q[7]
CNOT q[8], q[0]
H q[8]
CNOT q[9], q[0]
H q[9]
CNOT q[10], q[0]
H q[10]
CNOT q[11], q[0]
H q[11]
CNOT q[12], q[0]
H q[12]
CNOT q[13], q[0]
H q[13]
CNOT q[14], q[0]
H q[14]
CNOT q[15], q[0]
H q[15]
H q[0]
Rz q[0], 1.570796
Ry q[0], -1.570796
Rz q[0], 1.570796
Rz q[1], 1.570796
Ry q[1], -1.570796
Rz q[1], 1.570796
Rz q[2], 1.570796
Ry q[2], -1.570796
Rz q[2], 1.570796
Rz q[3], 1.570796
Ry q[3], -1.570796
Rz q[3], 1.570796
Rz q[4], 1.570796
Ry q[4], -1.570796
Rz q[4], 1.570796
Rz q[5], 1.570796
Ry q[5], -1.570796
Rz q[5], 1.570796
Rz q[6], 1.570796
Ry q[6], -1.570796
Rz q[6], 1.570796
Rz q[7], 1.570796
Ry q[7], -1.570796
Rz q[7], 1.570796
Rz q[8], 1.570796
Ry q[8], -1.570796
Rz q[8], 1.570796
Rz q[9], 1.570796
Ry q[9], -1.570796
Rz q[9], 1.570796
Rz q[10], 1.570796
Ry q[10], -1.570796
Rz q[10], 1.570796
Rz q[11], 1.570796
Ry q[11], -1.570796
Rz q[11], 1.570796
Rz q[12], 1.570796
Ry q[12], -1.570796
Rz q[12], 1.570796
Rz q[13], 1.570796
Ry q[13], -1.570796
Rz q[13], 1.570796
Rz q[14], 1.570796
Ry q[14], -1.570796
Rz q[14], 1.570796
Rz q[15], 1.570796
Ry q[15], -1.570796
Rz q[15], 1.570796
CNOT q[1], q[0]
H q[1]
CNOT q[2], q[0]
H q[2]
CNOT q[3], q[0]
H q[3]
CNOT q[4], q[0]
H q[4]
CNOT q[5], q[0]
H q[5]
CNOT q[6], q[0]
H q[6]
CNOT q[7], q[0]
H q[7]
CNOT q[8], q[0]
H q[8]
CNOT q[9], q[0]
H q[9]
CNOT q[10], q[0]
H q[10]
CNOT q[11], q[0]
H q[11]
CNOT q[12], q[0]
H q[12]
CNOT q[13], q[0]
H q[13]
CNOT q[14], q[0]
H q[14]
CNOT q[15], q[0]
H q[15]
H q[0]
Rz q[0], 1.570796
Ry q[0], -1.570796
Rz q[0], 1.570796
Rz q[1], 1.570796
Ry q[1], -1.570796
Rz q[1], 1.570796
Rz q[2], 1.570796
Ry q[2], -1.570796
Rz q[2], 1.570796
Rz q[3], 1.570796
Ry q[3], -1.570796
Rz q[3], 1.570796
Rz q[4], 1.570796
Ry q[4], -1.570796
Rz q[4], 1.570796
Rz q[5], 1.570796
Ry q[5], -1.570796
Rz q[5], 1.570796
Rz q[6], 1.570796
Ry q[6], -1.570796
Rz q[6], 1.570796
Rz q[7], 1.570796
Ry q[7], -1.570796
Rz q[7], 1.570796
Rz q[8], 1.570796
Ry q[8], -1.570796
Rz q[8], 1.570796
Rz q[9], 1.570796
Ry q[9], -1.570796
Rz q[9], 1.570796
Rz q[10], 1.570796
Ry q[10], -1.570796
Rz q[10], 1.570796
Rz q[11], 1.570796
Ry q[11], -1.570796
Rz q[11], 1.570796
Rz q[12], 1.570796
Ry q[12], -1.570796
Rz q[12], 1.570796
Rz q[13], 1.570796
Ry q[13], -1.570796
Rz q[13], 1.570796
Rz q[14], 1.570796
Ry q[14], -1.570796
Rz q[14], 1.570796
Rz q[15], 1.570796
Ry q[15], -1.570796
Rz q[15], 1.570796
CNOT q[1], q[0]
H q[1]
CNOT q[2], q[0]
H q[2]
CNOT q[3], q[0]
H q[3]
CNOT q[4], q[0]
H q[4]
CNOT q[5], q[0]
H q[5]
CNOT q[6], q[0]
H q[6]
CNOT q[7], q[0]
H q[7]
CNOT q[8], q[0]
H q[8]
CNOT q[9], q[0]
H q[9]
CNOT q[10], q[0]
H q[10]
CNOT q[11], q[0]
H q[11]
CNOT q[12], q[0]
H q[12]
CNOT q[13], q[0]
H q[13]
CNOT q[14], q[0]
H q[14]
CNOT q[15], q[0]
H q[15]
H q[0]
Rz q[0], 1.570796
Ry q[0], -1.570796
Rz q[0], 1.570796
Rz q[1], 1.570796
Ry q[1], -1.570796
Rz q[1], 1.570796
Rz q[2], 1.570796
Ry q[2], -1.570796
Rz q[2], 1.570796
Rz q[3], 1.570796
Ry q[3], -1.570796
Rz q[3], 1.570796
Rz q[4], 1.570796
Ry q[4], -1.570796
Rz q[4], 1.570796
Rz q[5], 1.570796
Ry q[5], -1.570796
Rz q[5], 1.570796
Rz q[6], 1.570796
Ry q[6], -1.570796
Rz q[6], 1.570796
Rz q[7], 1.570796
Ry q[7], -1.570796
Rz q[7], 1.570796
Rz q[8], 1.570796
Ry q[8], -1.570796
Rz q[8], 1.570796
Rz q[9], 1.570796
Ry q[9], -1.570796
Rz q[9], 1.570796
Rz q[10], 1.570796
Ry q[10], -1.570796
Rz q[10], 1.570796
Rz q[11], 1.570796
Ry q[11], -1.570796
Rz q[11], 1.570796
Rz q[12], 1.570796
Ry q[12], -1.570796
Rz q[12], 1.570796
Rz q[13], 1.570796
Ry q[13], -1.570796
Rz q[13], 1.570796
Rz q[14], 1.570796
Ry q[14], -1.570796
Rz q[14], 1.570796
Rz q[15], 1.570796
Ry q[15], -1.570796
Rz q[15], 1.570796
CNOT q[1], q[0]
H q[1]
CNOT q[2], q[0]
H q[2]
CNOT q[3], q[0]
H q[3]
CNOT q[4], q[0]
H q[4]
CNOT q[5], q[0]
H q[5]
CNOT q[6], q[0]
H q[6]
CNOT q[7], q[0]
H q[7]
CNOT q[8], q[0]
H q[8]
CNOT q[9], q[0]
H q[9]
CNOT q[10], q[0]
H q[10]
CNOT q[11], q[0]
H q[11]
CNOT q[12], q[0]
H q[12]
CNOT q[13], q[0]
H q[13]
CNOT q[14], q[0]
H q[14]
CNOT q[15], q[0]
H q[15]
H q[0]
Rz q[0], 1.570796
Ry q[0], -1.570796
Rz q[0], 1.570796
Rz q[1], 1.570796
Ry q[1], -1.570796
Rz q[1], 1.570796
Rz q[2], 1.570796
Ry q[2], -1.570796
Rz q[2], 1.570796
Rz q[3], 1.570796
Ry q[3], -1.570796
Rz q[3], 1.570796
Rz q[4], 1.570796
Ry q[4], -1.570796
Rz q[4], 1.570796
Rz q[5], 1.570796
Ry q[5], -1.570796
Rz q[5], 1.570796
Rz q[6], 1.570796
Ry q[6], -1.570796
Rz q[6], 1.570796
Rz q[7], 1.570796
Ry q[7], -1.570796
Rz q[7], 1.570796
Rz q[8], 1.570796
Ry q[8], -1.570796
Rz q[8], 1.570796
Rz q[9], 1.570796
Ry q[9], -1.570796
Rz q[9], 1.570796
Rz q[10], 1.570796
Ry q[10], -1.570796
Rz q[10], 1.570796
Rz q[11], 1.570796
Ry q[11], -1.570796
Rz q[11], 1.570796
Rz q[12], 1.570796
Ry q[12], -1.570796
Rz q[12], 1.570796
Rz q[13], 1.570796
Ry q[13], -1.570796
Rz q[13], 1.570796
Rz q[14], 1.570796
Ry q[14], -1.570796
Rz q[14], 1.570796
Rz q[15], 1.570796
Ry q[15], -1.570796
Rz q[15], 1.570796
CNOT q[1], q[0]
H q[1]
CNOT q[2], q[0]
H q[2]
CNOT q[3], q[0]
H q[3]
CNOT q[4], q[0]
H q[4]
CNOT q[5], q[0]
H q[5]
CNOT q[6], q[0]
H q[6]
CNOT q[7], q[0]
H q[7]
CNOT q[8], q[0]
H q[8]
CNOT q[9], q[0]
H q[9]
CNOT q[10], q[0]
H q[10]
CNOT q[11], q[0]
H q[11]
CNOT q[12], q[0]
H q[12]
CNOT q[13], q[0]
H q[13]
CNOT q[14], q[0]
H q[14]
CNOT q[15], q[0]
H q[15]
H q[0]
Rz q[0], 1.570796
Ry q[0], -1.570796
Rz q[0], 1.570796
Rz q[1], 1.570796
Ry q[1], -1.570796
Rz q[1], 1.570796
Rz q[2], 1.570796
Ry q[2], -1.570796
Rz q[2], 1.570796
Rz q[3], 1.570796
Ry q[3], -1.570796
Rz q[3], 1.570796
Rz q[4], 1.570796
Ry q[4], -1.570796
Rz q[4], 1.570796
Rz q[5], 1.570796
Ry q[5], -1.570796
Rz q[5], 1.570796
Rz q[6], 1.570796
Ry q[6], -1.570796
Rz q[6], 1.570796
Rz q[7], 1.570796
Ry q[7], -1.570796
Rz q[7], 1.570796
Rz q[8], 1.570796
Ry q[8], -1.570796
Rz q[8], 1.570796
Rz q[9], 1.570796
Ry q[9], -1.570796
Rz q[9], 1.570796
Rz q[10], 1.570796
Ry q[10], -1.570796
Rz q[10], 1.570796
Rz q[11], 1.570796
Ry q[11], -1.570796
Rz q[11], 1.570796
Rz q[12], 1.570796
Ry q[12], -1.570796
Rz q[12], 1.570796
Rz q[13], 1.570796
Ry q[13], -1.570796
Rz q[13], 1.570796
Rz q[14], 1.570796
Ry q[14], -1.570796
Rz q[14], 1.570796
Rz q[15], 1.570796
Ry q[15], -1.570796
Rz q[15], 1.570796
CNOT q[1], q[0]
H q[1]
CNOT q[2], q[0]
H q[2]
CNOT q[3], q[0]
H q[3]
CNOT q[4], q[0]
H q[4]
CNOT q[5], q[0]
H q[5]
CNOT q[6], q[0]
H q[6]
CNOT q[7], q[0]
H q[7]
CNOT q[8], q[0]
H q[8]
CNOT q[9], q[0]
H q[9]
CNOT q[10], q[0]
H q[10]
CNOT q[11], q[0]
H q[11]
CNOT q[12], q[0]
H q[12]
CNOT q[13], q[0]
H q[13]
CNOT q[14], q[0]
H q[14]
CNOT q[15], q[0]
H q[15]
H q[0]
Rz q[0], 1.570796
Ry q[0], -1.570796
Rz q[0], 1.570796
Rz q[1], 1.570796
Ry q[1], -1.570796
Rz q[1], 1.570796
Rz q[2], 1.570796
Ry q[2], -1.570796
Rz q[2], 1.570796
Rz q[3], 1.570796
Ry q[3], -1.570796
Rz q[3], 1.570796
Rz q[4], 1.570796
Ry q[4], -1.570796
Rz q[4], 1.570796
Rz q[5], 1.570796
Ry q[5], -1.570796
Rz q[5], 1.570796
Rz q[6], 1.570796
Ry q[6], -1.570796
Rz q[6], 1.570796
Rz q[7], 1.570796
Ry q[7], -1.570796
Rz q[7], 1.570796
Rz q[8], 1.570796
Ry q[8], -1.570796
Rz q[8], 1.570796
Rz q[9], 1.570796
Ry q[9], -1.570796
Rz q[9], 1.570796
Rz q[10], 1.570796
Ry q[10], -1.570796
Rz q[10], 1.570796
Rz q[11], 1.570796
Ry q[11], -1.570796
Rz q[11], 1.570796
Rz q[12], 1.570796
Ry q[12], -1.570796
Rz q[12], 1.570796
Rz q[13], 1.570796
Ry q[13], -1.570796
Rz q[13], 1.570796
Rz q[14], 1.570796
Ry q[14], -1.570796
Rz q[14], 1.570796
Rz q[15], 1.570796
Ry q[15], -1.570796
Rz q[15], 1.570796
CNOT q[1], q[0]
H q[1]
CNOT q[2], q[0]
H q[2]
CNOT q[3], q[0]
H q[3]
CNOT q[4], q[0]
H q[4]
CNOT q[5], q[0]
H q[5]
CNOT q[6], q[0]
H q[6]
CNOT q[7], q[0]
H q[7]
CNOT q[8], q[0]
H q[8]
CNOT q[9], q[0]
H q[9]
CNOT q[10], q[0]
H q[10]
CNOT q[11], q[0]
H q[11]
CNOT q[12], q[0]
H q[12]
CNOT q[13], q[0]
H q[13]
CNOT q[14], q[0]
H q[14]
CNOT q[15], q[0]
H q[15]
H q[0]
Rz q[0], 1.570796
Ry q[0], -1.570796
Rz q[0], 1.570796
Rz q[1], 1.570796
Ry q[1], -1.570796
Rz q[1], 1.570796
Rz q[2], 1.570796
Ry q[2], -1.570796
Rz q[2], 1.570796
Rz q[3], 1.570796
Ry q[3], -1.570796
Rz q[3], 1.570796
Rz q[4], 1.570796
Ry q[4], -1.570796
Rz q[4], 1.570796
Rz q[5], 1.570796
Ry q[5], -1.570796
Rz q[5], 1.570796
Rz q[6], 1.570796
Ry q[6], -1.570796
Rz q[6], 1.570796
Rz q[7], 1.570796
Ry q[7], -1.570796
Rz q[7], 1.570796
Rz q[8], 1.570796
Ry q[8], -1.570796
Rz q[8], 1.570796
Rz q[9], 1.570796
Ry q[9], -1.570796
Rz q[9], 1.570796
Rz q[10], 1.570796
Ry q[10], -1.570796
Rz q[10], 1.570796
Rz q[11], 1.570796
Ry q[11], -1.570796
Rz q[11], 1.570796
Rz q[12], 1.570796
Ry q[12], -1.570796
Rz q[12], 1.570796
Rz q[13], 1.570796
Ry q[13], -1.570796
Rz q[13], 1.570796
Rz q[14], 1.570796
Ry q[14], -1.570796
Rz q[14], 1.570796
Rz q[15], 1.570796
Ry q[15], -1.570796
Rz q[15], 1.570796
CNOT q[1], q[0]
CNOT q[2], q[0]
CNOT q[3], q[0]
CNOT q[4], q[0]
CNOT q[5], q[0]
CNOT q[6], q[0]
CNOT q[7], q[0]
CNOT q[8], q[0]
CNOT q[9], q[0]
CNOT q[10], q[0]
CNOT q[11], q[0]
CNOT q[12], q[0]
CNOT q[13], q[0]
CNOT q[14], q[0]
CNOT q[15], q[0]
display
.measurement
   measure q[0]
   measure q[1]
   measure q[2]
   measure q[3]
   measure q[4]
   measure q[5]
   measure q[6]
   measure q[7]
   measure q[8]
   measure q[9]
   measure q[10]
   measure q[11]
   measure q[12]
   measure q[13]
   measure q[14]
   measure q[15]
display
@quantumkoen
Copy link
Contributor Author

A `git bisect' reveals:

There are only 'skip'ped commits left to test.
The first bad commit could be any of:
dea9a2cdfdfc1249092670ea8363dc41e0ec5d6e
2a1aae14d0aa5546f0cef5aaf0e963415a1519e3
519f9705b1bbd24f4c6de740fbd32f6143a06330
9a0db42d612e4cdf084639f3b7d26cfb0ebd5758
We cannot bisect more!

Given the visualization, 9a0db42 is the most likely first bad commit.

image

The skipped commits are because they won't compile due to syntax errors.

@Nader-Khammassi
Copy link
Collaborator

@quantumkoen Here there is two issues:

  • One is related to the rz/ry angles: when a rotation angle is "cropped" there is a loss of precision and when there is a lot of rotations, the angle errors will be amplified and corrupt the quantum state slowly especially when the circuit is large (many qubits or long sequence of gates).
    So 1.570796 should be 1.5707963267949 in this case. I cannot deal with that in QX as we are supposed to accept any arbitrary angle.
  • The second issue is related to the Ry rotations, I just fixed it, I will commit the changes.

I was talking with @kel85uk , and I think it will be good if I have access to this 'random test generation' tool to understand from where the circuit come, and be able to locate the issues whether it is in QX or elsewhere.

@quantumkoen
Copy link
Contributor Author

@Nader-Khammassi i'm not sure how I reported two issues, I think i had just one: i expected (given the displayed quantum state) to get a measurement of all ones with a very high probability, but what I got was a measurement of 0.....010101 all the time (older versions of qx did give me the all ones, with the exact same code). Anyway, i'll try the fixes.

As for the generator, as I just mentioned to @kel85uk this was generated in qiskit with the quantum inspire backend, and that is currently very very experimental, in that it only runs on @peendebak 's machine. I tried to get it working on mine, but ran into issues. Hopefully we can resolve those tomorrow, and we can give you a very early pre-alpha version of that qiskit notebook so you can play with it yourself.

@Nader-Khammassi
Copy link
Collaborator

@quantumkoen No problem, I was just mentioning a side 'issue' (not in the Github sens :) ) with the qasm file that can give a false impressions, but for sure, there was one bug and therefore a github issue ! :)

I just fixed it in commit ed9e307 .
If there is new qasm files with with a small descriptions of what they are supposed to do, I can test them and add them to the test list. It is good for robustness.

Can you test it, if it fixes the problem, you can close the issue.

@quantumkoen
Copy link
Contributor Author

@nader i just checked, and this fixes the issue with the unexpected measurement, cool! looks like we're in good shape to merge the whole-shebang into master and call it a 0.2beta release :)

As for the float precision issue, indeed something to perhaps pay attention to on 'the other side', the SDK should write out higher precision floats.. of course, given that it's PI, you will never get it right with floats but that's something we can't fix ever..

@quantumkoen
Copy link
Contributor Author

@Nader-Khammassi on testing and robustness, I think we should add the example from this issue to the test-suite, it's good practice to always add things that expose a bug, to avoid regressions. As for the short description of what it should do, that's a bit harder. If i'm not mistaken this code is generated to evaluate simulator performance, and was mentioned in this paper: https://arxiv.org/abs/1807.02500

Whether it is supposed to calculate something meaningful, i'm not sure, perhaps @peendebak has some more insight (he actually read the paper, i didn't :).

@Nader-Khammassi
Copy link
Collaborator

@quantumkoen Agree, I added it to the test set and just named 'test_i32.qc' to refer to the issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants