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
7cf6f3edd3444e42b07d650abd1a1d43
0
60edd5a1b8e748a9ac59298dcae8cb89
X
7cf6f3edd3444e42b07d650abd1a1d43--60edd5a1b8e748a9ac59298dcae8cb89
61f94b9d6ab74049b00dafa6d8d10a8d
1
ea9e11d3ca5c4043bc03f89e9a6b5d6d
60edd5a1b8e748a9ac59298dcae8cb89--ea9e11d3ca5c4043bc03f89e9a6b5d6d
ac3cf510dded47cab1952151ab7e2746
0b9ce05ba94243fcbcf3688c49524d87
Y
61f94b9d6ab74049b00dafa6d8d10a8d--0b9ce05ba94243fcbcf3688c49524d87
0b9ce05ba94243fcbcf3688c49524d87--ac3cf510dded47cab1952151ab7e2746
from qadence import X , Y , chain
from qadence.draw import display
b = chain ( X ( 0 ), Y ( 0 ))
%3
22ead751f86b4aa782f5c2029d1b6bac
0
6f9e0be05fab43b5ac02894a6381a8e0
X
22ead751f86b4aa782f5c2029d1b6bac--6f9e0be05fab43b5ac02894a6381a8e0
b10993b9025f4b728ef6fcf6c9785a43
Y
6f9e0be05fab43b5ac02894a6381a8e0--b10993b9025f4b728ef6fcf6c9785a43
e4c2cf3f5f88486dbeab34637e7fad1e
b10993b9025f4b728ef6fcf6c9785a43--e4c2cf3f5f88486dbeab34637e7fad1e
from qadence import X , Y , chain
from qadence.draw import display
b = chain ( X ( 0 ), Y ( 1 ))
%3
e4fe3bfd21564ccb91067a7f9e8619df
0
8f52b775d6a64c129a1820c639ba1979
X
e4fe3bfd21564ccb91067a7f9e8619df--8f52b775d6a64c129a1820c639ba1979
dc6ef659b63e4cc0ac2a07961b2eda66
1
a28a9bdecf76464b8d7f70706439f9be
8f52b775d6a64c129a1820c639ba1979--a28a9bdecf76464b8d7f70706439f9be
49e4a9382709452bbb0c8087ba9c4634
a28a9bdecf76464b8d7f70706439f9be--49e4a9382709452bbb0c8087ba9c4634
9f942f4eb74f481f8d6410051cc385f0
6d3d8f2ee4b749208d9cb299cd74a3f9
dc6ef659b63e4cc0ac2a07961b2eda66--6d3d8f2ee4b749208d9cb299cd74a3f9
c2ebca313df54e8a8f2f630077632db1
Y
6d3d8f2ee4b749208d9cb299cd74a3f9--c2ebca313df54e8a8f2f630077632db1
c2ebca313df54e8a8f2f630077632db1--9f942f4eb74f481f8d6410051cc385f0
from qadence import X , Y , add
from qadence.draw import display
b = add ( X ( 0 ), Y ( 1 ), X ( 2 ))
%3
cluster_4a2cf91dfbd7484aa8969a215dfda05f
f5571b6037c24c5eab3c0a0580c3b1b3
0
303a5ff36fcd4ec8bcfdfbf55e7fb0f3
f5571b6037c24c5eab3c0a0580c3b1b3--303a5ff36fcd4ec8bcfdfbf55e7fb0f3
baadd5943af84602b8f8052e85881e9d
1
e7efe518119649bf9fe1ded452d58d81
303a5ff36fcd4ec8bcfdfbf55e7fb0f3--e7efe518119649bf9fe1ded452d58d81
e3f1313e7494445caed0cb4fecdc603b
badbb86bc2a24a3ebb27d439a486070a
AddBlock
baadd5943af84602b8f8052e85881e9d--badbb86bc2a24a3ebb27d439a486070a
c5fe94152a2b4cd1adc8d891567706dd
2
badbb86bc2a24a3ebb27d439a486070a--e3f1313e7494445caed0cb4fecdc603b
295ab81016c148b2b99965e59de8e1c8
502ddbc22097416d861960465bd6fa15
c5fe94152a2b4cd1adc8d891567706dd--502ddbc22097416d861960465bd6fa15
502ddbc22097416d861960465bd6fa15--295ab81016c148b2b99965e59de8e1c8
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_987e739ae170494fa80743c4c8096b65
cluster_4c1ee9e1b2fe48a18b667e5664700446
rx
b4a2be5d5d964f648088c9cd8adcd629
0
fe6ce7379dce421fa807378968e3d988
X
b4a2be5d5d964f648088c9cd8adcd629--fe6ce7379dce421fa807378968e3d988
eef2acef7fe541099b0e88a04a17b7de
1
32025657dfc6434a88374afedea40ec9
fe6ce7379dce421fa807378968e3d988--32025657dfc6434a88374afedea40ec9
6df5fa9e58e947b3b252af4c04561667
32025657dfc6434a88374afedea40ec9--6df5fa9e58e947b3b252af4c04561667
3a028e8bc24b476ba5782b1425b10b1e
6df5fa9e58e947b3b252af4c04561667--3a028e8bc24b476ba5782b1425b10b1e
d86238cb09724c0381736e18015f6dd7
57989b05c782418081fdea4717d5e0de
Y
eef2acef7fe541099b0e88a04a17b7de--57989b05c782418081fdea4717d5e0de
77767975b1d744e88e984a44e6b43483
2
96011218185f4ca9a2163bf5e8c26eb9
57989b05c782418081fdea4717d5e0de--96011218185f4ca9a2163bf5e8c26eb9
5ee3d2aa8c574095adbae64b1d1a1ee0
HamEvo
96011218185f4ca9a2163bf5e8c26eb9--5ee3d2aa8c574095adbae64b1d1a1ee0
5ee3d2aa8c574095adbae64b1d1a1ee0--d86238cb09724c0381736e18015f6dd7
27d10c4b424d49859c06813145ea5c45
b0f974afe7544e3eb3b734f9bbf3340d
RX(x)
77767975b1d744e88e984a44e6b43483--b0f974afe7544e3eb3b734f9bbf3340d
dbb97f1a83be44b09986508940ac7700
3
512a5da78a73424f9ed31bf88c48ab14
b0f974afe7544e3eb3b734f9bbf3340d--512a5da78a73424f9ed31bf88c48ab14
a265ea96626c4e97b15cf86c01ac06ee
t = 10
512a5da78a73424f9ed31bf88c48ab14--a265ea96626c4e97b15cf86c01ac06ee
a265ea96626c4e97b15cf86c01ac06ee--27d10c4b424d49859c06813145ea5c45
330fd991fb21405a862ed6d6d4f9547c
7baf6fb1f02c4eb2b06d90ceb4ec9a28
RX(0.5)
dbb97f1a83be44b09986508940ac7700--7baf6fb1f02c4eb2b06d90ceb4ec9a28
399705d27b2749dd986ca3ec210093b4
X
7baf6fb1f02c4eb2b06d90ceb4ec9a28--399705d27b2749dd986ca3ec210093b4
399705d27b2749dd986ca3ec210093b4--512a5da78a73424f9ed31bf88c48ab14
a756a833ceeb47a3a93692f3d2637f49
399705d27b2749dd986ca3ec210093b4--a756a833ceeb47a3a93692f3d2637f49
a756a833ceeb47a3a93692f3d2637f49--330fd991fb21405a862ed6d6d4f9547c
from qadence import feature_map , hea , chain
block = chain ( feature_map ( 4 , reupload_scaling = "Tower" ), hea ( 4 , 2 ))
%3
cluster_3a674d9f11ef49e8b2cc0ade8f43b76b
HEA
cluster_835852c5c3d047f9a9603e9a567e660b
Tower Fourier FM
d6c53826b0184cc2839418b5556e8250
0
828398ca535a4ddd833ce41ec8172788
RX(1.0*phi)
d6c53826b0184cc2839418b5556e8250--828398ca535a4ddd833ce41ec8172788
2bb7ebc7359c4f99b641784bdefaeec6
1
3db4365c1d354acc90d7871a9dc049be
RX(theta₀)
828398ca535a4ddd833ce41ec8172788--3db4365c1d354acc90d7871a9dc049be
a05aa2029fb446e9b3c81a0cd19a08b2
RY(theta₄)
3db4365c1d354acc90d7871a9dc049be--a05aa2029fb446e9b3c81a0cd19a08b2
e19d87cb97f841498be73b4163149b27
RX(theta₈)
a05aa2029fb446e9b3c81a0cd19a08b2--e19d87cb97f841498be73b4163149b27
5cf77012128a41f59bbf6a2fd16d2f6d
e19d87cb97f841498be73b4163149b27--5cf77012128a41f59bbf6a2fd16d2f6d
6bec0e146b284dce8c467ee5f1513282
5cf77012128a41f59bbf6a2fd16d2f6d--6bec0e146b284dce8c467ee5f1513282
30d8011d1695445b9ac1d3e9586a5a65
RX(theta₁₂)
6bec0e146b284dce8c467ee5f1513282--30d8011d1695445b9ac1d3e9586a5a65
83ef2ee565684060960bb68738b7f090
RY(theta₁₆)
30d8011d1695445b9ac1d3e9586a5a65--83ef2ee565684060960bb68738b7f090
3052890a73064db8ba230f57f7d1b3e5
RX(theta₂₀)
83ef2ee565684060960bb68738b7f090--3052890a73064db8ba230f57f7d1b3e5
9399d58f763c4e2dbda8ef408b2266cc
3052890a73064db8ba230f57f7d1b3e5--9399d58f763c4e2dbda8ef408b2266cc
581ab75e5b9843768011cf62992f3d3c
9399d58f763c4e2dbda8ef408b2266cc--581ab75e5b9843768011cf62992f3d3c
4f489c4506be48cd940cc8290b3c6ed8
581ab75e5b9843768011cf62992f3d3c--4f489c4506be48cd940cc8290b3c6ed8
bc78ff8e68a94bafbac8d30d9606af24
1f894352c05646c79ceaa5969213b1c7
RX(2.0*phi)
2bb7ebc7359c4f99b641784bdefaeec6--1f894352c05646c79ceaa5969213b1c7
cf4b07e69f464a2c8f4a98cbbb9918ea
2
5a504974c45a448fa71043e71ee7fc67
RX(theta₁)
1f894352c05646c79ceaa5969213b1c7--5a504974c45a448fa71043e71ee7fc67
be26bc901c884c6b9758468817d57277
RY(theta₅)
5a504974c45a448fa71043e71ee7fc67--be26bc901c884c6b9758468817d57277
bfe4c17bd00f48d1b8cbd6b2a9abfb5d
RX(theta₉)
be26bc901c884c6b9758468817d57277--bfe4c17bd00f48d1b8cbd6b2a9abfb5d
5c11d40f02bc4e3d8552e5a5738da55e
X
bfe4c17bd00f48d1b8cbd6b2a9abfb5d--5c11d40f02bc4e3d8552e5a5738da55e
5c11d40f02bc4e3d8552e5a5738da55e--5cf77012128a41f59bbf6a2fd16d2f6d
f358944f1ddd4f7d9f7397cdbf14e7ca
5c11d40f02bc4e3d8552e5a5738da55e--f358944f1ddd4f7d9f7397cdbf14e7ca
7de3e542553f40c697105e4c42a00143
RX(theta₁₃)
f358944f1ddd4f7d9f7397cdbf14e7ca--7de3e542553f40c697105e4c42a00143
2c4121c0c29b472898d7a79f656b9499
RY(theta₁₇)
7de3e542553f40c697105e4c42a00143--2c4121c0c29b472898d7a79f656b9499
e851fd05027f4a8b889a151cb0d7e1a4
RX(theta₂₁)
2c4121c0c29b472898d7a79f656b9499--e851fd05027f4a8b889a151cb0d7e1a4
f77f15e5f5ca4cdd9786a012178f7779
X
e851fd05027f4a8b889a151cb0d7e1a4--f77f15e5f5ca4cdd9786a012178f7779
f77f15e5f5ca4cdd9786a012178f7779--9399d58f763c4e2dbda8ef408b2266cc
febae5316c164998aad442f2b86127a0
f77f15e5f5ca4cdd9786a012178f7779--febae5316c164998aad442f2b86127a0
febae5316c164998aad442f2b86127a0--bc78ff8e68a94bafbac8d30d9606af24
640a4d9fc62e4204bc3a2885c0007c7d
1c3643b15ed74a5cb3d3ce3d5a761cf0
RX(3.0*phi)
cf4b07e69f464a2c8f4a98cbbb9918ea--1c3643b15ed74a5cb3d3ce3d5a761cf0
b042f76fd7964fd68467860d8b365ba2
3
cd9156cb29514c19bc752f8741d4ee7a
RX(theta₂)
1c3643b15ed74a5cb3d3ce3d5a761cf0--cd9156cb29514c19bc752f8741d4ee7a
fbef477995a34eb392575e7336dd4ce0
RY(theta₆)
cd9156cb29514c19bc752f8741d4ee7a--fbef477995a34eb392575e7336dd4ce0
c566462756704dc5b7d3bfe85f8a55c0
RX(theta₁₀)
fbef477995a34eb392575e7336dd4ce0--c566462756704dc5b7d3bfe85f8a55c0
09cc7721e9844d95a74cfa3254e8166b
c566462756704dc5b7d3bfe85f8a55c0--09cc7721e9844d95a74cfa3254e8166b
4f702c9116f34b43a769afe8f955c5f7
X
09cc7721e9844d95a74cfa3254e8166b--4f702c9116f34b43a769afe8f955c5f7
4f702c9116f34b43a769afe8f955c5f7--f358944f1ddd4f7d9f7397cdbf14e7ca
0333cdcd490e4cf3a55ff4c9c7334656
RX(theta₁₄)
4f702c9116f34b43a769afe8f955c5f7--0333cdcd490e4cf3a55ff4c9c7334656
5301090211f046569e3249afffc4d950
RY(theta₁₈)
0333cdcd490e4cf3a55ff4c9c7334656--5301090211f046569e3249afffc4d950
f94a98c74b524cf49bcbaebbafc6847c
RX(theta₂₂)
5301090211f046569e3249afffc4d950--f94a98c74b524cf49bcbaebbafc6847c
296f180d7c934eee8f0c3172dcb15f5d
f94a98c74b524cf49bcbaebbafc6847c--296f180d7c934eee8f0c3172dcb15f5d
0af25588b0a2432dbec9bbccd3d13250
X
296f180d7c934eee8f0c3172dcb15f5d--0af25588b0a2432dbec9bbccd3d13250
0af25588b0a2432dbec9bbccd3d13250--febae5316c164998aad442f2b86127a0
0af25588b0a2432dbec9bbccd3d13250--640a4d9fc62e4204bc3a2885c0007c7d
bd3a0a072f9e45e5bb53399c4cadb363
142273fe20fb40fab34c5bb96b162410
RX(4.0*phi)
b042f76fd7964fd68467860d8b365ba2--142273fe20fb40fab34c5bb96b162410
ed5bef7b746845e19e6f9dd1ea26f811
RX(theta₃)
142273fe20fb40fab34c5bb96b162410--ed5bef7b746845e19e6f9dd1ea26f811
8e7531e4bea04edc83fbc8ef7d85340e
RY(theta₇)
ed5bef7b746845e19e6f9dd1ea26f811--8e7531e4bea04edc83fbc8ef7d85340e
fec02b7d9a45487a8fdad9ca81c479f8
RX(theta₁₁)
8e7531e4bea04edc83fbc8ef7d85340e--fec02b7d9a45487a8fdad9ca81c479f8
8758318be9224e0fb4b3a4d181c6a144
X
fec02b7d9a45487a8fdad9ca81c479f8--8758318be9224e0fb4b3a4d181c6a144
8758318be9224e0fb4b3a4d181c6a144--09cc7721e9844d95a74cfa3254e8166b
1cf921d49178426fa8b4be17fc3ada2e
8758318be9224e0fb4b3a4d181c6a144--1cf921d49178426fa8b4be17fc3ada2e
9f95d4bca79f4088998d5ea8c05fae3a
RX(theta₁₅)
1cf921d49178426fa8b4be17fc3ada2e--9f95d4bca79f4088998d5ea8c05fae3a
9e1a9614c3714c67933205f67fee2aaa
RY(theta₁₉)
9f95d4bca79f4088998d5ea8c05fae3a--9e1a9614c3714c67933205f67fee2aaa
c888d420807e421f9ef4d57b155fb53e
RX(theta₂₃)
9e1a9614c3714c67933205f67fee2aaa--c888d420807e421f9ef4d57b155fb53e
1a8cf8d20136462da52668eeb36ca062
X
c888d420807e421f9ef4d57b155fb53e--1a8cf8d20136462da52668eeb36ca062
1a8cf8d20136462da52668eeb36ca062--296f180d7c934eee8f0c3172dcb15f5d
4c28ba78d06640e0984abe38eb4525bc
1a8cf8d20136462da52668eeb36ca062--4c28ba78d06640e0984abe38eb4525bc
4c28ba78d06640e0984abe38eb4525bc--bd3a0a072f9e45e5bb53399c4cadb363
from qadence import QuantumModel , QuantumCircuit , total_magnetization , hea
model = QuantumModel ( QuantumCircuit ( 3 , hea ( 3 , 2 )), total_magnetization ( 3 ))
%3
cluster_13ade30961e04173a6188c29bc284041
Obs.
cluster_26c289494c7b4a84b2175b81634e6b93
cluster_0c5d3e268bf543da81599a43c4d0c240
HEA
1b0f4e41d47b4df29157caec70fba855
0
3a917a75b83a46528560db6505a6ee8e
RX(theta₀)
1b0f4e41d47b4df29157caec70fba855--3a917a75b83a46528560db6505a6ee8e
262d1bfed566476f8bfc237021084334
1
e28c37607d684f46a6a4269452b1d5f5
RY(theta₃)
3a917a75b83a46528560db6505a6ee8e--e28c37607d684f46a6a4269452b1d5f5
547d4829789b4c6993ee58b7eb29ba77
RX(theta₆)
e28c37607d684f46a6a4269452b1d5f5--547d4829789b4c6993ee58b7eb29ba77
b931e1cafd70487c95b51e9569b89c3b
547d4829789b4c6993ee58b7eb29ba77--b931e1cafd70487c95b51e9569b89c3b
b0fa157e8d4249ebac76c2158892d00f
b931e1cafd70487c95b51e9569b89c3b--b0fa157e8d4249ebac76c2158892d00f
a522d07fdeb54ecea435e64df17637cf
RX(theta₉)
b0fa157e8d4249ebac76c2158892d00f--a522d07fdeb54ecea435e64df17637cf
1bc32f591e5d47d89303f2f598b9ff48
RY(theta₁₂)
a522d07fdeb54ecea435e64df17637cf--1bc32f591e5d47d89303f2f598b9ff48
0c9a7c4805f14583bcc1c6386a8f5262
RX(theta₁₅)
1bc32f591e5d47d89303f2f598b9ff48--0c9a7c4805f14583bcc1c6386a8f5262
20e5050716db4bc99f38921c4f8a7b8e
0c9a7c4805f14583bcc1c6386a8f5262--20e5050716db4bc99f38921c4f8a7b8e
088bdc8fc5c54b81a70e415e104898ef
20e5050716db4bc99f38921c4f8a7b8e--088bdc8fc5c54b81a70e415e104898ef
a659455add6f4e35b46f8fbb8fe432fd
088bdc8fc5c54b81a70e415e104898ef--a659455add6f4e35b46f8fbb8fe432fd
f00ddb43b03e4a368a3fad12a9993f45
a659455add6f4e35b46f8fbb8fe432fd--f00ddb43b03e4a368a3fad12a9993f45
fe150f154251462eb2865a72391a4ce6
e27d6874cf704f659f65f83c155aef7b
RX(theta₁)
262d1bfed566476f8bfc237021084334--e27d6874cf704f659f65f83c155aef7b
d90e9d2cc7a94e0a8ecc86469a420bfa
2
60f270a1aa4344c2aa136eb9c1f850c3
RY(theta₄)
e27d6874cf704f659f65f83c155aef7b--60f270a1aa4344c2aa136eb9c1f850c3
3abf9ad7f8d7482fa8625b03c4e1a90e
RX(theta₇)
60f270a1aa4344c2aa136eb9c1f850c3--3abf9ad7f8d7482fa8625b03c4e1a90e
1ae10be6d1be4743917449149029c651
X
3abf9ad7f8d7482fa8625b03c4e1a90e--1ae10be6d1be4743917449149029c651
1ae10be6d1be4743917449149029c651--b931e1cafd70487c95b51e9569b89c3b
0d02a4e78ac64e47aaa0c28627e9ca16
1ae10be6d1be4743917449149029c651--0d02a4e78ac64e47aaa0c28627e9ca16
6f59c61d80834f6a98f034c6b48e6b74
RX(theta₁₀)
0d02a4e78ac64e47aaa0c28627e9ca16--6f59c61d80834f6a98f034c6b48e6b74
4ec5725163e047ada9e6d8ed9b311fa0
RY(theta₁₃)
6f59c61d80834f6a98f034c6b48e6b74--4ec5725163e047ada9e6d8ed9b311fa0
329a69de317f4f6cb7c7afe8c5338a78
RX(theta₁₆)
4ec5725163e047ada9e6d8ed9b311fa0--329a69de317f4f6cb7c7afe8c5338a78
5248fb0b434448519f5276779ac32247
X
329a69de317f4f6cb7c7afe8c5338a78--5248fb0b434448519f5276779ac32247
5248fb0b434448519f5276779ac32247--20e5050716db4bc99f38921c4f8a7b8e
6545c2df4c8a44d282233af8690cb6b4
5248fb0b434448519f5276779ac32247--6545c2df4c8a44d282233af8690cb6b4
2b8f8e9c6103439ab5e5024c98d846bc
AddBlock
6545c2df4c8a44d282233af8690cb6b4--2b8f8e9c6103439ab5e5024c98d846bc
2b8f8e9c6103439ab5e5024c98d846bc--fe150f154251462eb2865a72391a4ce6
18b68e4aa1d047cba05b3d7a1e77d72c
3a598b0573794e3baad6d6cecf6c77b6
RX(theta₂)
d90e9d2cc7a94e0a8ecc86469a420bfa--3a598b0573794e3baad6d6cecf6c77b6
6640ad19635e47fbaf9415b9d754e68f
RY(theta₅)
3a598b0573794e3baad6d6cecf6c77b6--6640ad19635e47fbaf9415b9d754e68f
e8aee3beac4441e282644ff48e9a7810
RX(theta₈)
6640ad19635e47fbaf9415b9d754e68f--e8aee3beac4441e282644ff48e9a7810
4819fa757cc04846a4138780906da281
e8aee3beac4441e282644ff48e9a7810--4819fa757cc04846a4138780906da281
c0241728b2574b02a2fb242d17968e69
X
4819fa757cc04846a4138780906da281--c0241728b2574b02a2fb242d17968e69
c0241728b2574b02a2fb242d17968e69--0d02a4e78ac64e47aaa0c28627e9ca16
5332dfd71cb34fbf852ed6f2057d7bad
RX(theta₁₁)
c0241728b2574b02a2fb242d17968e69--5332dfd71cb34fbf852ed6f2057d7bad
07ce2d87a8d54973a52a92a2260d787f
RY(theta₁₄)
5332dfd71cb34fbf852ed6f2057d7bad--07ce2d87a8d54973a52a92a2260d787f
a0a0a17467c34c92ae1b19a669f01023
RX(theta₁₇)
07ce2d87a8d54973a52a92a2260d787f--a0a0a17467c34c92ae1b19a669f01023
e42c55525abf494a813ad9ab67e61b31
a0a0a17467c34c92ae1b19a669f01023--e42c55525abf494a813ad9ab67e61b31
b869a79f470642628435d192dabb2ba5
X
e42c55525abf494a813ad9ab67e61b31--b869a79f470642628435d192dabb2ba5
b869a79f470642628435d192dabb2ba5--6545c2df4c8a44d282233af8690cb6b4
b051373d2d114c18870c3580fa2e93db
b869a79f470642628435d192dabb2ba5--b051373d2d114c18870c3580fa2e93db
b051373d2d114c18870c3580fa2e93db--18b68e4aa1d047cba05b3d7a1e77d72c
from qadence import *
b = chain ( SWAP ( 0 , 1 ), SWAP ( 0 , 3 ))
%3
321d17bd65494bf8ad3be09cc822321f
0
fb67eae9e1344f7983f202bb518e5954
321d17bd65494bf8ad3be09cc822321f--fb67eae9e1344f7983f202bb518e5954
34d42452ef69421a82f9d2b43973f80f
1
31e25502a34b4c32af4e61c773eb04e8
2ef6a11bb7a44592aa6e3a5934f4722d
fb67eae9e1344f7983f202bb518e5954--2ef6a11bb7a44592aa6e3a5934f4722d
264177137fb047af8d2a594cd06665c0
31e25502a34b4c32af4e61c773eb04e8--264177137fb047af8d2a594cd06665c0
d8a8c6257b9d469e90dd3565bdcfb78f
04833b2387084b03814ecffaa4bb1174
264177137fb047af8d2a594cd06665c0--04833b2387084b03814ecffaa4bb1174
84cce315a8d94bfdb2e2b628df0c419c
d8a8c6257b9d469e90dd3565bdcfb78f--84cce315a8d94bfdb2e2b628df0c419c
45d16eded7b349b08d9e0f84fab7afbe
e593208da3e949b18aa74f06a27d2b85
34d42452ef69421a82f9d2b43973f80f--e593208da3e949b18aa74f06a27d2b85
37d1978bb0ed4d89909226673dd6dc46
2
e593208da3e949b18aa74f06a27d2b85--31e25502a34b4c32af4e61c773eb04e8
ef84191ca3464a96a53257569c40ab4f
2ef6a11bb7a44592aa6e3a5934f4722d--ef84191ca3464a96a53257569c40ab4f
af5405c73f7f40f88b85acb52764c0a0
ef84191ca3464a96a53257569c40ab4f--af5405c73f7f40f88b85acb52764c0a0
af5405c73f7f40f88b85acb52764c0a0--45d16eded7b349b08d9e0f84fab7afbe
48f6f428448b4b14afa659bcb220111d
4deb174188444f8986711450a5c3604e
37d1978bb0ed4d89909226673dd6dc46--4deb174188444f8986711450a5c3604e
a9ff6c6511fe4443bb93c5beefea3783
3
461d284db12f4870862c7cd5d827f7c3
4deb174188444f8986711450a5c3604e--461d284db12f4870862c7cd5d827f7c3
2a748c512eb44e86b64367e526d40887
461d284db12f4870862c7cd5d827f7c3--2a748c512eb44e86b64367e526d40887
8ad7611f6998457081eccfda13be221d
2a748c512eb44e86b64367e526d40887--8ad7611f6998457081eccfda13be221d
8ad7611f6998457081eccfda13be221d--48f6f428448b4b14afa659bcb220111d
912b60bdabb94b618a742ae9d76b36e2
95950b70eb404507ac7c1065756ed3c6
a9ff6c6511fe4443bb93c5beefea3783--95950b70eb404507ac7c1065756ed3c6
97fb9b90c73a4f6387908296f9bd2bc9
95950b70eb404507ac7c1065756ed3c6--97fb9b90c73a4f6387908296f9bd2bc9
ad7ff36c75bc4d958d9ebe50aeb980ca
97fb9b90c73a4f6387908296f9bd2bc9--ad7ff36c75bc4d958d9ebe50aeb980ca
ad7ff36c75bc4d958d9ebe50aeb980ca--d8a8c6257b9d469e90dd3565bdcfb78f
04833b2387084b03814ecffaa4bb1174--912b60bdabb94b618a742ae9d76b36e2
from qadence import *
b = chain ( CPHASE ( 0 , 1 , 0.5 ), CPHASE ( 0 , 2 , 0.5 ), CPHASE ( 0 , 3 , 0.5 ))
%3
64b9163cfd574a289399a0c3a1daa791
0
a4459a638ef64acabcf4ddc4b311829e
64b9163cfd574a289399a0c3a1daa791--a4459a638ef64acabcf4ddc4b311829e
53c3808a56cb47d898574c8936d4f720
1
9f694ca423e3484dbacf11e156dfd406
a4459a638ef64acabcf4ddc4b311829e--9f694ca423e3484dbacf11e156dfd406
1b98f2ab86a24f8d89a0ca5db65b94f2
9f694ca423e3484dbacf11e156dfd406--1b98f2ab86a24f8d89a0ca5db65b94f2
4e32f66892d6421ba5d8cfadfff5d4ad
1b98f2ab86a24f8d89a0ca5db65b94f2--4e32f66892d6421ba5d8cfadfff5d4ad
49eb50f1faf04acb8466e9ae0699a71f
fcc968676116429e89626c80f14a16a3
PHASE(0.5)
53c3808a56cb47d898574c8936d4f720--fcc968676116429e89626c80f14a16a3
ec11ae354089446c9aef0cb774be9fc3
2
fcc968676116429e89626c80f14a16a3--a4459a638ef64acabcf4ddc4b311829e
8662a0be1b644302b643b53e22dae8a1
fcc968676116429e89626c80f14a16a3--8662a0be1b644302b643b53e22dae8a1
ab23f449e1694bd7a3dd78158f9e1129
8662a0be1b644302b643b53e22dae8a1--ab23f449e1694bd7a3dd78158f9e1129
ab23f449e1694bd7a3dd78158f9e1129--49eb50f1faf04acb8466e9ae0699a71f
b3254e91693647e0a26c5888a9c8b21b
c70827ef3d934983b83b85fd261d5926
ec11ae354089446c9aef0cb774be9fc3--c70827ef3d934983b83b85fd261d5926
3fbeae84e23748d2bc091c4689c08671
3
a70ecc8c0fce4c2387ada2c54fe5575f
PHASE(0.5)
c70827ef3d934983b83b85fd261d5926--a70ecc8c0fce4c2387ada2c54fe5575f
a70ecc8c0fce4c2387ada2c54fe5575f--9f694ca423e3484dbacf11e156dfd406
9c078de096ae4f14950d50ffdd418bc3
a70ecc8c0fce4c2387ada2c54fe5575f--9c078de096ae4f14950d50ffdd418bc3
9c078de096ae4f14950d50ffdd418bc3--b3254e91693647e0a26c5888a9c8b21b
b6c7cb92252d464c84625f5918705a2c
65d8d00affb44edebe3be85d22e998cd
3fbeae84e23748d2bc091c4689c08671--65d8d00affb44edebe3be85d22e998cd
c35d4e58671c40e58c64ad466a2c77ef
65d8d00affb44edebe3be85d22e998cd--c35d4e58671c40e58c64ad466a2c77ef
9ee41338483d4c7fa04d707a263286cc
PHASE(0.5)
c35d4e58671c40e58c64ad466a2c77ef--9ee41338483d4c7fa04d707a263286cc
9ee41338483d4c7fa04d707a263286cc--1b98f2ab86a24f8d89a0ca5db65b94f2
9ee41338483d4c7fa04d707a263286cc--b6c7cb92252d464c84625f5918705a2c
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