qadence.draw example plots
Mostly for quick, manual checking of correct plotting output.
from qadence import X , Y , kron
from qadence.draw import display
b = kron ( X ( 0 ), Y ( 1 ))
%3
1daa117c21bb43e5b7e8dece3354dc53
0
3a85c69e67da4e12a757a2fcda22f635
X
1daa117c21bb43e5b7e8dece3354dc53--3a85c69e67da4e12a757a2fcda22f635
fd54127a3e084cb8a0a0da963b07d270
1
dc8d14ba2ee4485e97b5084f4dd3ef7a
3a85c69e67da4e12a757a2fcda22f635--dc8d14ba2ee4485e97b5084f4dd3ef7a
6b7ed2e1c9be46c0aafed23df7aa6f79
961d22eef5c94689b8c1fa1e515184ce
Y
fd54127a3e084cb8a0a0da963b07d270--961d22eef5c94689b8c1fa1e515184ce
961d22eef5c94689b8c1fa1e515184ce--6b7ed2e1c9be46c0aafed23df7aa6f79
from qadence import X , Y , chain
from qadence.draw import display
b = chain ( X ( 0 ), Y ( 0 ))
%3
2dddc6d8157c41e3ad047617a58e1c13
0
d50c205a7f634f33ba002e9b699708d2
X
2dddc6d8157c41e3ad047617a58e1c13--d50c205a7f634f33ba002e9b699708d2
ab58099b57ec483da8987ca32daee2cb
Y
d50c205a7f634f33ba002e9b699708d2--ab58099b57ec483da8987ca32daee2cb
a9291538dffd46ab8daa65f322a17203
ab58099b57ec483da8987ca32daee2cb--a9291538dffd46ab8daa65f322a17203
from qadence import X , Y , chain
from qadence.draw import display
b = chain ( X ( 0 ), Y ( 1 ))
%3
a904cc09d8d241b7b0c07654253b789b
0
dbaf08d4537441b78a40d32feae2cc9d
X
a904cc09d8d241b7b0c07654253b789b--dbaf08d4537441b78a40d32feae2cc9d
ec0a0159732f4d1e82803c29fd783a18
1
cddd9e33694e4943ab8e7768642edc45
dbaf08d4537441b78a40d32feae2cc9d--cddd9e33694e4943ab8e7768642edc45
8ee3bf44ddfb445a8a67f61c557224bc
cddd9e33694e4943ab8e7768642edc45--8ee3bf44ddfb445a8a67f61c557224bc
96ecd7a7bf84460eae84b12fef1b7e54
24cd5aa748554241bb0ba759db887979
ec0a0159732f4d1e82803c29fd783a18--24cd5aa748554241bb0ba759db887979
5b5c1c825a074eadb7eafcfcb4ffcf10
Y
24cd5aa748554241bb0ba759db887979--5b5c1c825a074eadb7eafcfcb4ffcf10
5b5c1c825a074eadb7eafcfcb4ffcf10--96ecd7a7bf84460eae84b12fef1b7e54
from qadence import X , Y , add
from qadence.draw import display
b = add ( X ( 0 ), Y ( 1 ), X ( 2 ))
%3
cluster_3ddd5bf09da94c4695ac9dec721403e2
9b5e3a341b2f4d4fa04cc0377ec6c9ca
0
89afc7e30d484c41804ad0263e7d428d
9b5e3a341b2f4d4fa04cc0377ec6c9ca--89afc7e30d484c41804ad0263e7d428d
c48b76c9ff6042de92367bfb7daa0a1c
1
28fd3f84df8e4347b757af7969714cf1
89afc7e30d484c41804ad0263e7d428d--28fd3f84df8e4347b757af7969714cf1
57c07b25c3a84e9cbb6e794dfe12ded4
e6c96c3c822841438b506e2e434730ca
AddBlock
c48b76c9ff6042de92367bfb7daa0a1c--e6c96c3c822841438b506e2e434730ca
3e1819fd937444788d7a76adc06e45e5
2
e6c96c3c822841438b506e2e434730ca--57c07b25c3a84e9cbb6e794dfe12ded4
8a4f7661175c43c1a9901c07dfe9733d
34c9dc4b98f14127b7f3f2592ed35a70
3e1819fd937444788d7a76adc06e45e5--34c9dc4b98f14127b7f3f2592ed35a70
34c9dc4b98f14127b7f3f2592ed35a70--8a4f7661175c43c1a9901c07dfe9733d
from qadence import CNOT , RX , HamEvo , X , Y , Z , chain , kron
rx = kron ( RX ( 3 , 0.5 ), RX ( 2 , "x" ))
rx . tag = "rx"
gen = chain ( Z ( i ) for i in range ( 4 ))
# `chain` puts things in sequence
block = chain (
kron ( X ( 0 ), Y ( 1 ), rx ),
CNOT ( 2 , 3 ),
HamEvo ( gen , 10 )
)
%3
cluster_f309f73916c547b590252bc85fc6047b
cluster_211ceb986dc14e658d8bc52a711019ef
rx
c5026c52bbcd459ebde4ee9453314e0d
0
a6239b9bf6b6475ab88b765e4c00e097
X
c5026c52bbcd459ebde4ee9453314e0d--a6239b9bf6b6475ab88b765e4c00e097
7a0cc5ff2c0045809a9d22a5683059d4
1
f74ef5ffb3e146e28256e264b48bddd9
a6239b9bf6b6475ab88b765e4c00e097--f74ef5ffb3e146e28256e264b48bddd9
76ddfafeec5c4f4b92e16dc49bbdad0b
f74ef5ffb3e146e28256e264b48bddd9--76ddfafeec5c4f4b92e16dc49bbdad0b
3b5fb597985a4e7683fc95183a4ec6f8
76ddfafeec5c4f4b92e16dc49bbdad0b--3b5fb597985a4e7683fc95183a4ec6f8
fbe101d686c34253a165b7aae7ec7950
3cb12ed091f94ab6a255c35cbaf8dd02
Y
7a0cc5ff2c0045809a9d22a5683059d4--3cb12ed091f94ab6a255c35cbaf8dd02
e1b0129cc6c94b26862688bfca581a40
2
18b065d736e24ec8b00fc8e5626ddefc
3cb12ed091f94ab6a255c35cbaf8dd02--18b065d736e24ec8b00fc8e5626ddefc
2dd0a94139be4b318312608f11e6ddc6
HamEvo
18b065d736e24ec8b00fc8e5626ddefc--2dd0a94139be4b318312608f11e6ddc6
2dd0a94139be4b318312608f11e6ddc6--fbe101d686c34253a165b7aae7ec7950
b882e79f850c497c8c89fbcfd925722c
3e328bc354894f9dbd127131eaa24885
RX(x)
e1b0129cc6c94b26862688bfca581a40--3e328bc354894f9dbd127131eaa24885
65c80d2359e14da09572db060e94fc25
3
868e20a75b2a410e9b5999b05f063387
3e328bc354894f9dbd127131eaa24885--868e20a75b2a410e9b5999b05f063387
287d8b46e5d24649809bcea5e47f5c7b
t = 10
868e20a75b2a410e9b5999b05f063387--287d8b46e5d24649809bcea5e47f5c7b
287d8b46e5d24649809bcea5e47f5c7b--b882e79f850c497c8c89fbcfd925722c
6ce3e454c6b14ad6bc80db03fae0b687
1f97c61a05134ff3b2d3efad94d37db3
RX(0.5)
65c80d2359e14da09572db060e94fc25--1f97c61a05134ff3b2d3efad94d37db3
b059e2d0f1eb4700965cb333458b40e8
X
1f97c61a05134ff3b2d3efad94d37db3--b059e2d0f1eb4700965cb333458b40e8
b059e2d0f1eb4700965cb333458b40e8--868e20a75b2a410e9b5999b05f063387
287970447c8b41bfb75e1268510aa867
b059e2d0f1eb4700965cb333458b40e8--287970447c8b41bfb75e1268510aa867
287970447c8b41bfb75e1268510aa867--6ce3e454c6b14ad6bc80db03fae0b687
from qadence import feature_map , hea , chain
block = chain ( feature_map ( 4 , reupload_scaling = "Tower" ), hea ( 4 , 2 ))
%3
cluster_5a30865feea649058fceece1715d86cb
HEA
cluster_f9c9cfe0288244548bf9a341b702a200
Tower Fourier FM
a3b03fafd66c43759ed4e8b5563a1c6f
0
fb609ae447014a6d89967f89c062f451
RX(1.0*phi)
a3b03fafd66c43759ed4e8b5563a1c6f--fb609ae447014a6d89967f89c062f451
3dd53dd129334e3389bcc86fda892a0d
1
3b05ff3f5e69461ea9a8b4c9d94878ce
RX(theta₀)
fb609ae447014a6d89967f89c062f451--3b05ff3f5e69461ea9a8b4c9d94878ce
a092aa4c378749e4a38fb642ce9343a4
RY(theta₄)
3b05ff3f5e69461ea9a8b4c9d94878ce--a092aa4c378749e4a38fb642ce9343a4
587c6cc8e0bf4b36ab722ba5420999c7
RX(theta₈)
a092aa4c378749e4a38fb642ce9343a4--587c6cc8e0bf4b36ab722ba5420999c7
38baf10af8674bf5b6438d6199957743
587c6cc8e0bf4b36ab722ba5420999c7--38baf10af8674bf5b6438d6199957743
19a93cd80785490fa2ce47be074485a4
38baf10af8674bf5b6438d6199957743--19a93cd80785490fa2ce47be074485a4
2e5b3d4ebe2246d79d9592e1e7d457d4
RX(theta₁₂)
19a93cd80785490fa2ce47be074485a4--2e5b3d4ebe2246d79d9592e1e7d457d4
b1b8f39ea7414ef3b57688f46a1797d7
RY(theta₁₆)
2e5b3d4ebe2246d79d9592e1e7d457d4--b1b8f39ea7414ef3b57688f46a1797d7
0fe58212e74d47a9ab9f492be45da475
RX(theta₂₀)
b1b8f39ea7414ef3b57688f46a1797d7--0fe58212e74d47a9ab9f492be45da475
4af8129727b345ac8c808e2a5517118f
0fe58212e74d47a9ab9f492be45da475--4af8129727b345ac8c808e2a5517118f
318c74940a5e4c729b06b82cb5814b61
4af8129727b345ac8c808e2a5517118f--318c74940a5e4c729b06b82cb5814b61
54706e2dfb2245c2b6f27fcd648b2445
318c74940a5e4c729b06b82cb5814b61--54706e2dfb2245c2b6f27fcd648b2445
a00c8900da7a428cb46d35ce63212fe8
3572f9193cba4bf7af87b1bc8b62229e
RX(2.0*phi)
3dd53dd129334e3389bcc86fda892a0d--3572f9193cba4bf7af87b1bc8b62229e
f658111ec85f49329e3d6914d24b8481
2
ba56c55af34f4766b6219be9cc12d84e
RX(theta₁)
3572f9193cba4bf7af87b1bc8b62229e--ba56c55af34f4766b6219be9cc12d84e
e3ccaf7a819a40d0a2b56aa2ce671387
RY(theta₅)
ba56c55af34f4766b6219be9cc12d84e--e3ccaf7a819a40d0a2b56aa2ce671387
d5da058a79214537ab446272cedd8a2d
RX(theta₉)
e3ccaf7a819a40d0a2b56aa2ce671387--d5da058a79214537ab446272cedd8a2d
2d51759e928941b1bb1d60fc31dbdca4
X
d5da058a79214537ab446272cedd8a2d--2d51759e928941b1bb1d60fc31dbdca4
2d51759e928941b1bb1d60fc31dbdca4--38baf10af8674bf5b6438d6199957743
d8d1aec99567452a92a62040393e9e8f
2d51759e928941b1bb1d60fc31dbdca4--d8d1aec99567452a92a62040393e9e8f
d7e4abcbd7fb4b4ea84d23f781667884
RX(theta₁₃)
d8d1aec99567452a92a62040393e9e8f--d7e4abcbd7fb4b4ea84d23f781667884
8f6912124f9d4a84a596da1f177ebeb4
RY(theta₁₇)
d7e4abcbd7fb4b4ea84d23f781667884--8f6912124f9d4a84a596da1f177ebeb4
13e941f197ed4babb9814902b5ee04d4
RX(theta₂₁)
8f6912124f9d4a84a596da1f177ebeb4--13e941f197ed4babb9814902b5ee04d4
f59e2ca264d4413e820e005e52f251c5
X
13e941f197ed4babb9814902b5ee04d4--f59e2ca264d4413e820e005e52f251c5
f59e2ca264d4413e820e005e52f251c5--4af8129727b345ac8c808e2a5517118f
1608498244074258ae913f798b2a4a4d
f59e2ca264d4413e820e005e52f251c5--1608498244074258ae913f798b2a4a4d
1608498244074258ae913f798b2a4a4d--a00c8900da7a428cb46d35ce63212fe8
c3d2b5ccd7ed469c9abbc7129e4ae547
88a8e1ce18c6403aa5ca4392f3cddaed
RX(3.0*phi)
f658111ec85f49329e3d6914d24b8481--88a8e1ce18c6403aa5ca4392f3cddaed
baeb67ff0fc44f3e9cf6ef7f4c535205
3
3393edd4aa23467fb975af7af06d1b1d
RX(theta₂)
88a8e1ce18c6403aa5ca4392f3cddaed--3393edd4aa23467fb975af7af06d1b1d
8ba4ece96aee4d5e95e6d5a6517616cd
RY(theta₆)
3393edd4aa23467fb975af7af06d1b1d--8ba4ece96aee4d5e95e6d5a6517616cd
3818a4a1cd6a4e88b82dffc8309e79fe
RX(theta₁₀)
8ba4ece96aee4d5e95e6d5a6517616cd--3818a4a1cd6a4e88b82dffc8309e79fe
42bd302e87a846ae940f91f2c9edc511
3818a4a1cd6a4e88b82dffc8309e79fe--42bd302e87a846ae940f91f2c9edc511
c822a1643465439782e99463adb60703
X
42bd302e87a846ae940f91f2c9edc511--c822a1643465439782e99463adb60703
c822a1643465439782e99463adb60703--d8d1aec99567452a92a62040393e9e8f
637403fa5a3a4ce5afb3480f32641519
RX(theta₁₄)
c822a1643465439782e99463adb60703--637403fa5a3a4ce5afb3480f32641519
e4c19e22b2234ccaaaf1e9dde902c5f4
RY(theta₁₈)
637403fa5a3a4ce5afb3480f32641519--e4c19e22b2234ccaaaf1e9dde902c5f4
584741a6e5e24ba3b1bab5f1b010f4e5
RX(theta₂₂)
e4c19e22b2234ccaaaf1e9dde902c5f4--584741a6e5e24ba3b1bab5f1b010f4e5
5f605fb9baef47eb912af489befca9aa
584741a6e5e24ba3b1bab5f1b010f4e5--5f605fb9baef47eb912af489befca9aa
fd1b44808afc452487810951d5668080
X
5f605fb9baef47eb912af489befca9aa--fd1b44808afc452487810951d5668080
fd1b44808afc452487810951d5668080--1608498244074258ae913f798b2a4a4d
fd1b44808afc452487810951d5668080--c3d2b5ccd7ed469c9abbc7129e4ae547
174b1d7c14554b15bc35871253e2c372
35a5507d64d743c4843d0d80931750f8
RX(4.0*phi)
baeb67ff0fc44f3e9cf6ef7f4c535205--35a5507d64d743c4843d0d80931750f8
c842ee7e06bc4bc0a804914bbe47c840
RX(theta₃)
35a5507d64d743c4843d0d80931750f8--c842ee7e06bc4bc0a804914bbe47c840
0f1c49eb14204c2a9d421c999de51983
RY(theta₇)
c842ee7e06bc4bc0a804914bbe47c840--0f1c49eb14204c2a9d421c999de51983
d09c27da3c6847ed83e455f01ff95b02
RX(theta₁₁)
0f1c49eb14204c2a9d421c999de51983--d09c27da3c6847ed83e455f01ff95b02
b6ec1b43bccf437981ac0d881e0373f8
X
d09c27da3c6847ed83e455f01ff95b02--b6ec1b43bccf437981ac0d881e0373f8
b6ec1b43bccf437981ac0d881e0373f8--42bd302e87a846ae940f91f2c9edc511
e7647b6ab45b4d83ad272ad3b0ec072e
b6ec1b43bccf437981ac0d881e0373f8--e7647b6ab45b4d83ad272ad3b0ec072e
182452c69f634c99aa2e737aedebb82c
RX(theta₁₅)
e7647b6ab45b4d83ad272ad3b0ec072e--182452c69f634c99aa2e737aedebb82c
2977223c6e4c4cf194aa77d9d3cd770b
RY(theta₁₉)
182452c69f634c99aa2e737aedebb82c--2977223c6e4c4cf194aa77d9d3cd770b
bc89f95f9b204c80842544ea952415f6
RX(theta₂₃)
2977223c6e4c4cf194aa77d9d3cd770b--bc89f95f9b204c80842544ea952415f6
e68c7327a8b6401391586233d56e2822
X
bc89f95f9b204c80842544ea952415f6--e68c7327a8b6401391586233d56e2822
e68c7327a8b6401391586233d56e2822--5f605fb9baef47eb912af489befca9aa
005f58f5232047b2bc8ad3c003e8b376
e68c7327a8b6401391586233d56e2822--005f58f5232047b2bc8ad3c003e8b376
005f58f5232047b2bc8ad3c003e8b376--174b1d7c14554b15bc35871253e2c372
from qadence import QuantumModel , QuantumCircuit , total_magnetization , hea
model = QuantumModel ( QuantumCircuit ( 3 , hea ( 3 , 2 )), total_magnetization ( 3 ))
%3
cluster_defef0696faf499da9a0825459f76b3f
Obs.
cluster_c96bb275c72f4af9a6454805ff79dba2
cluster_a9c1a8db7de5470e8ebefa039860df88
HEA
3e85aa99042445c0b1390ad3a426d073
0
5e5a1fd1f6fc438f91c5129278c08e61
RX(theta₀)
3e85aa99042445c0b1390ad3a426d073--5e5a1fd1f6fc438f91c5129278c08e61
4ae3d8e442844aec8f5f39cf0726d90a
1
4342554cee654af09a50a85cd8833789
RY(theta₃)
5e5a1fd1f6fc438f91c5129278c08e61--4342554cee654af09a50a85cd8833789
4c417ecb661e447a8dc9d8b4e1ee180f
RX(theta₆)
4342554cee654af09a50a85cd8833789--4c417ecb661e447a8dc9d8b4e1ee180f
ec43b9244cf34bbfb1f46a695c143a19
4c417ecb661e447a8dc9d8b4e1ee180f--ec43b9244cf34bbfb1f46a695c143a19
0e2dafe59b3f4fe28cec79ff4fbd23e3
ec43b9244cf34bbfb1f46a695c143a19--0e2dafe59b3f4fe28cec79ff4fbd23e3
ce18a0f321de4702b1208b3d30b3c74d
RX(theta₉)
0e2dafe59b3f4fe28cec79ff4fbd23e3--ce18a0f321de4702b1208b3d30b3c74d
fe35e0936f884d6abf5538a939bec1cd
RY(theta₁₂)
ce18a0f321de4702b1208b3d30b3c74d--fe35e0936f884d6abf5538a939bec1cd
d6c2979f80d94c869b3ff7a088404bea
RX(theta₁₅)
fe35e0936f884d6abf5538a939bec1cd--d6c2979f80d94c869b3ff7a088404bea
7c67c515039947f6a5b0843acbc87e79
d6c2979f80d94c869b3ff7a088404bea--7c67c515039947f6a5b0843acbc87e79
6863fb89ec5b4e17a8a0591d7d9e0e00
7c67c515039947f6a5b0843acbc87e79--6863fb89ec5b4e17a8a0591d7d9e0e00
17a73e65e2564f7cb4832f3067edde58
6863fb89ec5b4e17a8a0591d7d9e0e00--17a73e65e2564f7cb4832f3067edde58
f4afbbabaf4e4cbdbbda98be908dbd1c
17a73e65e2564f7cb4832f3067edde58--f4afbbabaf4e4cbdbbda98be908dbd1c
d857c876383c456fbaaa8ca83fd8df22
bb5b62ab4e6d4b8d9500696b65fe2875
RX(theta₁)
4ae3d8e442844aec8f5f39cf0726d90a--bb5b62ab4e6d4b8d9500696b65fe2875
0346801779d34e10ab2a1eeb43a903ad
2
e32bf6d8f1b34fe388a913e27d61c566
RY(theta₄)
bb5b62ab4e6d4b8d9500696b65fe2875--e32bf6d8f1b34fe388a913e27d61c566
f74073b9301c42348f8f8219b519a38a
RX(theta₇)
e32bf6d8f1b34fe388a913e27d61c566--f74073b9301c42348f8f8219b519a38a
2008b43715c54277be362fe32fccc4b5
X
f74073b9301c42348f8f8219b519a38a--2008b43715c54277be362fe32fccc4b5
2008b43715c54277be362fe32fccc4b5--ec43b9244cf34bbfb1f46a695c143a19
8d898797dcce4237afbc653686dfeb04
2008b43715c54277be362fe32fccc4b5--8d898797dcce4237afbc653686dfeb04
a29bc92003584136882ed65246b33558
RX(theta₁₀)
8d898797dcce4237afbc653686dfeb04--a29bc92003584136882ed65246b33558
ab2132bc10ab45f38f782a150b1c3f81
RY(theta₁₃)
a29bc92003584136882ed65246b33558--ab2132bc10ab45f38f782a150b1c3f81
132e598bf87445e884c7d425ef818b1c
RX(theta₁₆)
ab2132bc10ab45f38f782a150b1c3f81--132e598bf87445e884c7d425ef818b1c
13d754a525de425e93ebcb65106ddbd9
X
132e598bf87445e884c7d425ef818b1c--13d754a525de425e93ebcb65106ddbd9
13d754a525de425e93ebcb65106ddbd9--7c67c515039947f6a5b0843acbc87e79
c17dc57001fc4e728d982577f239831c
13d754a525de425e93ebcb65106ddbd9--c17dc57001fc4e728d982577f239831c
27e64b12c0e04046b53e32388ca0aa39
AddBlock
c17dc57001fc4e728d982577f239831c--27e64b12c0e04046b53e32388ca0aa39
27e64b12c0e04046b53e32388ca0aa39--d857c876383c456fbaaa8ca83fd8df22
f6c95b93c1734ed69456343b97d01486
b3ecbb3280f34923ab4bf4a9364ee038
RX(theta₂)
0346801779d34e10ab2a1eeb43a903ad--b3ecbb3280f34923ab4bf4a9364ee038
f565c65212ff454288b8a7724dbc77f3
RY(theta₅)
b3ecbb3280f34923ab4bf4a9364ee038--f565c65212ff454288b8a7724dbc77f3
581f40d7b2cb4e9b9115e19b1aee92b1
RX(theta₈)
f565c65212ff454288b8a7724dbc77f3--581f40d7b2cb4e9b9115e19b1aee92b1
c37de2f56301412a9087656716fcdb25
581f40d7b2cb4e9b9115e19b1aee92b1--c37de2f56301412a9087656716fcdb25
ca40076c4a99419aa196b891392366e2
X
c37de2f56301412a9087656716fcdb25--ca40076c4a99419aa196b891392366e2
ca40076c4a99419aa196b891392366e2--8d898797dcce4237afbc653686dfeb04
35c6aeffd28746b48574770935dc25a3
RX(theta₁₁)
ca40076c4a99419aa196b891392366e2--35c6aeffd28746b48574770935dc25a3
a53723c32daa47cea399331e50374edb
RY(theta₁₄)
35c6aeffd28746b48574770935dc25a3--a53723c32daa47cea399331e50374edb
72a2c295e3f04b99baa7ad81178520b5
RX(theta₁₇)
a53723c32daa47cea399331e50374edb--72a2c295e3f04b99baa7ad81178520b5
73a2e9485ecc40ecb9efa79e4d3e89d1
72a2c295e3f04b99baa7ad81178520b5--73a2e9485ecc40ecb9efa79e4d3e89d1
9260526207814accb20457ec7497e8a5
X
73a2e9485ecc40ecb9efa79e4d3e89d1--9260526207814accb20457ec7497e8a5
9260526207814accb20457ec7497e8a5--c17dc57001fc4e728d982577f239831c
69b44d230df9440b8c301a96a0b65788
9260526207814accb20457ec7497e8a5--69b44d230df9440b8c301a96a0b65788
69b44d230df9440b8c301a96a0b65788--f6c95b93c1734ed69456343b97d01486
from qadence import *
b = chain ( SWAP ( 0 , 1 ), SWAP ( 0 , 3 ))
%3
8723f533454241f5945a8f405df65481
0
73bfbbcb6b274b48a27f42ce920da117
8723f533454241f5945a8f405df65481--73bfbbcb6b274b48a27f42ce920da117
bd32ac0661104866a3ea245c93c59b50
1
b8c7075f79174fc3baf9315601ed9773
9fc11298d5504eee88897dbb2fd498b8
73bfbbcb6b274b48a27f42ce920da117--9fc11298d5504eee88897dbb2fd498b8
c1a6a08b6d09448d8f6ae0c59676b324
b8c7075f79174fc3baf9315601ed9773--c1a6a08b6d09448d8f6ae0c59676b324
18652ffdc33745679ce5abe07b9344db
ddd1200c63e24b71a16b5c515c4b8d0a
c1a6a08b6d09448d8f6ae0c59676b324--ddd1200c63e24b71a16b5c515c4b8d0a
863c057beee948039686314d6d86698c
18652ffdc33745679ce5abe07b9344db--863c057beee948039686314d6d86698c
eb254374ad944bcfab757fdc6cd3988f
b12401848f114f979ca6baa0ff506b12
bd32ac0661104866a3ea245c93c59b50--b12401848f114f979ca6baa0ff506b12
d4150eb2de6641478a9b35aa5a391305
2
b12401848f114f979ca6baa0ff506b12--b8c7075f79174fc3baf9315601ed9773
80a5e0d5e40e4882a11f5671ab01d260
9fc11298d5504eee88897dbb2fd498b8--80a5e0d5e40e4882a11f5671ab01d260
0d83751bad0a4311b2126a470912891e
80a5e0d5e40e4882a11f5671ab01d260--0d83751bad0a4311b2126a470912891e
0d83751bad0a4311b2126a470912891e--eb254374ad944bcfab757fdc6cd3988f
9a5610ec76594617b70ba95a9a537175
3e591ebd40b14ffdba7a81fe082e1b16
d4150eb2de6641478a9b35aa5a391305--3e591ebd40b14ffdba7a81fe082e1b16
291151e2b73f44d6a8d0827ae19b5d70
3
42fa41f59daf4a3089d2eddee98f990b
3e591ebd40b14ffdba7a81fe082e1b16--42fa41f59daf4a3089d2eddee98f990b
4be45a0b610c4610a5a5b865f91ac210
42fa41f59daf4a3089d2eddee98f990b--4be45a0b610c4610a5a5b865f91ac210
706de203aca04b9db409247c6d14e85c
4be45a0b610c4610a5a5b865f91ac210--706de203aca04b9db409247c6d14e85c
706de203aca04b9db409247c6d14e85c--9a5610ec76594617b70ba95a9a537175
587c0b7eace24fd096003a1a2277c522
0dceaebd0afb46b18147e95249b86814
291151e2b73f44d6a8d0827ae19b5d70--0dceaebd0afb46b18147e95249b86814
775dff0a58c94b998612e094e9cd6d21
0dceaebd0afb46b18147e95249b86814--775dff0a58c94b998612e094e9cd6d21
ac2a771db5d94fe0b8ce9fe60c88bbca
775dff0a58c94b998612e094e9cd6d21--ac2a771db5d94fe0b8ce9fe60c88bbca
ac2a771db5d94fe0b8ce9fe60c88bbca--18652ffdc33745679ce5abe07b9344db
ddd1200c63e24b71a16b5c515c4b8d0a--587c0b7eace24fd096003a1a2277c522
from qadence import *
b = chain ( CPHASE ( 0 , 1 , 0.5 ), CPHASE ( 0 , 2 , 0.5 ), CPHASE ( 0 , 3 , 0.5 ))
%3
eea1771e398e408b8b9c2351299cfee9
0
52283658a5d14e1887c571ec752863ed
eea1771e398e408b8b9c2351299cfee9--52283658a5d14e1887c571ec752863ed
b392162242054b7dbf32faa8e8e82808
1
f32c54d4b6e844ad9bcdf2aabaa17776
52283658a5d14e1887c571ec752863ed--f32c54d4b6e844ad9bcdf2aabaa17776
d36c7923d4fc4acb95715988d5694fb7
f32c54d4b6e844ad9bcdf2aabaa17776--d36c7923d4fc4acb95715988d5694fb7
dad103426bcc4586b33286198180cd4b
d36c7923d4fc4acb95715988d5694fb7--dad103426bcc4586b33286198180cd4b
f32a205279ce4b1c97ecb7aaea12eef0
1836f970264e4eb9ab6b9dd3f87c866b
PHASE(0.5)
b392162242054b7dbf32faa8e8e82808--1836f970264e4eb9ab6b9dd3f87c866b
bf22556641b5496cbb8bbfad7788604b
2
1836f970264e4eb9ab6b9dd3f87c866b--52283658a5d14e1887c571ec752863ed
21ce957bd4974f81a6b59fe5c7e7c8f8
1836f970264e4eb9ab6b9dd3f87c866b--21ce957bd4974f81a6b59fe5c7e7c8f8
0d97ca2b54c342928d06c5e84c7c0cef
21ce957bd4974f81a6b59fe5c7e7c8f8--0d97ca2b54c342928d06c5e84c7c0cef
0d97ca2b54c342928d06c5e84c7c0cef--f32a205279ce4b1c97ecb7aaea12eef0
12dbba37f5a24e95be4cac8bc0663a48
7041079bc9214e008d00714f311fa5c8
bf22556641b5496cbb8bbfad7788604b--7041079bc9214e008d00714f311fa5c8
bc713b8cd67f48c7aea46fbd4792b58a
3
944c0bfbecd84812bda53d6830224387
PHASE(0.5)
7041079bc9214e008d00714f311fa5c8--944c0bfbecd84812bda53d6830224387
944c0bfbecd84812bda53d6830224387--f32c54d4b6e844ad9bcdf2aabaa17776
af342944d1804ddc91d2e166285c56cd
944c0bfbecd84812bda53d6830224387--af342944d1804ddc91d2e166285c56cd
af342944d1804ddc91d2e166285c56cd--12dbba37f5a24e95be4cac8bc0663a48
bab3e9ef21a44dbeae212b5135e8b02d
afbc2d57014c48708df654f3deeccf47
bc713b8cd67f48c7aea46fbd4792b58a--afbc2d57014c48708df654f3deeccf47
4bbc55d807264f3f9581ad521455f66e
afbc2d57014c48708df654f3deeccf47--4bbc55d807264f3f9581ad521455f66e
e0c5c464201240478849837889523770
PHASE(0.5)
4bbc55d807264f3f9581ad521455f66e--e0c5c464201240478849837889523770
e0c5c464201240478849837889523770--d36c7923d4fc4acb95715988d5694fb7
e0c5c464201240478849837889523770--bab3e9ef21a44dbeae212b5135e8b02d
Developer documentation
This section contains examples in pure graphviz that can be used to understand roughly what is done
in the actual drawing backend.
import graphviz
font_name = "Sans-Serif"
font_size = "8"
graph_attr = {
"rankdir" : "LR" , # LR = left to right, TB = top to bottom
"nodesep" : "0.1" , # In inches, tells distance between nodes without edges
"compound" : "true" , # Needed to draw properly edges in hamevo when content is hidden
"splines" : "false" , # Needed to draw control gates vertical lines one over the other
} # These are the default values for graphs
node_attr = {
"shape" : "box" , # 'box' for normal nodes, 'point' for control gates or 'plaintext' for starting nodes (the qubit label).
"style" : "rounded" , # Unfortunately we can't specify the radius of the rounded, at least for this version
"fontname" : font_name ,
"fontsize" : font_size ,
"width" : "0.1" , # In inches, it doesn't get tinier than the label font.
"height" : "0.1" # In inches, it doesn't get tinier than the label font.
} # These are the defaults values that can be overridden at node declaration.
default_cluster_attr = {
"fontname" : font_name ,
"fontsize" : font_size ,
"labelloc" : "b" , # location of cluster label. b as bottom, t as top
"style" : "rounded"
} # These are the defaults values that can be overridden at sub graph declaration
hamevo_cluster_attr = {
"label" : "HamEvo(t=10)"
}
hamevo_cluster_attr . update ( default_cluster_attr )
h = graphviz . Graph ( graph_attr = graph_attr , node_attr = node_attr )
h . node ( "Hello World!" )
h
# Define graph
h = graphviz . Graph ( node_attr = node_attr , graph_attr = graph_attr )
# Add start and end nodes
for i in range ( 4 ):
h . node ( f 's { i } ' , shape = "plaintext" , label = f ' { i } ' , group = f " { i } " )
h . node ( f 'e { i } ' , style = 'invis' , group = f " { i } " )
# Add nodes
h . node ( 'X' , group = "0" )
h . node ( 'Y' , group = "1" )
# Add hamevo and its nodes
hamevo = graphviz . Graph ( name = 'cluster_hamevo' , graph_attr = hamevo_cluster_attr )
for i in range ( 4 ):
hamevo . node ( f 'z { i } ' , shape = "box" , style = "invis" , label = f ' { i } ' , group = f " { i } " )
h . subgraph ( hamevo )
# Add rx gates cluster and its nodes
cluster_attr = { "label" : "RX gates" }
cluster_attr . update ( default_cluster_attr )
cluster = graphviz . Graph ( name = "cluster_0" , graph_attr = cluster_attr )
cluster . node ( 'RX(x)' , group = "2" )
cluster . node ( 'RX(0.5)' , group = "3" )
h . subgraph ( cluster )
h . node ( 'cnot0' , label = '' , shape = 'point' , width = '0.1' , group = '0' )
h . node ( 'cnot1' , label = 'X' , group = '1' )
h . node ( 'cnot2' , label = '' , shape = 'point' , width = '0.1' , group = '2' )
h . node ( 'cnot3' , label = '' , shape = 'point' , width = '0.1' , group = '3' )
# Add edges
h . edge ( 's0' , 'X' )
h . edge ( 'X' , 'cnot0' )
h . edge ( 'cnot0' , 'z0' , lhead = 'cluster_hamevo' )
h . edge ( 'z0' , 'e0' , ltail = 'cluster_hamevo' )
h . edge ( 's1' , 'Y' )
h . edge ( 'Y' , 'cnot1' )
h . edge ( 'cnot1' , 'z1' , lhead = 'cluster_hamevo' )
h . edge ( 'z1' , 'e1' , ltail = 'cluster_hamevo' )
h . edge ( 's2' , 'RX(x)' )
h . edge ( 'RX(x)' , 'cnot2' )
h . edge ( 'cnot2' , 'z2' , lhead = 'cluster_hamevo' )
h . edge ( 'z2' , 'e2' , ltail = 'cluster_hamevo' )
h . edge ( 's3' , 'RX(0.5)' )
h . edge ( 'RX(0.5)' , 'cnot3' )
h . edge ( 'cnot3' , 'z3' , lhead = 'cluster_hamevo' )
h . edge ( 'z3' , 'e3' , ltail = 'cluster_hamevo' )
h . edge ( 'cnot1' , 'cnot0' , constraint = 'false' ) # constraint: false is needed to draw vertical edges
h . edge ( 'cnot1' , 'cnot2' , constraint = 'false' ) # constraint: false is needed to draw vertical edges
h . edge ( 'cnot1' , 'cnot3' , constraint = 'false' ) # constraint: false is needed to draw vertical edges
h
Example of cluster of clusters
# Define graph
h = graphviz . Graph ( node_attr = node_attr , graph_attr = graph_attr )
# Define start and end nodes
for i in range ( 4 ):
h . node ( f 's { i } ' , shape = "plaintext" , label = f ' { i } ' , group = f " { i } " )
h . node ( f 'e { i } ' , style = 'invis' , group = f " { i } " )
# Define outer cluster
cluster_attr = { "label" : "Outer cluster" }
cluster_attr . update ( default_cluster_attr )
outer_cluster = graphviz . Graph ( name = "cluster_outer" , graph_attr = cluster_attr )
# Define inner cluster 1 and its nodes
cluster_attr = { "label" : "Inner cluster 1" }
cluster_attr . update ( default_cluster_attr )
inner1_cluster = graphviz . Graph ( name = "cluster_inner1" , graph_attr = cluster_attr )
inner1_cluster . node ( "a0" , group = "0" )
inner1_cluster . node ( "a1" , group = "1" )
outer_cluster . subgraph ( inner1_cluster )
# Define inner cluster 2 and its nodes
cluster_attr = { "label" : "Inner cluster 2" }
cluster_attr . update ( default_cluster_attr )
inner2_cluster = graphviz . Graph ( name = "cluster_inner2" , graph_attr = cluster_attr )
inner2_cluster . node ( "a2" , group = "2" )
inner2_cluster . node ( "a3" , group = "3" )
outer_cluster . subgraph ( inner2_cluster )
# This has to be done here, after inner clusters definitions
h . subgraph ( outer_cluster )
# Define more nodes
for i in range ( 4 ):
h . node ( f "b { i } " , group = f " { i } " )
for i in range ( 4 ):
h . edge ( f 's { i } ' , f 'a { i } ' )
h . edge ( f 'a { i } ' , f 'b { i } ' )
h . edge ( f 'b { i } ' , f 'e { i } ' )
h