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
d66389610169455e90a2bccb0306e422
0
e8386bdd26ff41caa9291f25d1d608b1
X
d66389610169455e90a2bccb0306e422--e8386bdd26ff41caa9291f25d1d608b1
287f87305c8344229d76afc6aea3610d
1
c927a3dedb2b40c2ae2a08a15ef767e7
e8386bdd26ff41caa9291f25d1d608b1--c927a3dedb2b40c2ae2a08a15ef767e7
40fd501fa2a342389a46404c3ba92e81
59d6d000f15644e8b084a7a6f5d9acf7
Y
287f87305c8344229d76afc6aea3610d--59d6d000f15644e8b084a7a6f5d9acf7
59d6d000f15644e8b084a7a6f5d9acf7--40fd501fa2a342389a46404c3ba92e81
from qadence import X , Y , chain
from qadence.draw import display
b = chain ( X ( 0 ), Y ( 0 ))
%3
d717d83f3d624c229ac3049806333eb8
0
775e38b582c44a8d92ec831be3ab7af5
X
d717d83f3d624c229ac3049806333eb8--775e38b582c44a8d92ec831be3ab7af5
10c07a57b39641e1a4548949bb5428da
Y
775e38b582c44a8d92ec831be3ab7af5--10c07a57b39641e1a4548949bb5428da
5fa429581bec4b7ba07e7f7e0f20d933
10c07a57b39641e1a4548949bb5428da--5fa429581bec4b7ba07e7f7e0f20d933
from qadence import X , Y , chain
from qadence.draw import display
b = chain ( X ( 0 ), Y ( 1 ))
%3
ed88e7a3b565464485b336dde897cd4e
0
ddc4e78b7c4e43e2bb1b02e1f1da5f6f
X
ed88e7a3b565464485b336dde897cd4e--ddc4e78b7c4e43e2bb1b02e1f1da5f6f
4391fdcf48b5405789a3922acace3f8f
1
9493a614b4b94ff692a1c77c50b4c88f
ddc4e78b7c4e43e2bb1b02e1f1da5f6f--9493a614b4b94ff692a1c77c50b4c88f
fef25cc4602c4139ad423532a61ea2e3
9493a614b4b94ff692a1c77c50b4c88f--fef25cc4602c4139ad423532a61ea2e3
0e1d584286294c718582835a7fd7e311
0c7a76de5abe4b6e997b8233ba5f715d
4391fdcf48b5405789a3922acace3f8f--0c7a76de5abe4b6e997b8233ba5f715d
3ad48618c1214fdd9082c0d893574222
Y
0c7a76de5abe4b6e997b8233ba5f715d--3ad48618c1214fdd9082c0d893574222
3ad48618c1214fdd9082c0d893574222--0e1d584286294c718582835a7fd7e311
from qadence import X , Y , add
from qadence.draw import display
b = add ( X ( 0 ), Y ( 1 ), X ( 2 ))
%3
cluster_d84ad78bb0ba45c6904a5ac7bb21e90d
8f18ea3dee92470eb5dcf9bbe1fe987e
0
6fc689545dba4c49b3c4fd5c051471d2
8f18ea3dee92470eb5dcf9bbe1fe987e--6fc689545dba4c49b3c4fd5c051471d2
7d954b523a3b46e0b23514088f6007ba
1
f3a6d9d4323e412487952e1f8eaa12c9
6fc689545dba4c49b3c4fd5c051471d2--f3a6d9d4323e412487952e1f8eaa12c9
842f4ab03eed4342a93f3480b41f77af
9aeafc8818424e73bd38b4c2e445d77b
AddBlock
7d954b523a3b46e0b23514088f6007ba--9aeafc8818424e73bd38b4c2e445d77b
75676125fc984a1ba585bbe809a114f3
2
9aeafc8818424e73bd38b4c2e445d77b--842f4ab03eed4342a93f3480b41f77af
4b3b32b8ebe8446f8733376703ff053b
e33e6d75c6694f71ba347883616dba60
75676125fc984a1ba585bbe809a114f3--e33e6d75c6694f71ba347883616dba60
e33e6d75c6694f71ba347883616dba60--4b3b32b8ebe8446f8733376703ff053b
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_9567ffd434444d9dbb3b9ff3b8a91b40
cluster_e47f83a192ae443e8bedef0210eb955c
rx
d9124056732c4718b4ccb9863b16db43
0
41e0214593f54408a5554185ac16acfa
X
d9124056732c4718b4ccb9863b16db43--41e0214593f54408a5554185ac16acfa
2885f4833fb9498e8b7fa7f70436d1cd
1
c82c4025deb649648f68e2dbb546e722
41e0214593f54408a5554185ac16acfa--c82c4025deb649648f68e2dbb546e722
1e2730828dd3412bb832a4f7cfe32b2a
c82c4025deb649648f68e2dbb546e722--1e2730828dd3412bb832a4f7cfe32b2a
daf3c5933fdf47a0b05928522bd8b376
1e2730828dd3412bb832a4f7cfe32b2a--daf3c5933fdf47a0b05928522bd8b376
629c4e250b2d4f328330d7693c97e7a1
bb9d379d54554a2fac0e80f7ec9611ce
Y
2885f4833fb9498e8b7fa7f70436d1cd--bb9d379d54554a2fac0e80f7ec9611ce
4d77aa3f4a6640878f8739845efdda6a
2
c0e869f756634b4aa4475dfb063ca0c5
bb9d379d54554a2fac0e80f7ec9611ce--c0e869f756634b4aa4475dfb063ca0c5
15d014206c9e484d8b6cd56d071340d5
HamEvo
c0e869f756634b4aa4475dfb063ca0c5--15d014206c9e484d8b6cd56d071340d5
15d014206c9e484d8b6cd56d071340d5--629c4e250b2d4f328330d7693c97e7a1
5561e8fa78ed462c877c6b95c783b9bb
eda7de2b01ab4a5c9172e34f82d82922
RX(x)
4d77aa3f4a6640878f8739845efdda6a--eda7de2b01ab4a5c9172e34f82d82922
d09c0849a02a4540803e506656a6fd55
3
c700b0a9cf3e4e0794f569378bcd8cb5
eda7de2b01ab4a5c9172e34f82d82922--c700b0a9cf3e4e0794f569378bcd8cb5
33c7c50431724c6e9e25adcb6f4db5dd
t = 10
c700b0a9cf3e4e0794f569378bcd8cb5--33c7c50431724c6e9e25adcb6f4db5dd
33c7c50431724c6e9e25adcb6f4db5dd--5561e8fa78ed462c877c6b95c783b9bb
e6eb498f01f24ee9887aee49b42fe61a
d7b22840fb65442d9f97322ca0b4ae3b
RX(0.5)
d09c0849a02a4540803e506656a6fd55--d7b22840fb65442d9f97322ca0b4ae3b
247ace5d1b3d456b9bcd3bcf4e2da07a
X
d7b22840fb65442d9f97322ca0b4ae3b--247ace5d1b3d456b9bcd3bcf4e2da07a
247ace5d1b3d456b9bcd3bcf4e2da07a--c700b0a9cf3e4e0794f569378bcd8cb5
1e532f10473240ef94943560c58b5fdc
247ace5d1b3d456b9bcd3bcf4e2da07a--1e532f10473240ef94943560c58b5fdc
1e532f10473240ef94943560c58b5fdc--e6eb498f01f24ee9887aee49b42fe61a
from qadence import feature_map , hea , chain
block = chain ( feature_map ( 4 , reupload_scaling = "Tower" ), hea ( 4 , 2 ))
%3
cluster_6a29ff9f4e7a4facbfa12273fab1e0d9
HEA
cluster_5ccc2de578a54bff860066399f58788e
Tower Fourier FM
84d500b827fb48e79ebc108617815708
0
e4581187cfa94c14b46725cdc003b67e
RX(1.0*phi)
84d500b827fb48e79ebc108617815708--e4581187cfa94c14b46725cdc003b67e
dc391a5fe5d34523baf3abd20b1151cc
1
5a9604cce24c4e85b6998362bb284922
RX(theta₀)
e4581187cfa94c14b46725cdc003b67e--5a9604cce24c4e85b6998362bb284922
d4e2218217fe4941a844cf0913429286
RY(theta₄)
5a9604cce24c4e85b6998362bb284922--d4e2218217fe4941a844cf0913429286
44e4404328654239bf7d627213ebe9c1
RX(theta₈)
d4e2218217fe4941a844cf0913429286--44e4404328654239bf7d627213ebe9c1
55afd4773a08409aa6d51d93658d6c17
44e4404328654239bf7d627213ebe9c1--55afd4773a08409aa6d51d93658d6c17
abf1b33550bc4c5594fa55db9300311e
55afd4773a08409aa6d51d93658d6c17--abf1b33550bc4c5594fa55db9300311e
f7a65bcceb7d45be841aa05f208fe10b
RX(theta₁₂)
abf1b33550bc4c5594fa55db9300311e--f7a65bcceb7d45be841aa05f208fe10b
c6fbb6de30744f1a92cccf8ba6c51c63
RY(theta₁₆)
f7a65bcceb7d45be841aa05f208fe10b--c6fbb6de30744f1a92cccf8ba6c51c63
8e98056ed4a14d8982dc9680ee79fbbc
RX(theta₂₀)
c6fbb6de30744f1a92cccf8ba6c51c63--8e98056ed4a14d8982dc9680ee79fbbc
3fddf2dd054c41c294155c93bda9a17e
8e98056ed4a14d8982dc9680ee79fbbc--3fddf2dd054c41c294155c93bda9a17e
8407d22db15a4afd8da8e5ec2cc732ef
3fddf2dd054c41c294155c93bda9a17e--8407d22db15a4afd8da8e5ec2cc732ef
8115fc211ab54c76bcc216fe3b34b9c2
8407d22db15a4afd8da8e5ec2cc732ef--8115fc211ab54c76bcc216fe3b34b9c2
28320fd1ac66464091644e77a0bc054a
c466ac4bc1ec4a77aee15b7df6618de2
RX(2.0*phi)
dc391a5fe5d34523baf3abd20b1151cc--c466ac4bc1ec4a77aee15b7df6618de2
b356827202e54078af290d7807263fa8
2
d422441eae9a4dbba56e74dd55f88ac0
RX(theta₁)
c466ac4bc1ec4a77aee15b7df6618de2--d422441eae9a4dbba56e74dd55f88ac0
5cc5cc39337a4f40a053cb36f1852e82
RY(theta₅)
d422441eae9a4dbba56e74dd55f88ac0--5cc5cc39337a4f40a053cb36f1852e82
b49b975d77bb421fa63a82da73e9e185
RX(theta₉)
5cc5cc39337a4f40a053cb36f1852e82--b49b975d77bb421fa63a82da73e9e185
82052471f3804bbaa26a87767bc37a91
X
b49b975d77bb421fa63a82da73e9e185--82052471f3804bbaa26a87767bc37a91
82052471f3804bbaa26a87767bc37a91--55afd4773a08409aa6d51d93658d6c17
2d371f9e703041ca8b89fafd1f9ea603
82052471f3804bbaa26a87767bc37a91--2d371f9e703041ca8b89fafd1f9ea603
bfbd5cf7a33b450994e2dbee41f661fb
RX(theta₁₃)
2d371f9e703041ca8b89fafd1f9ea603--bfbd5cf7a33b450994e2dbee41f661fb
8e93366490224b61b84d5dcc0c208028
RY(theta₁₇)
bfbd5cf7a33b450994e2dbee41f661fb--8e93366490224b61b84d5dcc0c208028
f1c1fb8e4e25471e8c0e37685501b7df
RX(theta₂₁)
8e93366490224b61b84d5dcc0c208028--f1c1fb8e4e25471e8c0e37685501b7df
69b474117163457391eeaa4fd386606c
X
f1c1fb8e4e25471e8c0e37685501b7df--69b474117163457391eeaa4fd386606c
69b474117163457391eeaa4fd386606c--3fddf2dd054c41c294155c93bda9a17e
1de72c5a573f46618004c21e0edb6c52
69b474117163457391eeaa4fd386606c--1de72c5a573f46618004c21e0edb6c52
1de72c5a573f46618004c21e0edb6c52--28320fd1ac66464091644e77a0bc054a
22077de29a8a4deeadefcb40d05cd295
bbf3691d667c46c4a90e43e126865992
RX(3.0*phi)
b356827202e54078af290d7807263fa8--bbf3691d667c46c4a90e43e126865992
34f29064f8d9425385745cd68ab98a69
3
7885a0c466674b96a3369d92d903cf70
RX(theta₂)
bbf3691d667c46c4a90e43e126865992--7885a0c466674b96a3369d92d903cf70
1f5d3313c733450690be27d9cd193ade
RY(theta₆)
7885a0c466674b96a3369d92d903cf70--1f5d3313c733450690be27d9cd193ade
2311b3d1bc0244308b6a7c6485ce9a49
RX(theta₁₀)
1f5d3313c733450690be27d9cd193ade--2311b3d1bc0244308b6a7c6485ce9a49
55eac790dbf144d7bffac43f7b9ad27f
2311b3d1bc0244308b6a7c6485ce9a49--55eac790dbf144d7bffac43f7b9ad27f
5d6e59f2f271411198620aab99e7f4e9
X
55eac790dbf144d7bffac43f7b9ad27f--5d6e59f2f271411198620aab99e7f4e9
5d6e59f2f271411198620aab99e7f4e9--2d371f9e703041ca8b89fafd1f9ea603
6fe5e1dab49d43d7a077dbc608681019
RX(theta₁₄)
5d6e59f2f271411198620aab99e7f4e9--6fe5e1dab49d43d7a077dbc608681019
23436408275e4385a9d78c5f85835740
RY(theta₁₈)
6fe5e1dab49d43d7a077dbc608681019--23436408275e4385a9d78c5f85835740
4829188d88d543ea842f3a40eec0830a
RX(theta₂₂)
23436408275e4385a9d78c5f85835740--4829188d88d543ea842f3a40eec0830a
f87dc24cc8da47d1afe9ebd64ad02b2f
4829188d88d543ea842f3a40eec0830a--f87dc24cc8da47d1afe9ebd64ad02b2f
1a947255eb7c42a3b589c387bd8cb6c1
X
f87dc24cc8da47d1afe9ebd64ad02b2f--1a947255eb7c42a3b589c387bd8cb6c1
1a947255eb7c42a3b589c387bd8cb6c1--1de72c5a573f46618004c21e0edb6c52
1a947255eb7c42a3b589c387bd8cb6c1--22077de29a8a4deeadefcb40d05cd295
14ae3cc07fff4ccb80def03a9856b4a9
d618f233a7364651aaf309eae0e0d63c
RX(4.0*phi)
34f29064f8d9425385745cd68ab98a69--d618f233a7364651aaf309eae0e0d63c
0b9f446078f1430fb1704c249222c056
RX(theta₃)
d618f233a7364651aaf309eae0e0d63c--0b9f446078f1430fb1704c249222c056
b06d79559bc2436082ad1e85ef424f1c
RY(theta₇)
0b9f446078f1430fb1704c249222c056--b06d79559bc2436082ad1e85ef424f1c
1a744b6e23804a95a6a8977b95b2b1cf
RX(theta₁₁)
b06d79559bc2436082ad1e85ef424f1c--1a744b6e23804a95a6a8977b95b2b1cf
b20dcaba858c4b6487ceb5dc0c976f9b
X
1a744b6e23804a95a6a8977b95b2b1cf--b20dcaba858c4b6487ceb5dc0c976f9b
b20dcaba858c4b6487ceb5dc0c976f9b--55eac790dbf144d7bffac43f7b9ad27f
a33f125068e045c4b3cf6d9bd22db98d
b20dcaba858c4b6487ceb5dc0c976f9b--a33f125068e045c4b3cf6d9bd22db98d
f1616c06bb454610b80d10f958e0fa8a
RX(theta₁₅)
a33f125068e045c4b3cf6d9bd22db98d--f1616c06bb454610b80d10f958e0fa8a
436b01b2f2844b6f89748acd1b7d8732
RY(theta₁₉)
f1616c06bb454610b80d10f958e0fa8a--436b01b2f2844b6f89748acd1b7d8732
526e8577bc5e49adbe37be972b47ed62
RX(theta₂₃)
436b01b2f2844b6f89748acd1b7d8732--526e8577bc5e49adbe37be972b47ed62
03db57457a7048709589f3704c7a1125
X
526e8577bc5e49adbe37be972b47ed62--03db57457a7048709589f3704c7a1125
03db57457a7048709589f3704c7a1125--f87dc24cc8da47d1afe9ebd64ad02b2f
228e989b302e4cf4a5a078801335eeba
03db57457a7048709589f3704c7a1125--228e989b302e4cf4a5a078801335eeba
228e989b302e4cf4a5a078801335eeba--14ae3cc07fff4ccb80def03a9856b4a9
from qadence import QuantumModel , QuantumCircuit , total_magnetization , hea
model = QuantumModel ( QuantumCircuit ( 3 , hea ( 3 , 2 )), total_magnetization ( 3 ))
%3
cluster_439542b5e145489cbe8a47f7759e3338
Obs.
cluster_628e919401404a128a128d624c79acad
cluster_61c650be8ab44beb9676805e8fb5c8f1
HEA
e3ea3d7f54094e00880c02839864abc4
0
54c1fb6a785b4c44863fc6c6c48196c4
RX(theta₀)
e3ea3d7f54094e00880c02839864abc4--54c1fb6a785b4c44863fc6c6c48196c4
fe050bc59516478aaa82005fe338a80d
1
550acbab1e004aa59ccf083f2c003af0
RY(theta₃)
54c1fb6a785b4c44863fc6c6c48196c4--550acbab1e004aa59ccf083f2c003af0
ee992cdfe85e467ab5dbaeebacd6e66e
RX(theta₆)
550acbab1e004aa59ccf083f2c003af0--ee992cdfe85e467ab5dbaeebacd6e66e
0cf00ad113ee41a5aca9c2ca7a99feb7
ee992cdfe85e467ab5dbaeebacd6e66e--0cf00ad113ee41a5aca9c2ca7a99feb7
c0bf70085832401c92a34c0ea3dc40ba
0cf00ad113ee41a5aca9c2ca7a99feb7--c0bf70085832401c92a34c0ea3dc40ba
ac859b42a3714410ae4538947fb6e94a
RX(theta₉)
c0bf70085832401c92a34c0ea3dc40ba--ac859b42a3714410ae4538947fb6e94a
c059865d9a234a5d84784986b197a4f0
RY(theta₁₂)
ac859b42a3714410ae4538947fb6e94a--c059865d9a234a5d84784986b197a4f0
4d774394667b4edcaa3f462e0e9e36a5
RX(theta₁₅)
c059865d9a234a5d84784986b197a4f0--4d774394667b4edcaa3f462e0e9e36a5
2fa7d683c2164fb7af564c56685b0422
4d774394667b4edcaa3f462e0e9e36a5--2fa7d683c2164fb7af564c56685b0422
377247eb46be4c4c986cfaaf4649331c
2fa7d683c2164fb7af564c56685b0422--377247eb46be4c4c986cfaaf4649331c
5027ceb33629494cb4a1a4b3d2f951ad
377247eb46be4c4c986cfaaf4649331c--5027ceb33629494cb4a1a4b3d2f951ad
9d3b12ce71fc4f54b852d81612994b42
5027ceb33629494cb4a1a4b3d2f951ad--9d3b12ce71fc4f54b852d81612994b42
f8e67b67e35147e184b2cd49b8439ea3
3eac8800427f429bbfd14b63e7da5f13
RX(theta₁)
fe050bc59516478aaa82005fe338a80d--3eac8800427f429bbfd14b63e7da5f13
b42f54b6cf504a93ac7ed6c0d4b37572
2
223cc6a9716b4f6293aea46c3ac2e492
RY(theta₄)
3eac8800427f429bbfd14b63e7da5f13--223cc6a9716b4f6293aea46c3ac2e492
e663cc94ac65455396dd56d92d8ad332
RX(theta₇)
223cc6a9716b4f6293aea46c3ac2e492--e663cc94ac65455396dd56d92d8ad332
b9974a227fc940fd8fc735df43b75cb7
X
e663cc94ac65455396dd56d92d8ad332--b9974a227fc940fd8fc735df43b75cb7
b9974a227fc940fd8fc735df43b75cb7--0cf00ad113ee41a5aca9c2ca7a99feb7
4d2d126565394058a6fd711a57ef9f62
b9974a227fc940fd8fc735df43b75cb7--4d2d126565394058a6fd711a57ef9f62
74e366d99be047d3a54b9cf010433100
RX(theta₁₀)
4d2d126565394058a6fd711a57ef9f62--74e366d99be047d3a54b9cf010433100
06cad5bac7aa4f4687a70b6f2d61a6ca
RY(theta₁₃)
74e366d99be047d3a54b9cf010433100--06cad5bac7aa4f4687a70b6f2d61a6ca
e831d72d5f814b1e88caf5d7f6d1bc09
RX(theta₁₆)
06cad5bac7aa4f4687a70b6f2d61a6ca--e831d72d5f814b1e88caf5d7f6d1bc09
a67762baf337497f8b1d7533a70be3b4
X
e831d72d5f814b1e88caf5d7f6d1bc09--a67762baf337497f8b1d7533a70be3b4
a67762baf337497f8b1d7533a70be3b4--2fa7d683c2164fb7af564c56685b0422
1df1295f47b6434ea9b223646060e9cc
a67762baf337497f8b1d7533a70be3b4--1df1295f47b6434ea9b223646060e9cc
1a88fdbd39df43c3a5e84a78f888395f
AddBlock
1df1295f47b6434ea9b223646060e9cc--1a88fdbd39df43c3a5e84a78f888395f
1a88fdbd39df43c3a5e84a78f888395f--f8e67b67e35147e184b2cd49b8439ea3
c933f6bfb28348e9b3271b2ea460d823
a253b4f577454a6ebbf7cc7af028ff81
RX(theta₂)
b42f54b6cf504a93ac7ed6c0d4b37572--a253b4f577454a6ebbf7cc7af028ff81
9781ffd6da984f67acba80264ad04bc4
RY(theta₅)
a253b4f577454a6ebbf7cc7af028ff81--9781ffd6da984f67acba80264ad04bc4
7594a098858c4fb2a140739a3aa8cb53
RX(theta₈)
9781ffd6da984f67acba80264ad04bc4--7594a098858c4fb2a140739a3aa8cb53
f46f3652a60e47ac81215a35e3db6d7b
7594a098858c4fb2a140739a3aa8cb53--f46f3652a60e47ac81215a35e3db6d7b
5d85ad7544db44ddb11a4dc81c3d71c3
X
f46f3652a60e47ac81215a35e3db6d7b--5d85ad7544db44ddb11a4dc81c3d71c3
5d85ad7544db44ddb11a4dc81c3d71c3--4d2d126565394058a6fd711a57ef9f62
55b8fa6856b341d89aea06b88287cef8
RX(theta₁₁)
5d85ad7544db44ddb11a4dc81c3d71c3--55b8fa6856b341d89aea06b88287cef8
11cc4c1bda0b47518648b2a6538d78cd
RY(theta₁₄)
55b8fa6856b341d89aea06b88287cef8--11cc4c1bda0b47518648b2a6538d78cd
965dea99dcdb487fb0fe3e574aebb613
RX(theta₁₇)
11cc4c1bda0b47518648b2a6538d78cd--965dea99dcdb487fb0fe3e574aebb613
259054af9da0495993441e8a2e47875f
965dea99dcdb487fb0fe3e574aebb613--259054af9da0495993441e8a2e47875f
cb498311a7294687a272b029703fd644
X
259054af9da0495993441e8a2e47875f--cb498311a7294687a272b029703fd644
cb498311a7294687a272b029703fd644--1df1295f47b6434ea9b223646060e9cc
d2aaad1f6327444693f091ae505c54fa
cb498311a7294687a272b029703fd644--d2aaad1f6327444693f091ae505c54fa
d2aaad1f6327444693f091ae505c54fa--c933f6bfb28348e9b3271b2ea460d823
from qadence import *
b = chain ( SWAP ( 0 , 1 ), SWAP ( 0 , 3 ))
%3
f97ee7d5e7aa478eb36ba9b5e3c5a1b5
0
8dd3e3437cd14017b9f4e7bb1e4a0db7
f97ee7d5e7aa478eb36ba9b5e3c5a1b5--8dd3e3437cd14017b9f4e7bb1e4a0db7
95de8e3c4f174e1abef73c24c255d7c5
1
6f5ccbf3f4864ad38bf6fc0e9b6441b4
0433fdb6c5bd4daf88565eb6749d1981
8dd3e3437cd14017b9f4e7bb1e4a0db7--0433fdb6c5bd4daf88565eb6749d1981
a2ccda30b0204795a90bc73207b13882
6f5ccbf3f4864ad38bf6fc0e9b6441b4--a2ccda30b0204795a90bc73207b13882
c7e645185ec142629cfd05358382a245
743a2444eece4ab981fd4013ced10b05
a2ccda30b0204795a90bc73207b13882--743a2444eece4ab981fd4013ced10b05
9b7614feddee46c8bc20b7cd7c796640
c7e645185ec142629cfd05358382a245--9b7614feddee46c8bc20b7cd7c796640
035a43288d5b4d97abb341ae51d93c78
c2276a13d72e416285d8a395f0aed00b
95de8e3c4f174e1abef73c24c255d7c5--c2276a13d72e416285d8a395f0aed00b
db1d0092cab54e5a9851ce96c942ecd6
2
c2276a13d72e416285d8a395f0aed00b--6f5ccbf3f4864ad38bf6fc0e9b6441b4
d0418198613541c585147085f5d07cdd
0433fdb6c5bd4daf88565eb6749d1981--d0418198613541c585147085f5d07cdd
b54066957e9e496499575478ada07b0d
d0418198613541c585147085f5d07cdd--b54066957e9e496499575478ada07b0d
b54066957e9e496499575478ada07b0d--035a43288d5b4d97abb341ae51d93c78
25f1879b0ebb4fbd98777c014fa7701b
f30f49f939504c01a873839c711c4887
db1d0092cab54e5a9851ce96c942ecd6--f30f49f939504c01a873839c711c4887
07dcad433fcc4569a38bb4a40d451bb2
3
2da6406ad1ad40bca3f83f0408c5d3c2
f30f49f939504c01a873839c711c4887--2da6406ad1ad40bca3f83f0408c5d3c2
21d60dc06fe64ae4afa2d07dd6010517
2da6406ad1ad40bca3f83f0408c5d3c2--21d60dc06fe64ae4afa2d07dd6010517
64a069ddc40040e08081f0a76113f9ec
21d60dc06fe64ae4afa2d07dd6010517--64a069ddc40040e08081f0a76113f9ec
64a069ddc40040e08081f0a76113f9ec--25f1879b0ebb4fbd98777c014fa7701b
355c041f786d40cf86a207f20d1dc12e
1096f3f842474797a44dcb4d2e0ef58f
07dcad433fcc4569a38bb4a40d451bb2--1096f3f842474797a44dcb4d2e0ef58f
321a94818747454096a817a694b62c00
1096f3f842474797a44dcb4d2e0ef58f--321a94818747454096a817a694b62c00
741bc24939174d009eb9415c8eea70a0
321a94818747454096a817a694b62c00--741bc24939174d009eb9415c8eea70a0
741bc24939174d009eb9415c8eea70a0--c7e645185ec142629cfd05358382a245
743a2444eece4ab981fd4013ced10b05--355c041f786d40cf86a207f20d1dc12e
from qadence import *
b = chain ( CPHASE ( 0 , 1 , 0.5 ), CPHASE ( 0 , 2 , 0.5 ), CPHASE ( 0 , 3 , 0.5 ))
%3
a95da574835d46868764f102977978b2
0
28e822a62bae4c41a6269d82f028edd2
a95da574835d46868764f102977978b2--28e822a62bae4c41a6269d82f028edd2
80330103b1b74abab63bb87ae322cc39
1
d8cef006c85c4d54bd11d2dde59dc362
28e822a62bae4c41a6269d82f028edd2--d8cef006c85c4d54bd11d2dde59dc362
a850ecc91337492aa40c402d32632d7d
d8cef006c85c4d54bd11d2dde59dc362--a850ecc91337492aa40c402d32632d7d
8a2199a2675040edb3c3213154c41d1e
a850ecc91337492aa40c402d32632d7d--8a2199a2675040edb3c3213154c41d1e
7885917924dd4cd58ac3f5adee993069
4de6b006076241128dd513b233718943
PHASE(0.5)
80330103b1b74abab63bb87ae322cc39--4de6b006076241128dd513b233718943
cf4d2a1509ce443e93f834d6af4d2c50
2
4de6b006076241128dd513b233718943--28e822a62bae4c41a6269d82f028edd2
e701f84e017e4707bff787ad1e885ff3
4de6b006076241128dd513b233718943--e701f84e017e4707bff787ad1e885ff3
9c98a02411504e18bb4359022bd4be22
e701f84e017e4707bff787ad1e885ff3--9c98a02411504e18bb4359022bd4be22
9c98a02411504e18bb4359022bd4be22--7885917924dd4cd58ac3f5adee993069
9b91e474be3b47ecb7390537f4bb45a9
bae2dd09bbd04c729b9d158fc573c6b3
cf4d2a1509ce443e93f834d6af4d2c50--bae2dd09bbd04c729b9d158fc573c6b3
457f6b106ac047b6b95ba567fcc6f48c
3
e24586fbf99541b897717b28dd925295
PHASE(0.5)
bae2dd09bbd04c729b9d158fc573c6b3--e24586fbf99541b897717b28dd925295
e24586fbf99541b897717b28dd925295--d8cef006c85c4d54bd11d2dde59dc362
1b606f82bfb64bbb96c0b7c28844fa17
e24586fbf99541b897717b28dd925295--1b606f82bfb64bbb96c0b7c28844fa17
1b606f82bfb64bbb96c0b7c28844fa17--9b91e474be3b47ecb7390537f4bb45a9
b29ac5ffc012467cae83758dfe32fbf6
e00c1ab0950940159fa8ab8cc3e05ce6
457f6b106ac047b6b95ba567fcc6f48c--e00c1ab0950940159fa8ab8cc3e05ce6
ec4ee73f1d0a4a4f98f05162e2fe2c92
e00c1ab0950940159fa8ab8cc3e05ce6--ec4ee73f1d0a4a4f98f05162e2fe2c92
fb0ffdfab2c04189b51c8a7e0d9b9ed1
PHASE(0.5)
ec4ee73f1d0a4a4f98f05162e2fe2c92--fb0ffdfab2c04189b51c8a7e0d9b9ed1
fb0ffdfab2c04189b51c8a7e0d9b9ed1--a850ecc91337492aa40c402d32632d7d
fb0ffdfab2c04189b51c8a7e0d9b9ed1--b29ac5ffc012467cae83758dfe32fbf6
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