Simulating quantum-circuits in different ways
use flag -i
for interpreting a circuit
use flag -r
for reverse aplication of the circuit
use flag -d
for debug info
use flag -b
for supplying a max bond
use flag -s
for silent mode
❯ cat circuits/QFT2
--H-R2--
----C-H-
❯ python3 compile/compiler.py circuits/QFT2
❯ cat circuits/QFT2.out
2
H
1
C
R2
2
1
H
2
❯ python3 dense/sim.py circuits/QFT2.out '|10>' -i
# state probability
0 |00> 25.0%
1 |01> 25.0%
2 |10> 25.0%
3 |11> 25.0%
Von Neumann entropy:
(-1.442679143053433e-10+0j)
❯ python3 dense/sim.py circuits/QFT2.out '|-+>' -i -r
# state probability
2 |10> 100.0%
Von Neumann entropy:
(-1.442682346479936e-10+0j)
❯ python3 dense/sim.py circuits/QFT2.out '|-+>' -i -r -d
before:
# state probability
0 |00> (0.4999999999999999+0j)
1 |01> (0.4999999999999999+0j)
2 |10> (-0.4999999999999999+0j)
3 |11> (-0.4999999999999999+0j)
# state probability
0 |00> 25.0%
1 |01> 25.0%
2 |10> 25.0%
3 |11> 25.0%
after:
# state probability
0 |00> (-2.465190328815662e-32+0j)
2 |10> (0.9999999999999996+0j)
# state probability
2 |10> 100.0%
rho_a:
[[ 0.+0.j -0.+0.j]
[-0.+0.j 1.+0.j]]
eigen values (sorted):
[1.+0.j 0.+0.j]
Von Neumann entropy:
(-1.442682346479936e-10+0j)
❯ python3 dense/sim.py -b
vn entropy test:
____________________________________________________
QFT 4 qubits
max vn entropy (input |0100>):
rho_a:
[[ 0.25+0.j -0.25+0.j 0. +0.25j -0. -0.25j]
[-0.25+0.j 0.25+0.j -0. -0.25j 0. +0.25j]
[ 0. -0.25j -0. +0.25j 0.25+0.j -0.25+0.j ]
[-0. +0.25j 0. -0.25j -0.25+0.j 0.25+0.j ]]
eigen values (sorted):
[ 1.+0.j 0.+0.j 0.+0.j -0.+0.j]
Von Neumann entropy:
(-1.44263658827253e-10+8.955587872534127e-32j)
____________________________________________________
QFT 8 qubits
max vn entropy (input |01110110>):
rho_a:
[[ 0.0625+0.j -0.0239-0.0577j 0.0347-0.052j -0.0613-0.0122j
0.0551-0.0295j -0.0483-0.0396j 0.0061-0.0622j -0.0598+0.0181j
-0.0606+0.0152j 0.0372+0.0502j -0.0211+0.0588j 0.0624-0.0031j
-0.0463+0.042j 0.0565+0.0267j 0.0092+0.0618j 0.0536-0.0321j]
[-0.0239+0.0577j 0.0625-0.j 0.0347+0.052j 0.0347-0.052j
0.0061+0.0622j 0.0551-0.0295j 0.0551+0.0295j 0.0061-0.0622j
0.0092-0.0618j -0.0606+0.0152j -0.0463-0.042j -0.0211+0.0588j
-0.0211-0.0588j -0.0463+0.042j -0.0606-0.0152j 0.0092+0.0618j]
[ 0.0347+0.052j 0.0347-0.052j 0.0625-0.j -0.0239-0.0577j
0.0551+0.0295j 0.0061-0.0622j 0.0551-0.0295j -0.0483-0.0396j
-0.0463-0.042j -0.0211+0.0588j -0.0606+0.0152j 0.0372+0.0502j
-0.0606-0.0152j 0.0092+0.0618j -0.0463+0.042j 0.0565+0.0267j]
[-0.0613+0.0122j 0.0347+0.052j -0.0239+0.0577j 0.0625+0.j
-0.0483+0.0396j 0.0551+0.0295j 0.0061+0.0622j 0.0551-0.0295j
0.0565-0.0267j -0.0463-0.042j 0.0092-0.0618j -0.0606+0.0152j
0.0372-0.0502j -0.0606-0.0152j -0.0211-0.0588j -0.0463+0.042j ]
[ 0.0551+0.0295j 0.0061-0.0622j 0.0551-0.0295j -0.0483-0.0396j
0.0625+0.j -0.0239-0.0577j 0.0347-0.052j -0.0613-0.0122j
-0.0606-0.0152j 0.0092+0.0618j -0.0463+0.042j 0.0565+0.0267j
-0.0606+0.0152j 0.0372+0.0502j -0.0211+0.0588j 0.0624-0.0031j]
[-0.0483+0.0396j 0.0551+0.0295j 0.0061+0.0622j 0.0551-0.0295j
-0.0239+0.0577j 0.0625+0.j 0.0347+0.052j 0.0347-0.052j
0.0372-0.0502j -0.0606-0.0152j -0.0211-0.0588j -0.0463+0.042j
0.0092-0.0618j -0.0606+0.0152j -0.0463-0.042j -0.0211+0.0588j]
[ 0.0061+0.0622j 0.0551-0.0295j 0.0551+0.0295j 0.0061-0.0622j
0.0347+0.052j 0.0347-0.052j 0.0625-0.j -0.0239-0.0577j
-0.0211-0.0588j -0.0463+0.042j -0.0606-0.0152j 0.0092+0.0618j
-0.0463-0.042j -0.0211+0.0588j -0.0606+0.0152j 0.0372+0.0502j]
[-0.0598-0.0181j 0.0061+0.0622j -0.0483+0.0396j 0.0551+0.0295j
-0.0613+0.0122j 0.0347+0.052j -0.0239+0.0577j 0.0625-0.j
0.0624+0.0031j -0.0211-0.0588j 0.0372-0.0502j -0.0606-0.0152j
0.0565-0.0267j -0.0463-0.042j 0.0092-0.0618j -0.0606+0.0152j]
[-0.0606-0.0152j 0.0092+0.0618j -0.0463+0.042j 0.0565+0.0267j
-0.0606+0.0152j 0.0372+0.0502j -0.0211+0.0588j 0.0624-0.0031j
0.0625+0.j -0.0239-0.0577j 0.0347-0.052j -0.0613-0.0122j
0.0551-0.0295j -0.0483-0.0396j 0.0061-0.0622j -0.0598+0.0181j]
[ 0.0372-0.0502j -0.0606-0.0152j -0.0211-0.0588j -0.0463+0.042j
0.0092-0.0618j -0.0606+0.0152j -0.0463-0.042j -0.0211+0.0588j
-0.0239+0.0577j 0.0625+0.j 0.0347+0.052j 0.0347-0.052j
0.0061+0.0622j 0.0551-0.0295j 0.0551+0.0295j 0.0061-0.0622j]
[-0.0211-0.0588j -0.0463+0.042j -0.0606-0.0152j 0.0092+0.0618j
-0.0463-0.042j -0.0211+0.0588j -0.0606+0.0152j 0.0372+0.0502j
0.0347+0.052j 0.0347-0.052j 0.0625-0.j -0.0239-0.0577j
0.0551+0.0295j 0.0061-0.0622j 0.0551-0.0295j -0.0483-0.0396j]
[ 0.0624+0.0031j -0.0211-0.0588j 0.0372-0.0502j -0.0606-0.0152j
0.0565-0.0267j -0.0463-0.042j 0.0092-0.0618j -0.0606+0.0152j
-0.0613+0.0122j 0.0347+0.052j -0.0239+0.0577j 0.0625+0.j
-0.0483+0.0396j 0.0551+0.0295j 0.0061+0.0622j 0.0551-0.0295j]
[-0.0463-0.042j -0.0211+0.0588j -0.0606+0.0152j 0.0372+0.0502j
-0.0606-0.0152j 0.0092+0.0618j -0.0463+0.042j 0.0565+0.0267j
0.0551+0.0295j 0.0061-0.0622j 0.0551-0.0295j -0.0483-0.0396j
0.0625+0.j -0.0239-0.0577j 0.0347-0.052j -0.0613-0.0122j]
[ 0.0565-0.0267j -0.0463-0.042j 0.0092-0.0618j -0.0606+0.0152j
0.0372-0.0502j -0.0606-0.0152j -0.0211-0.0588j -0.0463+0.042j
-0.0483+0.0396j 0.0551+0.0295j 0.0061+0.0622j 0.0551-0.0295j
-0.0239+0.0577j 0.0625+0.j 0.0347+0.052j 0.0347-0.052j ]
[ 0.0092-0.0618j -0.0606+0.0152j -0.0463-0.042j -0.0211+0.0588j
-0.0211-0.0588j -0.0463+0.042j -0.0606-0.0152j 0.0092+0.0618j
0.0061+0.0622j 0.0551-0.0295j 0.0551+0.0295j 0.0061-0.0622j
0.0347+0.052j 0.0347-0.052j 0.0625+0.j -0.0239-0.0577j]
[ 0.0536+0.0321j 0.0092-0.0618j 0.0565-0.0267j -0.0463-0.042j
0.0624+0.0031j -0.0211-0.0588j 0.0372-0.0502j -0.0606-0.0152j
-0.0598-0.0181j 0.0061+0.0622j -0.0483+0.0396j 0.0551+0.0295j
-0.0613+0.0122j 0.0347+0.052j -0.0239+0.0577j 0.0625+0.j ]]
eigen values (sorted):
[ 1.+0.j 0.-0.j 0.-0.j 0.-0.j 0.-0.j 0.+0.j 0.-0.j 0.-0.j 0.-0.j
-0.+0.j -0.-0.j -0.+0.j -0.-0.j -0.-0.j -0.+0.j -0.-0.j]
Von Neumann entropy:
(-1.4426584258484466e-10-1.0865843947218547e-15j)
____________________________________________________
QFT 2 qubits
max vn entropy (input |01>):
rho_a:
[[0.5+0.j 0. +0.5j]
[0. -0.5j 0.5+0.j ]]
eigen values (sorted):
[ 1.+0.j -0.-0.j]
Von Neumann entropy:
(-1.4426791430533217e-10-9.620630955709676e-16j)
____________________________________________________
Absolutely Maximal Entropy 4 qubits
max vn entropy (input |0000>):
rho_a:
[[0.5+0.j 0. +0.j 0. +0.j 0. +0.j]
[0. +0.j 0. +0.j 0. +0.j 0. +0.j]
[0. +0.j 0. +0.j 0. +0.j 0. +0.j]
[0. +0.j 0. +0.j 0. +0.j 0.5+0.j]]
eigen values (sorted):
[0.5+0.j 0.5+0.j 0. +0.j 0. +0.j]
Von Neumann entropy:
(0.999999999711461+0j)
____________________________________________________
Identity 4 qubits
max vn entropy (input |0000>):
rho_a:
[[1.+0.j 0.+0.j 0.+0.j 0.+0.j]
[0.+0.j 0.+0.j 0.+0.j 0.+0.j]
[0.+0.j 0.+0.j 0.+0.j 0.+0.j]
[0.+0.j 0.+0.j 0.+0.j 0.+0.j]]
eigen values (sorted):
[1.+0.j 0.+0.j 0.+0.j 0.+0.j]
Von Neumann entropy:
(-1.4426951601859514e-10+0j)
____________________________________________________