Quantum machine learning constructors
Besides the arbitrary Hamiltonian constructors , Qadence also provides a complete set of
program constructors useful for digital-analog quantum machine learning programs.
Feature maps
The feature_map function can easily create several types of data-encoding blocks. The
two main types of feature maps use a Fourier basis or a Chebyshev basis.
from qadence import feature_map , BasisSet , chain
from qadence.draw import display
n_qubits = 3
fourier_fm = feature_map ( n_qubits , fm_type = BasisSet . FOURIER )
chebyshev_fm = feature_map ( n_qubits , fm_type = BasisSet . CHEBYSHEV )
block = chain ( fourier_fm , chebyshev_fm )
%3
cluster_5c70203a38b440fdb7e2974c3a415273
Constant Chebyshev FM
cluster_2cedec270a5f4115bb1d90cc5c1d69f2
Constant Fourier FM
ea505bffe54544fab9baa0905f786a47
0
f8a21633ad6047d19049c061e6ac8843
RX(phi)
ea505bffe54544fab9baa0905f786a47--f8a21633ad6047d19049c061e6ac8843
2ef71dfef42c4089851166a38cccd2a1
1
187ffe8d2ae841a49d2f9c567d7836f6
RX(acos(phi))
f8a21633ad6047d19049c061e6ac8843--187ffe8d2ae841a49d2f9c567d7836f6
97578b7955d94c5c84faa6497f446ccc
187ffe8d2ae841a49d2f9c567d7836f6--97578b7955d94c5c84faa6497f446ccc
77252cfd677b42cc82d6073b75a3c353
65b13f058931410281f1082225019dc7
RX(phi)
2ef71dfef42c4089851166a38cccd2a1--65b13f058931410281f1082225019dc7
bc65a22f875945dea03e3e4960c458c9
2
01a40e6d1562415ca6af918d5eef055e
RX(acos(phi))
65b13f058931410281f1082225019dc7--01a40e6d1562415ca6af918d5eef055e
01a40e6d1562415ca6af918d5eef055e--77252cfd677b42cc82d6073b75a3c353
c325f8919a974bd79d000af81c477b7c
f4c992d127294db39a9e37c80fa15857
RX(phi)
bc65a22f875945dea03e3e4960c458c9--f4c992d127294db39a9e37c80fa15857
361c983820534f24ad8de5e4d7319a88
RX(acos(phi))
f4c992d127294db39a9e37c80fa15857--361c983820534f24ad8de5e4d7319a88
361c983820534f24ad8de5e4d7319a88--c325f8919a974bd79d000af81c477b7c
A custom encoding function can also be passed with sympy
from sympy import asin , Function
n_qubits = 3
# Using a pre-defined sympy Function
custom_fm_0 = feature_map ( n_qubits , fm_type = asin )
# Creating a custom function
def custom_fn ( x ):
return asin ( x ) + x ** 2
custom_fm_1 = feature_map ( n_qubits , fm_type = custom_fn )
block = chain ( custom_fm_0 , custom_fm_1 )
%3
cluster_589f775eb2604e6fbdb7d7705028c5f5
Constant <function custom_fn at 0x7fecef0d4ca0> FM
cluster_f7d296942af9441d8c2d817e24624024
Constant asin FM
5d79d648ad4c4d44b18531c186a897db
0
db5c6e7d11294722a0ee5c64efcea43e
RX(asin(phi))
5d79d648ad4c4d44b18531c186a897db--db5c6e7d11294722a0ee5c64efcea43e
eca95f9ccff94ed98a5cb1beecae7724
1
7d1f7f1da0704d0b86dee2054d9652ef
RX(phi**2 + asin(phi))
db5c6e7d11294722a0ee5c64efcea43e--7d1f7f1da0704d0b86dee2054d9652ef
87372cc95be94cde9fdbbc0e4128c35f
7d1f7f1da0704d0b86dee2054d9652ef--87372cc95be94cde9fdbbc0e4128c35f
517d5454a8a44a45a5ae78633ab98156
d4eeae19acdf4ad0a8ea576cafbcf27a
RX(asin(phi))
eca95f9ccff94ed98a5cb1beecae7724--d4eeae19acdf4ad0a8ea576cafbcf27a
3d500a727dd04731a7a6ade0ba89d4af
2
cd3555da493e45babe829dfa01b78495
RX(phi**2 + asin(phi))
d4eeae19acdf4ad0a8ea576cafbcf27a--cd3555da493e45babe829dfa01b78495
cd3555da493e45babe829dfa01b78495--517d5454a8a44a45a5ae78633ab98156
e9fb0c6be05a4fb6a654ba31dfcf15e2
76f0dc2f41684c89b6f066e191923ef2
RX(asin(phi))
3d500a727dd04731a7a6ade0ba89d4af--76f0dc2f41684c89b6f066e191923ef2
a161250775e14392a75cf7d7f164cb59
RX(phi**2 + asin(phi))
76f0dc2f41684c89b6f066e191923ef2--a161250775e14392a75cf7d7f164cb59
a161250775e14392a75cf7d7f164cb59--e9fb0c6be05a4fb6a654ba31dfcf15e2
Furthermore, the reupload_scaling argument can be used to change the scaling applied to each qubit
in the support of the feature map. The default scalings can be chosen from the ReuploadScaling enumeration.
from qadence import ReuploadScaling
from qadence.draw import display
n_qubits = 5
# Default constant value
fm_constant = feature_map ( n_qubits , fm_type = BasisSet . FOURIER , reupload_scaling = ReuploadScaling . CONSTANT )
# Linearly increasing scaling
fm_tower = feature_map ( n_qubits , fm_type = BasisSet . FOURIER , reupload_scaling = ReuploadScaling . TOWER )
# Exponentially increasing scaling
fm_exp = feature_map ( n_qubits , fm_type = BasisSet . FOURIER , reupload_scaling = ReuploadScaling . EXP )
block = chain ( fm_constant , fm_tower , fm_exp )
%3
cluster_d9f4544c4cc54665b9d18198784cf2b5
Exponential Fourier FM
cluster_1b670f2c703e4fa1b85849b869c2c702
Constant Fourier FM
cluster_5136af7b4921406ca192e0a024268c81
Tower Fourier FM
5d5c149a9e6b41718b78b1950a8656ce
0
9f5601b03c434300ac9fa29a206d0bde
RX(phi)
5d5c149a9e6b41718b78b1950a8656ce--9f5601b03c434300ac9fa29a206d0bde
b0a5e6ef387748e4a565dc2cf225cd2a
1
7bc7fc3a5e4d46db943e31ae1fc3c3c1
RX(1.0*phi)
9f5601b03c434300ac9fa29a206d0bde--7bc7fc3a5e4d46db943e31ae1fc3c3c1
99376cf0eede439eb65dbc74311bdb34
RX(1.0*phi)
7bc7fc3a5e4d46db943e31ae1fc3c3c1--99376cf0eede439eb65dbc74311bdb34
3702040814fa4b5c9349869f8a250e78
99376cf0eede439eb65dbc74311bdb34--3702040814fa4b5c9349869f8a250e78
3cddc88da48a4feb8e54b91cb3d24595
6f2e3431fdbf459d84833fe77d899d12
RX(phi)
b0a5e6ef387748e4a565dc2cf225cd2a--6f2e3431fdbf459d84833fe77d899d12
735c6b6486dd4c428b57174476dac2e9
2
c4062a2096b94cfca0cab398e893a491
RX(2.0*phi)
6f2e3431fdbf459d84833fe77d899d12--c4062a2096b94cfca0cab398e893a491
350c5caa7286427b94c443df60dcf252
RX(2.0*phi)
c4062a2096b94cfca0cab398e893a491--350c5caa7286427b94c443df60dcf252
350c5caa7286427b94c443df60dcf252--3cddc88da48a4feb8e54b91cb3d24595
e5a1ca073e22486fbf0156d7096dde27
abc5501e85e64b1bb1863489b06f2934
RX(phi)
735c6b6486dd4c428b57174476dac2e9--abc5501e85e64b1bb1863489b06f2934
408a5ccb901d440fac56ac42f7a3e910
3
38eab0dc5be2492d802e4a0e539ff48f
RX(3.0*phi)
abc5501e85e64b1bb1863489b06f2934--38eab0dc5be2492d802e4a0e539ff48f
6378d0a3e52648bab8585b2586bbf84b
RX(4.0*phi)
38eab0dc5be2492d802e4a0e539ff48f--6378d0a3e52648bab8585b2586bbf84b
6378d0a3e52648bab8585b2586bbf84b--e5a1ca073e22486fbf0156d7096dde27
28f71930e32f49849b8e7e474386f870
cdcc10edc2f7417aa39dba4d838316e3
RX(phi)
408a5ccb901d440fac56ac42f7a3e910--cdcc10edc2f7417aa39dba4d838316e3
b770336c4ebc43a8a49d1d827767413e
4
3b71fe69b821444fa00a4beb216944ed
RX(4.0*phi)
cdcc10edc2f7417aa39dba4d838316e3--3b71fe69b821444fa00a4beb216944ed
e10d285226f441d692823e3eb06fd9a3
RX(8.0*phi)
3b71fe69b821444fa00a4beb216944ed--e10d285226f441d692823e3eb06fd9a3
e10d285226f441d692823e3eb06fd9a3--28f71930e32f49849b8e7e474386f870
1d70894c7d8743b6902529281d53ec83
727e1684e8114e989a770db04bead0f6
RX(phi)
b770336c4ebc43a8a49d1d827767413e--727e1684e8114e989a770db04bead0f6
5b6a19ce4a4d48d7a87f25fcf49976aa
RX(5.0*phi)
727e1684e8114e989a770db04bead0f6--5b6a19ce4a4d48d7a87f25fcf49976aa
a91a59a07a3349a287a63611e4ac5602
RX(16.0*phi)
5b6a19ce4a4d48d7a87f25fcf49976aa--a91a59a07a3349a287a63611e4ac5602
a91a59a07a3349a287a63611e4ac5602--1d70894c7d8743b6902529281d53ec83
A custom scaling can also be defined with a function with an int input and int or float output.
n_qubits = 5
def custom_scaling ( i : int ) -> int | float :
"""Sqrt(i+1)"""
return ( i + 1 ) ** ( 0.5 )
# Custom scaling function
fm_custom = feature_map ( n_qubits , fm_type = BasisSet . CHEBYSHEV , reupload_scaling = custom_scaling )
%3
2eeda0cdff014b0c85e4ba6aeb297056
0
0478b34ad4a34b099813efe0d94f0594
RX(1.0*acos(phi))
2eeda0cdff014b0c85e4ba6aeb297056--0478b34ad4a34b099813efe0d94f0594
79821e27808e43b286ea2e57a5ac9031
1
e3835c64b169406ab3a23f02a6240bcc
0478b34ad4a34b099813efe0d94f0594--e3835c64b169406ab3a23f02a6240bcc
edf428b203e746419c01e885a1583a3b
e1c3f671631e4890aaa52c0c95a498ad
RX(1.414*acos(phi))
79821e27808e43b286ea2e57a5ac9031--e1c3f671631e4890aaa52c0c95a498ad
bff7e400b606401d905260bf505a3cda
2
e1c3f671631e4890aaa52c0c95a498ad--edf428b203e746419c01e885a1583a3b
b581ba358c674a4881939dc8b705d8a5
a357e86215b94c659e0d1088baf1e174
RX(1.732*acos(phi))
bff7e400b606401d905260bf505a3cda--a357e86215b94c659e0d1088baf1e174
072b7080cf704bf0a36cb3109ee51018
3
a357e86215b94c659e0d1088baf1e174--b581ba358c674a4881939dc8b705d8a5
9cd56c4fd3ff4127b8b8b7ee643474ba
f8be9b02b40e456dbf44e123158210f9
RX(2.0*acos(phi))
072b7080cf704bf0a36cb3109ee51018--f8be9b02b40e456dbf44e123158210f9
565d30e986b34ffc9087dcb45bf9e751
4
f8be9b02b40e456dbf44e123158210f9--9cd56c4fd3ff4127b8b8b7ee643474ba
c55e847e061747c881e09b1c8280eff1
b458774c23f841d2b2453e02dc354989
RX(2.236*acos(phi))
565d30e986b34ffc9087dcb45bf9e751--b458774c23f841d2b2453e02dc354989
b458774c23f841d2b2453e02dc354989--c55e847e061747c881e09b1c8280eff1
To add a trainable parameter that multiplies the feature parameter inside the encoding function,
simply pass a param_prefix string:
n_qubits = 5
fm_trainable = feature_map (
n_qubits ,
fm_type = BasisSet . FOURIER ,
reupload_scaling = ReuploadScaling . EXP ,
param_prefix = "w" ,
)
%3
ce7967c36034467a85246699d21b7cac
0
b77850ed2f7c40e9b01ba4aa0f6e4c4c
RX(1.0*phi*w₀)
ce7967c36034467a85246699d21b7cac--b77850ed2f7c40e9b01ba4aa0f6e4c4c
03d8e7711c264570ab0f03b462cc47d9
1
095517f10ed74338b052c5b33eada868
b77850ed2f7c40e9b01ba4aa0f6e4c4c--095517f10ed74338b052c5b33eada868
33dab809ff2e43a88e963ab1e4155fec
27914081f97f475b9bf5ab0b637a68ae
RX(2.0*phi*w₁)
03d8e7711c264570ab0f03b462cc47d9--27914081f97f475b9bf5ab0b637a68ae
e87617b60c4a4d43be48a58f07880b33
2
27914081f97f475b9bf5ab0b637a68ae--33dab809ff2e43a88e963ab1e4155fec
1800d50d45e94630a35ec85ede6c6bf6
267107d578bd4be3b912bac68da55e82
RX(4.0*phi*w₂)
e87617b60c4a4d43be48a58f07880b33--267107d578bd4be3b912bac68da55e82
28a03efaa34c4ff7a543ef02b073f301
3
267107d578bd4be3b912bac68da55e82--1800d50d45e94630a35ec85ede6c6bf6
b6bf9762938d425698ad8baec9330903
1029b8726177475a9efdb367b8d1c8be
RX(8.0*phi*w₃)
28a03efaa34c4ff7a543ef02b073f301--1029b8726177475a9efdb367b8d1c8be
64c8aaf3fc374c7a8399cdfe5e83de7b
4
1029b8726177475a9efdb367b8d1c8be--b6bf9762938d425698ad8baec9330903
653ba054632647abaaa92b2ec175d232
3d3114a44363483f99199944fd10f61a
RX(16.0*phi*w₄)
64c8aaf3fc374c7a8399cdfe5e83de7b--3d3114a44363483f99199944fd10f61a
3d3114a44363483f99199944fd10f61a--653ba054632647abaaa92b2ec175d232
Note that for the Fourier feature map, the encoding function is simply \(f(x)=x\) . For other cases, like the Chebyshev acos() encoding,
the trainable parameter may cause the feature value to be outside the domain of the encoding function. This will eventually be fixed
by adding range constraints to trainable parameters in Qadence.
A full description of the remaining arguments can be found in the feature_map API reference . We provide an example below.
from qadence import RY
n_qubits = 5
# Custom scaling function
fm_full = feature_map (
n_qubits = n_qubits ,
support = tuple ( reversed ( range ( n_qubits ))), # Reverse the qubit support to run the scaling from bottom to top
param = "x" , # Change the name of the parameter
op = RY , # Change the rotation gate between RX, RY, RZ or PHASE
fm_type = BasisSet . CHEBYSHEV ,
reupload_scaling = ReuploadScaling . EXP ,
feature_range = ( - 1.0 , 2.0 ), # Range from which the input data comes from
target_range = ( 1.0 , 3.0 ), # Range the encoder assumes as the natural range
multiplier = 5.0 , # Extra multiplier, which can also be a Parameter
param_prefix = "w" , # Add trainable parameters
)
%3
0b155500e70c4806931d18ee2f5fe29a
0
8bbb7ace60034d8bbcd5aefd2281f9b5
RY(80.0*acos(w₄*(0.667*x + 1.667)))
0b155500e70c4806931d18ee2f5fe29a--8bbb7ace60034d8bbcd5aefd2281f9b5
63262c2f8e8f4da38e30abfc9420a3fc
1
7af8dac6577f41c29d8a9849d6235e20
8bbb7ace60034d8bbcd5aefd2281f9b5--7af8dac6577f41c29d8a9849d6235e20
57a06886c5bf420789b0d91177821abd
2f0af56323dd453f87baa4b471eea22b
RY(40.0*acos(w₃*(0.667*x + 1.667)))
63262c2f8e8f4da38e30abfc9420a3fc--2f0af56323dd453f87baa4b471eea22b
65e7bfd6c7bb4ce6aecbf185a9fded98
2
2f0af56323dd453f87baa4b471eea22b--57a06886c5bf420789b0d91177821abd
0fd2b78d7a7a4c3c922f690299ba2f29
cb16d5e0adaa43a79b9c80c29fd9e527
RY(20.0*acos(w₂*(0.667*x + 1.667)))
65e7bfd6c7bb4ce6aecbf185a9fded98--cb16d5e0adaa43a79b9c80c29fd9e527
9d3411b6994d4b18831026aba5b8dc38
3
cb16d5e0adaa43a79b9c80c29fd9e527--0fd2b78d7a7a4c3c922f690299ba2f29
5d288f1bd15d491c80f6f9db07c07f0a
c1d3cf4677644da4a9e85d12f4fc7ea7
RY(10.0*acos(w₁*(0.667*x + 1.667)))
9d3411b6994d4b18831026aba5b8dc38--c1d3cf4677644da4a9e85d12f4fc7ea7
6c27aafeff274cd2913d67425a438c91
4
c1d3cf4677644da4a9e85d12f4fc7ea7--5d288f1bd15d491c80f6f9db07c07f0a
06e8d786ba4c4479a1bbfb00ce5cfbae
486b54916a674290afd7fd0b5294ee47
RY(5.0*acos(w₀*(0.667*x + 1.667)))
6c27aafeff274cd2913d67425a438c91--486b54916a674290afd7fd0b5294ee47
486b54916a674290afd7fd0b5294ee47--06e8d786ba4c4479a1bbfb00ce5cfbae
Hardware-efficient ansatz
Ansatze blocks for quantum machine-learning are typically built following the Hardware-Efficient Ansatz formalism (HEA).
Both fully digital and digital-analog HEAs can easily be built with the hea function. By default,
the digital version is returned:
from qadence import hea
from qadence.draw import display
n_qubits = 3
depth = 2
ansatz = hea ( n_qubits , depth )
%3
03f3b915c1d443beb9c821113f0e89a8
0
5a948e63e972402ba3cb5f0ea4b419f0
RX(theta₀)
03f3b915c1d443beb9c821113f0e89a8--5a948e63e972402ba3cb5f0ea4b419f0
23f5505879d647798f1a578803061488
1
26b83d078e574a1d9450c6f6ba71cd5b
RY(theta₃)
5a948e63e972402ba3cb5f0ea4b419f0--26b83d078e574a1d9450c6f6ba71cd5b
3a4ee1cade024746a56fe54b9b8fd862
RX(theta₆)
26b83d078e574a1d9450c6f6ba71cd5b--3a4ee1cade024746a56fe54b9b8fd862
559ccbc1965849f68f2e8a265b752617
3a4ee1cade024746a56fe54b9b8fd862--559ccbc1965849f68f2e8a265b752617
5a0b7db070d748f6aed3f03425a289e2
559ccbc1965849f68f2e8a265b752617--5a0b7db070d748f6aed3f03425a289e2
37cd33ce84be49fbbf15ac37cddda2c7
RX(theta₉)
5a0b7db070d748f6aed3f03425a289e2--37cd33ce84be49fbbf15ac37cddda2c7
3dca33cef3b548868daa7e8f1476556c
RY(theta₁₂)
37cd33ce84be49fbbf15ac37cddda2c7--3dca33cef3b548868daa7e8f1476556c
dda8b93111774e50a6a48a1ea16c0cca
RX(theta₁₅)
3dca33cef3b548868daa7e8f1476556c--dda8b93111774e50a6a48a1ea16c0cca
1d3fa77abaf84d2c95d7e7af550c93cb
dda8b93111774e50a6a48a1ea16c0cca--1d3fa77abaf84d2c95d7e7af550c93cb
33fc8996b0ae4509af0df8d35d964de5
1d3fa77abaf84d2c95d7e7af550c93cb--33fc8996b0ae4509af0df8d35d964de5
fc00316c56a2433fbe7cfc256887771e
33fc8996b0ae4509af0df8d35d964de5--fc00316c56a2433fbe7cfc256887771e
a2697a64056e4f06bbc5b9e39474d41c
cb74a92b94ec40a5912944a6a3c9d621
RX(theta₁)
23f5505879d647798f1a578803061488--cb74a92b94ec40a5912944a6a3c9d621
87143886a2d74274b07d7e957b028b10
2
89f859e827ec46bc9a31e2e76229c6a1
RY(theta₄)
cb74a92b94ec40a5912944a6a3c9d621--89f859e827ec46bc9a31e2e76229c6a1
2de5f0c39e0241d984de3a325c889f19
RX(theta₇)
89f859e827ec46bc9a31e2e76229c6a1--2de5f0c39e0241d984de3a325c889f19
eef85756640041e6b7be790ccfde570c
X
2de5f0c39e0241d984de3a325c889f19--eef85756640041e6b7be790ccfde570c
eef85756640041e6b7be790ccfde570c--559ccbc1965849f68f2e8a265b752617
0a5a265c32894619b5223df3d7247ebc
eef85756640041e6b7be790ccfde570c--0a5a265c32894619b5223df3d7247ebc
9e0e08fa470e4fb68a335ac60b4eea39
RX(theta₁₀)
0a5a265c32894619b5223df3d7247ebc--9e0e08fa470e4fb68a335ac60b4eea39
f34c43dd29a145ba8db17b72e75663d2
RY(theta₁₃)
9e0e08fa470e4fb68a335ac60b4eea39--f34c43dd29a145ba8db17b72e75663d2
dc46e36bf5654502a4ce170623831286
RX(theta₁₆)
f34c43dd29a145ba8db17b72e75663d2--dc46e36bf5654502a4ce170623831286
2ad9cd902dfd43daba193ebe1644568b
X
dc46e36bf5654502a4ce170623831286--2ad9cd902dfd43daba193ebe1644568b
2ad9cd902dfd43daba193ebe1644568b--1d3fa77abaf84d2c95d7e7af550c93cb
93520e41425e45998c6cf2e185e3a522
2ad9cd902dfd43daba193ebe1644568b--93520e41425e45998c6cf2e185e3a522
93520e41425e45998c6cf2e185e3a522--a2697a64056e4f06bbc5b9e39474d41c
e1203bdc23dc4be3a76d0bd2835336ab
353c9aa872df49a99c57b175a66cb133
RX(theta₂)
87143886a2d74274b07d7e957b028b10--353c9aa872df49a99c57b175a66cb133
8a8b84a5934d4ace87b10b9470720a89
RY(theta₅)
353c9aa872df49a99c57b175a66cb133--8a8b84a5934d4ace87b10b9470720a89
17f2262cbc914c5785be760976eb3349
RX(theta₈)
8a8b84a5934d4ace87b10b9470720a89--17f2262cbc914c5785be760976eb3349
f338f790c83e4651b7f4fc981121f34f
17f2262cbc914c5785be760976eb3349--f338f790c83e4651b7f4fc981121f34f
e7dfeefd658f4d05862e0ba5eea85d71
X
f338f790c83e4651b7f4fc981121f34f--e7dfeefd658f4d05862e0ba5eea85d71
e7dfeefd658f4d05862e0ba5eea85d71--0a5a265c32894619b5223df3d7247ebc
f9ee0ed87f10411eb72bb57454b08959
RX(theta₁₁)
e7dfeefd658f4d05862e0ba5eea85d71--f9ee0ed87f10411eb72bb57454b08959
74943319d08b4f578490e3288b18c113
RY(theta₁₄)
f9ee0ed87f10411eb72bb57454b08959--74943319d08b4f578490e3288b18c113
794c5d15b1404156ba100e1485fc39df
RX(theta₁₇)
74943319d08b4f578490e3288b18c113--794c5d15b1404156ba100e1485fc39df
1b6e2eb913754cf39e5b4478ff28b5c3
794c5d15b1404156ba100e1485fc39df--1b6e2eb913754cf39e5b4478ff28b5c3
ef55b27d08ce47aa889eec2b7dff88b8
X
1b6e2eb913754cf39e5b4478ff28b5c3--ef55b27d08ce47aa889eec2b7dff88b8
ef55b27d08ce47aa889eec2b7dff88b8--93520e41425e45998c6cf2e185e3a522
ef55b27d08ce47aa889eec2b7dff88b8--e1203bdc23dc4be3a76d0bd2835336ab
As seen above, the rotation layers are automatically parameterized, and the prefix "theta" can be changed with the param_prefix argument.
Furthermore, both the single-qubit rotations and the two-qubit entangler can be customized with the operations and entangler argument. The operations can be passed as a list of single-qubit rotations, while the entangler should be either CNOT, CZ, CRX, CRY, CRZ or CPHASE.
from qadence import RX , RY , CPHASE
ansatz = hea (
n_qubits = n_qubits ,
depth = depth ,
param_prefix = "phi" ,
operations = [ RX , RY , RX ],
entangler = CPHASE
)
%3
e50d7c006574483cbc77838a7d76466d
0
a45021a7b5b1498a85ce08ed3448749f
RX(phi₀)
e50d7c006574483cbc77838a7d76466d--a45021a7b5b1498a85ce08ed3448749f
1dcb4f36bb07491cbf0468845041e581
1
625b697fe71346fbbdc5cf468d4627c9
RY(phi₃)
a45021a7b5b1498a85ce08ed3448749f--625b697fe71346fbbdc5cf468d4627c9
4489c47672bf494ab0dc18fcc7148444
RX(phi₆)
625b697fe71346fbbdc5cf468d4627c9--4489c47672bf494ab0dc18fcc7148444
52a510cd03b04a8d991227a939701dcc
4489c47672bf494ab0dc18fcc7148444--52a510cd03b04a8d991227a939701dcc
a22c98572bf04646b440b2841f64f1e4
52a510cd03b04a8d991227a939701dcc--a22c98572bf04646b440b2841f64f1e4
68ca5f3e93f44f37b0c386105ba37a0d
RX(phi₉)
a22c98572bf04646b440b2841f64f1e4--68ca5f3e93f44f37b0c386105ba37a0d
ef001592bb4c4dfdb4e289cf204f3002
RY(phi₁₂)
68ca5f3e93f44f37b0c386105ba37a0d--ef001592bb4c4dfdb4e289cf204f3002
c3b286668bb6452ca44cc4618e030251
RX(phi₁₅)
ef001592bb4c4dfdb4e289cf204f3002--c3b286668bb6452ca44cc4618e030251
e5e57002ba334d92a8cf9eee49e575c9
c3b286668bb6452ca44cc4618e030251--e5e57002ba334d92a8cf9eee49e575c9
50c9125a38da4475915704ab73a87c3b
e5e57002ba334d92a8cf9eee49e575c9--50c9125a38da4475915704ab73a87c3b
9382198af0d047f4a2b9069344454a3d
50c9125a38da4475915704ab73a87c3b--9382198af0d047f4a2b9069344454a3d
529d07caba1d4e3782cc75eb9f6c6385
dffb17aee28d4da88474b8bf6cebc876
RX(phi₁)
1dcb4f36bb07491cbf0468845041e581--dffb17aee28d4da88474b8bf6cebc876
e32e22c1c7e1472b80bc0b38a75bf925
2
7fe466e6df9f46908dbda6fe2157d525
RY(phi₄)
dffb17aee28d4da88474b8bf6cebc876--7fe466e6df9f46908dbda6fe2157d525
55308131d6f14553b2b5cd0d71dd64ef
RX(phi₇)
7fe466e6df9f46908dbda6fe2157d525--55308131d6f14553b2b5cd0d71dd64ef
ee6b7080e12540208f8d99ff8f90ad90
PHASE(phi_ent₀)
55308131d6f14553b2b5cd0d71dd64ef--ee6b7080e12540208f8d99ff8f90ad90
ee6b7080e12540208f8d99ff8f90ad90--52a510cd03b04a8d991227a939701dcc
46d372ae8b28439e93b66e71a2c23f36
ee6b7080e12540208f8d99ff8f90ad90--46d372ae8b28439e93b66e71a2c23f36
3d73f36065854717b3415641ef4606df
RX(phi₁₀)
46d372ae8b28439e93b66e71a2c23f36--3d73f36065854717b3415641ef4606df
62d274c5fefb4c2baba92561755929c7
RY(phi₁₃)
3d73f36065854717b3415641ef4606df--62d274c5fefb4c2baba92561755929c7
6a2473effd8448aebab4ec59c85b310c
RX(phi₁₆)
62d274c5fefb4c2baba92561755929c7--6a2473effd8448aebab4ec59c85b310c
527054975ce947458c064c63f374d369
PHASE(phi_ent₂)
6a2473effd8448aebab4ec59c85b310c--527054975ce947458c064c63f374d369
527054975ce947458c064c63f374d369--e5e57002ba334d92a8cf9eee49e575c9
994dc68fbab94c728433f15a7b56c049
527054975ce947458c064c63f374d369--994dc68fbab94c728433f15a7b56c049
994dc68fbab94c728433f15a7b56c049--529d07caba1d4e3782cc75eb9f6c6385
e364730f708c4a6f83ba9bc30ae1145b
c1a68d9abf3f4fb68bc8ebb30eac1243
RX(phi₂)
e32e22c1c7e1472b80bc0b38a75bf925--c1a68d9abf3f4fb68bc8ebb30eac1243
434b1bd112034c7d9f33b9f01c392238
RY(phi₅)
c1a68d9abf3f4fb68bc8ebb30eac1243--434b1bd112034c7d9f33b9f01c392238
9a816da942c944ce8910993a295ea66e
RX(phi₈)
434b1bd112034c7d9f33b9f01c392238--9a816da942c944ce8910993a295ea66e
65e37e3d66ed4e05887178bc2a0275dd
9a816da942c944ce8910993a295ea66e--65e37e3d66ed4e05887178bc2a0275dd
017c720856434958a6942e9976f464c9
PHASE(phi_ent₁)
65e37e3d66ed4e05887178bc2a0275dd--017c720856434958a6942e9976f464c9
017c720856434958a6942e9976f464c9--46d372ae8b28439e93b66e71a2c23f36
d6e3e881da15422fb433801b0cd29814
RX(phi₁₁)
017c720856434958a6942e9976f464c9--d6e3e881da15422fb433801b0cd29814
f8bc7a83970746bb807ed67f549f0d18
RY(phi₁₄)
d6e3e881da15422fb433801b0cd29814--f8bc7a83970746bb807ed67f549f0d18
d4508104586f4eefa77f19c612876131
RX(phi₁₇)
f8bc7a83970746bb807ed67f549f0d18--d4508104586f4eefa77f19c612876131
5286c2d1fd974f6d9dff5e2de0d13186
d4508104586f4eefa77f19c612876131--5286c2d1fd974f6d9dff5e2de0d13186
5d4362c4f9624ca3af6f429e4b64ba56
PHASE(phi_ent₃)
5286c2d1fd974f6d9dff5e2de0d13186--5d4362c4f9624ca3af6f429e4b64ba56
5d4362c4f9624ca3af6f429e4b64ba56--994dc68fbab94c728433f15a7b56c049
5d4362c4f9624ca3af6f429e4b64ba56--e364730f708c4a6f83ba9bc30ae1145b
Having a truly hardware-efficient ansatz means that the entangling operation can be chosen according to each device's native interactions. Besides digital operations, in Qadence it is also possible to build digital-analog HEAs with the entanglement produced by the natural evolution of a set of interacting qubits, as natively implemented in neutral atom devices. As with other digital-analog functions, this can be controlled with the strategy argument which can be chosen from the Strategy enum type. Currently, only Strategy.DIGITAL and Strategy.SDAQC are available. By default, calling strategy = Strategy.SDAQC will use a global entangling Hamiltonian with Ising-like \(NN\) interactions and constant interaction strength,
from qadence import Strategy
ansatz = hea (
n_qubits ,
depth = depth ,
strategy = Strategy . SDAQC
)
%3
cluster_9437d01b051746a1a8164f6102a3a8df
cluster_b1e87b5d3f2042748225a6cdc5bfc4c1
d727d5a3890948f99e0a7c7ce5cdba4c
0
9bc365bde4fa450b9c1c040cc4d974d5
RX(theta₀)
d727d5a3890948f99e0a7c7ce5cdba4c--9bc365bde4fa450b9c1c040cc4d974d5
170efd53b1414b4cb72dad74c902775b
1
84e062804c4443d490059bb3ce3bdcef
RY(theta₃)
9bc365bde4fa450b9c1c040cc4d974d5--84e062804c4443d490059bb3ce3bdcef
b2613470c27043abb8c465d831cf165d
RX(theta₆)
84e062804c4443d490059bb3ce3bdcef--b2613470c27043abb8c465d831cf165d
e4451a2e0add4d52a0c8d6d351ec5a1e
HamEvo
b2613470c27043abb8c465d831cf165d--e4451a2e0add4d52a0c8d6d351ec5a1e
9d3c9853ab9b442e8b7ac28daf23cba7
RX(theta₉)
e4451a2e0add4d52a0c8d6d351ec5a1e--9d3c9853ab9b442e8b7ac28daf23cba7
b365ea91cccc49618a24a095e44e118a
RY(theta₁₂)
9d3c9853ab9b442e8b7ac28daf23cba7--b365ea91cccc49618a24a095e44e118a
5444352afffd4c1eb963283f8d486720
RX(theta₁₅)
b365ea91cccc49618a24a095e44e118a--5444352afffd4c1eb963283f8d486720
f20246e61a62400aad0f206ba28302fa
HamEvo
5444352afffd4c1eb963283f8d486720--f20246e61a62400aad0f206ba28302fa
7e3a1f161b7844d5ad0b1d693855d3fb
f20246e61a62400aad0f206ba28302fa--7e3a1f161b7844d5ad0b1d693855d3fb
5c6ed5ca9e654df8ab5c2bb85f60854f
886a6415f350419da3e3b9957fc300a8
RX(theta₁)
170efd53b1414b4cb72dad74c902775b--886a6415f350419da3e3b9957fc300a8
957657e2c0674f468a061e1d97927255
2
cbdd5af119204694a5939341d970c26b
RY(theta₄)
886a6415f350419da3e3b9957fc300a8--cbdd5af119204694a5939341d970c26b
6b39887c16814ecd929760bb1cd84aab
RX(theta₇)
cbdd5af119204694a5939341d970c26b--6b39887c16814ecd929760bb1cd84aab
903d2074eadf441cae045975cdd95626
t = theta_t₀
6b39887c16814ecd929760bb1cd84aab--903d2074eadf441cae045975cdd95626
e18cddae2e504da6af9c7aac2daa22aa
RX(theta₁₀)
903d2074eadf441cae045975cdd95626--e18cddae2e504da6af9c7aac2daa22aa
32f397880f72404f8af2d45e8e6b8bdf
RY(theta₁₃)
e18cddae2e504da6af9c7aac2daa22aa--32f397880f72404f8af2d45e8e6b8bdf
7f62250db340467f96f6cadad03b7a4d
RX(theta₁₆)
32f397880f72404f8af2d45e8e6b8bdf--7f62250db340467f96f6cadad03b7a4d
f309ab9d95604b26912575a7992fc935
t = theta_t₁
7f62250db340467f96f6cadad03b7a4d--f309ab9d95604b26912575a7992fc935
f309ab9d95604b26912575a7992fc935--5c6ed5ca9e654df8ab5c2bb85f60854f
4cf65befd20d426cb0b1e4d8ec203eea
d811ced16f3d4fce8ec5aaa333ab62e1
RX(theta₂)
957657e2c0674f468a061e1d97927255--d811ced16f3d4fce8ec5aaa333ab62e1
8bbf0e216adc4b9da7527769c7cef55d
RY(theta₅)
d811ced16f3d4fce8ec5aaa333ab62e1--8bbf0e216adc4b9da7527769c7cef55d
518ada3e68fa41538c8ecf0eeaf94cac
RX(theta₈)
8bbf0e216adc4b9da7527769c7cef55d--518ada3e68fa41538c8ecf0eeaf94cac
ea1bb130f1b64977aae5d87276e7c22a
518ada3e68fa41538c8ecf0eeaf94cac--ea1bb130f1b64977aae5d87276e7c22a
3c91706bf3c84163aa08a9258205d3e5
RX(theta₁₁)
ea1bb130f1b64977aae5d87276e7c22a--3c91706bf3c84163aa08a9258205d3e5
9c207348fc034ea2832c1ae9c1a25a32
RY(theta₁₄)
3c91706bf3c84163aa08a9258205d3e5--9c207348fc034ea2832c1ae9c1a25a32
bd38913191f548d08070873ef483d635
RX(theta₁₇)
9c207348fc034ea2832c1ae9c1a25a32--bd38913191f548d08070873ef483d635
63c86534237e4c8ab61f7b7d13c8f22b
bd38913191f548d08070873ef483d635--63c86534237e4c8ab61f7b7d13c8f22b
63c86534237e4c8ab61f7b7d13c8f22b--4cf65befd20d426cb0b1e4d8ec203eea
Note that, by default, only the time-parameter is automatically parameterized when building a digital-analog HEA. However, as described in the Hamiltonians tutorial , arbitrary interaction Hamiltonians can be easily built with the hamiltonian_factory function, with both customized or fully parameterized interactions, and these can be directly passed as the entangler for a customizable digital-analog HEA.
from qadence import hamiltonian_factory , Interaction , N , Register , hea
# Build a parameterized neutral-atom Hamiltonian following a honeycomb_lattice:
register = Register . honeycomb_lattice ( 1 , 1 )
entangler = hamiltonian_factory (
register ,
interaction = Interaction . NN ,
detuning = N ,
interaction_strength = "e" ,
detuning_strength = "n"
)
# Build a fully parameterized Digital-Analog HEA:
n_qubits = register . n_qubits
depth = 2
ansatz = hea (
n_qubits = register . n_qubits ,
depth = depth ,
operations = [ RX , RY , RX ],
entangler = entangler ,
strategy = Strategy . SDAQC
)
%3
cluster_799098771b864d0b8573686dfcfd930f
cluster_c20c878438014180be4f9fe2e9356f15
222c1ccbeff7458998dc38d109396be8
0
9f9301d2ad4944398ed83bb0fc46923e
RX(theta₀)
222c1ccbeff7458998dc38d109396be8--9f9301d2ad4944398ed83bb0fc46923e
b71d2d20f7a7448ba8314745f8ed2708
1
5a7294947a7342fa9f6f890c23bb8205
RY(theta₆)
9f9301d2ad4944398ed83bb0fc46923e--5a7294947a7342fa9f6f890c23bb8205
365be5496ff847d7a841b1ae1bc689d7
RX(theta₁₂)
5a7294947a7342fa9f6f890c23bb8205--365be5496ff847d7a841b1ae1bc689d7
4d2867f266934cffb768aaca69377fda
365be5496ff847d7a841b1ae1bc689d7--4d2867f266934cffb768aaca69377fda
9d47eb8e44414937833762bbe45744b2
RX(theta₁₈)
4d2867f266934cffb768aaca69377fda--9d47eb8e44414937833762bbe45744b2
0ce0714676a14964bcc609c5131e5360
RY(theta₂₄)
9d47eb8e44414937833762bbe45744b2--0ce0714676a14964bcc609c5131e5360
49babe43e7f3473fbd53557179060c11
RX(theta₃₀)
0ce0714676a14964bcc609c5131e5360--49babe43e7f3473fbd53557179060c11
f153b1c468ec4319a846c07392f14a88
49babe43e7f3473fbd53557179060c11--f153b1c468ec4319a846c07392f14a88
a9ce1e1f8512497180fe490849f49480
f153b1c468ec4319a846c07392f14a88--a9ce1e1f8512497180fe490849f49480
52f05be0841246cf9ab7a2136feefa1f
fddee5d8feb54b7590aa7781c4196452
RX(theta₁)
b71d2d20f7a7448ba8314745f8ed2708--fddee5d8feb54b7590aa7781c4196452
d7ff7b61d2e64476b7ce39b505239ce3
2
04d74393f55c401d96961d2af181ee77
RY(theta₇)
fddee5d8feb54b7590aa7781c4196452--04d74393f55c401d96961d2af181ee77
df7b2e6573cb4a98a1570064158d877a
RX(theta₁₃)
04d74393f55c401d96961d2af181ee77--df7b2e6573cb4a98a1570064158d877a
65c207ac59df4aa8a1241aee9aaa1cb1
df7b2e6573cb4a98a1570064158d877a--65c207ac59df4aa8a1241aee9aaa1cb1
823a2cf3d4de494dbdb6148d199546ef
RX(theta₁₉)
65c207ac59df4aa8a1241aee9aaa1cb1--823a2cf3d4de494dbdb6148d199546ef
2f8219a2be4a4100abc481473a083398
RY(theta₂₅)
823a2cf3d4de494dbdb6148d199546ef--2f8219a2be4a4100abc481473a083398
cebfa87f6e37442b8793f5e729b1d4d6
RX(theta₃₁)
2f8219a2be4a4100abc481473a083398--cebfa87f6e37442b8793f5e729b1d4d6
744534cbb7ab4cf2bbee46a9497555f0
cebfa87f6e37442b8793f5e729b1d4d6--744534cbb7ab4cf2bbee46a9497555f0
744534cbb7ab4cf2bbee46a9497555f0--52f05be0841246cf9ab7a2136feefa1f
4960dc2e62f94c9881ec7e27e3408f0b
7eff08bc313040579f28216de1196eb6
RX(theta₂)
d7ff7b61d2e64476b7ce39b505239ce3--7eff08bc313040579f28216de1196eb6
e4de8855ee2a429a9804d2c9cdc9e084
3
890b940d004b46a1a0a7cfe82ad6f560
RY(theta₈)
7eff08bc313040579f28216de1196eb6--890b940d004b46a1a0a7cfe82ad6f560
fd6d4d33bf4e477b9443231b6c3a5d4d
RX(theta₁₄)
890b940d004b46a1a0a7cfe82ad6f560--fd6d4d33bf4e477b9443231b6c3a5d4d
6fb94e284c384991bf1c5c83bffce2ad
HamEvo
fd6d4d33bf4e477b9443231b6c3a5d4d--6fb94e284c384991bf1c5c83bffce2ad
003bbe36374c46599cfb49c479cb326a
RX(theta₂₀)
6fb94e284c384991bf1c5c83bffce2ad--003bbe36374c46599cfb49c479cb326a
dd41768ffe3d49f0b5891d703e111d95
RY(theta₂₆)
003bbe36374c46599cfb49c479cb326a--dd41768ffe3d49f0b5891d703e111d95
9a6cd5b2e39442faa9b637456c9d51f6
RX(theta₃₂)
dd41768ffe3d49f0b5891d703e111d95--9a6cd5b2e39442faa9b637456c9d51f6
e26536d12ba14c6aa499faf8185710fe
HamEvo
9a6cd5b2e39442faa9b637456c9d51f6--e26536d12ba14c6aa499faf8185710fe
e26536d12ba14c6aa499faf8185710fe--4960dc2e62f94c9881ec7e27e3408f0b
41ddfca4ea2142978ef865ec06eed7c6
160a972bf8834b50a811485a9f02525d
RX(theta₃)
e4de8855ee2a429a9804d2c9cdc9e084--160a972bf8834b50a811485a9f02525d
5dcce922555d4ce189f461f8ed538e9e
4
f9add111ef1143ec9715bd4423f07f70
RY(theta₉)
160a972bf8834b50a811485a9f02525d--f9add111ef1143ec9715bd4423f07f70
84c51ced39e64ba38ad5fc6082c3173b
RX(theta₁₅)
f9add111ef1143ec9715bd4423f07f70--84c51ced39e64ba38ad5fc6082c3173b
6d09ce9544d04627aa1ec63738c88cbd
t = theta_t₀
84c51ced39e64ba38ad5fc6082c3173b--6d09ce9544d04627aa1ec63738c88cbd
57c3d73a5c304f779717b336b409da01
RX(theta₂₁)
6d09ce9544d04627aa1ec63738c88cbd--57c3d73a5c304f779717b336b409da01
12ee995a137a42caa74fb443ff992d5f
RY(theta₂₇)
57c3d73a5c304f779717b336b409da01--12ee995a137a42caa74fb443ff992d5f
c5b5ce75eb4e4f3e863ddb5b9c8b6de5
RX(theta₃₃)
12ee995a137a42caa74fb443ff992d5f--c5b5ce75eb4e4f3e863ddb5b9c8b6de5
cef4009ef120415b9b9874a60ef2cfe5
t = theta_t₁
c5b5ce75eb4e4f3e863ddb5b9c8b6de5--cef4009ef120415b9b9874a60ef2cfe5
cef4009ef120415b9b9874a60ef2cfe5--41ddfca4ea2142978ef865ec06eed7c6
f9becd16ae724cc995bd1000f6896999
13e1337d67da4dbf892a4db13fb016a1
RX(theta₄)
5dcce922555d4ce189f461f8ed538e9e--13e1337d67da4dbf892a4db13fb016a1
a3f41178e4074844b0841a0442f9e548
5
9a0bf35931914feab46cf0ed2be5d75d
RY(theta₁₀)
13e1337d67da4dbf892a4db13fb016a1--9a0bf35931914feab46cf0ed2be5d75d
53889f84e69949e6bcddd493110d747d
RX(theta₁₆)
9a0bf35931914feab46cf0ed2be5d75d--53889f84e69949e6bcddd493110d747d
f99da17e03674a44ab10a6240c4fe5a3
53889f84e69949e6bcddd493110d747d--f99da17e03674a44ab10a6240c4fe5a3
c4c195e2da5445d0984e9b65a5a01080
RX(theta₂₂)
f99da17e03674a44ab10a6240c4fe5a3--c4c195e2da5445d0984e9b65a5a01080
32b9435707ce4fba976f427075c2b16c
RY(theta₂₈)
c4c195e2da5445d0984e9b65a5a01080--32b9435707ce4fba976f427075c2b16c
fc10f359895d42b1956d39767c54d89b
RX(theta₃₄)
32b9435707ce4fba976f427075c2b16c--fc10f359895d42b1956d39767c54d89b
54541a12e8864fe09098006d5b01294a
fc10f359895d42b1956d39767c54d89b--54541a12e8864fe09098006d5b01294a
54541a12e8864fe09098006d5b01294a--f9becd16ae724cc995bd1000f6896999
297d7f68342d428697d27562c6723afd
486312cf5a7143e78a267fa10e823120
RX(theta₅)
a3f41178e4074844b0841a0442f9e548--486312cf5a7143e78a267fa10e823120
8a656eebc43b478dbf48a9693cc2db36
RY(theta₁₁)
486312cf5a7143e78a267fa10e823120--8a656eebc43b478dbf48a9693cc2db36
cee97b7aa0e14ef89f9fa9a2477b8332
RX(theta₁₇)
8a656eebc43b478dbf48a9693cc2db36--cee97b7aa0e14ef89f9fa9a2477b8332
7eb0787408734db0959e5be4aa366998
cee97b7aa0e14ef89f9fa9a2477b8332--7eb0787408734db0959e5be4aa366998
f940f8cf1cc44fbda9775d763837f922
RX(theta₂₃)
7eb0787408734db0959e5be4aa366998--f940f8cf1cc44fbda9775d763837f922
65e7e57f2d984ec4bd11b9a6d5957514
RY(theta₂₉)
f940f8cf1cc44fbda9775d763837f922--65e7e57f2d984ec4bd11b9a6d5957514
eb2ec088d62b4e9f92971a8665f86e79
RX(theta₃₅)
65e7e57f2d984ec4bd11b9a6d5957514--eb2ec088d62b4e9f92971a8665f86e79
0fc4bab208e44f3f8fd0dc631f579a83
eb2ec088d62b4e9f92971a8665f86e79--0fc4bab208e44f3f8fd0dc631f579a83
0fc4bab208e44f3f8fd0dc631f579a83--297d7f68342d428697d27562c6723afd
Identity-initialized ansatz
It is widely known that parametrized quantum circuits are characterized by barren plateaus, where the gradient becomes exponentially small in the number of qubits. Here we include one of many techniques that have been proposed in recent years to mitigate this effect and facilitate QNNs training: Grant et al. showed that initializing the weights of a QNN so that each block of the circuit evaluates to identity reduces the effect of barren plateaus in the initial stage of training. In a similar fashion to hea, such circuit can be created via calling the associated function, identity_initialized_ansatz:
from qadence.constructors import identity_initialized_ansatz
from qadence.draw import display
n_qubits = 3
depth = 2
ansatz = identity_initialized_ansatz ( n_qubits , depth )
%3
cluster_52924742cea5413c949229035a22298d
BPMA-1
cluster_2b1e1597aa3c46699c4c3d5304ba3382
BPMA-0
77e5fe03b77c45eb8c4d07d69cca4474
0
75baad560499479f812cb3132b6d4b47
RX(iia_α₀₀)
77e5fe03b77c45eb8c4d07d69cca4474--75baad560499479f812cb3132b6d4b47
8272bdae5cef40a8aa9a7b2e7134e889
1
bccad5578d6c48dd999af3b51bbd853f
RY(iia_α₀₃)
75baad560499479f812cb3132b6d4b47--bccad5578d6c48dd999af3b51bbd853f
895195cbc4be4d74bf3938bab5da8f51
bccad5578d6c48dd999af3b51bbd853f--895195cbc4be4d74bf3938bab5da8f51
00b76c95f8b346ff843418dc0cb7fdf5
895195cbc4be4d74bf3938bab5da8f51--00b76c95f8b346ff843418dc0cb7fdf5
7915c55d4053401b82592fb764583d6c
RX(iia_γ₀₀)
00b76c95f8b346ff843418dc0cb7fdf5--7915c55d4053401b82592fb764583d6c
ac694491773d4aa4a8fa5998a92a4857
7915c55d4053401b82592fb764583d6c--ac694491773d4aa4a8fa5998a92a4857
1008c6afabaf41a3ab37ba87c328b42e
ac694491773d4aa4a8fa5998a92a4857--1008c6afabaf41a3ab37ba87c328b42e
77d108714838424ebaf77fc2b98236f0
RY(iia_β₀₃)
1008c6afabaf41a3ab37ba87c328b42e--77d108714838424ebaf77fc2b98236f0
e6acefe50f7f4957a1e5979bb27de5cb
RX(iia_β₀₀)
77d108714838424ebaf77fc2b98236f0--e6acefe50f7f4957a1e5979bb27de5cb
00d1e2840dc84720883b4d088b9fd685
RX(iia_α₁₀)
e6acefe50f7f4957a1e5979bb27de5cb--00d1e2840dc84720883b4d088b9fd685
0717f9c953d445d3a2caf2c474462de6
RY(iia_α₁₃)
00d1e2840dc84720883b4d088b9fd685--0717f9c953d445d3a2caf2c474462de6
cfba46016ee94cd38a805ed56367aea1
0717f9c953d445d3a2caf2c474462de6--cfba46016ee94cd38a805ed56367aea1
dd39745ab32346e2a99e34d4708e0bbb
cfba46016ee94cd38a805ed56367aea1--dd39745ab32346e2a99e34d4708e0bbb
82138f77868241459a17e04f7e02cd5b
RX(iia_γ₁₀)
dd39745ab32346e2a99e34d4708e0bbb--82138f77868241459a17e04f7e02cd5b
58e87efa79c248d0bade8afd2afb3a90
82138f77868241459a17e04f7e02cd5b--58e87efa79c248d0bade8afd2afb3a90
21e9e7d85a7847cea82d2eca30236d9e
58e87efa79c248d0bade8afd2afb3a90--21e9e7d85a7847cea82d2eca30236d9e
bf051a495b6e43b7b168be268572de6b
RY(iia_β₁₃)
21e9e7d85a7847cea82d2eca30236d9e--bf051a495b6e43b7b168be268572de6b
2eacabb209fc48d3a1f90d052bc7826d
RX(iia_β₁₀)
bf051a495b6e43b7b168be268572de6b--2eacabb209fc48d3a1f90d052bc7826d
9098b4a8afae44468e0275e0af4b1db0
2eacabb209fc48d3a1f90d052bc7826d--9098b4a8afae44468e0275e0af4b1db0
5337cb7857044907be4a6d44927c6bdf
c3f9a39de78b41419e3f7d7e2d444b6a
RX(iia_α₀₁)
8272bdae5cef40a8aa9a7b2e7134e889--c3f9a39de78b41419e3f7d7e2d444b6a
7283e650ac40423280a4d095944b5576
2
31550d214a3c4b99b33301eb29890f92
RY(iia_α₀₄)
c3f9a39de78b41419e3f7d7e2d444b6a--31550d214a3c4b99b33301eb29890f92
b35a1dc54d1244538b5a23b307fd6325
X
31550d214a3c4b99b33301eb29890f92--b35a1dc54d1244538b5a23b307fd6325
b35a1dc54d1244538b5a23b307fd6325--895195cbc4be4d74bf3938bab5da8f51
f78200e809e3466e98ab7418dcb521dd
b35a1dc54d1244538b5a23b307fd6325--f78200e809e3466e98ab7418dcb521dd
2a17d23620924113ae4f5105d8896cd3
RX(iia_γ₀₁)
f78200e809e3466e98ab7418dcb521dd--2a17d23620924113ae4f5105d8896cd3
579a5c71035e40078e84cd0895bc4912
2a17d23620924113ae4f5105d8896cd3--579a5c71035e40078e84cd0895bc4912
77a15a0900814723aabb7990be30da64
X
579a5c71035e40078e84cd0895bc4912--77a15a0900814723aabb7990be30da64
77a15a0900814723aabb7990be30da64--1008c6afabaf41a3ab37ba87c328b42e
660978d6d6214b05b840a63e32bfbb56
RY(iia_β₀₄)
77a15a0900814723aabb7990be30da64--660978d6d6214b05b840a63e32bfbb56
7d6d439ae70b4b9898685f2db56d917b
RX(iia_β₀₁)
660978d6d6214b05b840a63e32bfbb56--7d6d439ae70b4b9898685f2db56d917b
a10442ecc223473291bfb98fb1ed7eab
RX(iia_α₁₁)
7d6d439ae70b4b9898685f2db56d917b--a10442ecc223473291bfb98fb1ed7eab
02be1f4d07db461ba56e8008a9668ca2
RY(iia_α₁₄)
a10442ecc223473291bfb98fb1ed7eab--02be1f4d07db461ba56e8008a9668ca2
a31124fee9bf458980660950b5464e5b
X
02be1f4d07db461ba56e8008a9668ca2--a31124fee9bf458980660950b5464e5b
a31124fee9bf458980660950b5464e5b--cfba46016ee94cd38a805ed56367aea1
e3773b72f21145d892f36c51fbaea97a
a31124fee9bf458980660950b5464e5b--e3773b72f21145d892f36c51fbaea97a
a146076c4dd04165b3c65164bc17627a
RX(iia_γ₁₁)
e3773b72f21145d892f36c51fbaea97a--a146076c4dd04165b3c65164bc17627a
b0d7667439a3435aa4682dc382de310d
a146076c4dd04165b3c65164bc17627a--b0d7667439a3435aa4682dc382de310d
7bcf744ccf524ea5867604474b2220ad
X
b0d7667439a3435aa4682dc382de310d--7bcf744ccf524ea5867604474b2220ad
7bcf744ccf524ea5867604474b2220ad--21e9e7d85a7847cea82d2eca30236d9e
299a4515427d4ff58db83d64c31b0b1b
RY(iia_β₁₄)
7bcf744ccf524ea5867604474b2220ad--299a4515427d4ff58db83d64c31b0b1b
4fd95697e6b641e9b80c314ae3683e89
RX(iia_β₁₁)
299a4515427d4ff58db83d64c31b0b1b--4fd95697e6b641e9b80c314ae3683e89
4fd95697e6b641e9b80c314ae3683e89--5337cb7857044907be4a6d44927c6bdf
e534a2a9e4b54941ac97abcdc8f78963
d3df0557537e4e349364c402367e239c
RX(iia_α₀₂)
7283e650ac40423280a4d095944b5576--d3df0557537e4e349364c402367e239c
686fcdbe61564a81b168c0768981c4aa
RY(iia_α₀₅)
d3df0557537e4e349364c402367e239c--686fcdbe61564a81b168c0768981c4aa
704b63b663f74e24a3bebe51c098d098
686fcdbe61564a81b168c0768981c4aa--704b63b663f74e24a3bebe51c098d098
676cb9f9157348d383c75958d4517eff
X
704b63b663f74e24a3bebe51c098d098--676cb9f9157348d383c75958d4517eff
676cb9f9157348d383c75958d4517eff--f78200e809e3466e98ab7418dcb521dd
d46bcea9317040819ad7fee6e7b9b471
RX(iia_γ₀₂)
676cb9f9157348d383c75958d4517eff--d46bcea9317040819ad7fee6e7b9b471
af5923e02eb14b42adf97ba92b945e96
X
d46bcea9317040819ad7fee6e7b9b471--af5923e02eb14b42adf97ba92b945e96
af5923e02eb14b42adf97ba92b945e96--579a5c71035e40078e84cd0895bc4912
a4090b422d424bb899ca7931b30fadd5
af5923e02eb14b42adf97ba92b945e96--a4090b422d424bb899ca7931b30fadd5
9769922e82364316b4a1d22280d18a4f
RY(iia_β₀₅)
a4090b422d424bb899ca7931b30fadd5--9769922e82364316b4a1d22280d18a4f
4cf26797e73b42d2b30e0b9843dcd9b3
RX(iia_β₀₂)
9769922e82364316b4a1d22280d18a4f--4cf26797e73b42d2b30e0b9843dcd9b3
13ddc61f0839475ba69fd853d73a705b
RX(iia_α₁₂)
4cf26797e73b42d2b30e0b9843dcd9b3--13ddc61f0839475ba69fd853d73a705b
aab50f5bd7974f05ac6501a3770dd3f1
RY(iia_α₁₅)
13ddc61f0839475ba69fd853d73a705b--aab50f5bd7974f05ac6501a3770dd3f1
ee779eaee02a43b09e4f1b4cb1c9fcba
aab50f5bd7974f05ac6501a3770dd3f1--ee779eaee02a43b09e4f1b4cb1c9fcba
290e4d26bc3e4553a017cd19fc035c80
X
ee779eaee02a43b09e4f1b4cb1c9fcba--290e4d26bc3e4553a017cd19fc035c80
290e4d26bc3e4553a017cd19fc035c80--e3773b72f21145d892f36c51fbaea97a
8c6f9524de94469f83b8666eb8b6edea
RX(iia_γ₁₂)
290e4d26bc3e4553a017cd19fc035c80--8c6f9524de94469f83b8666eb8b6edea
e6e4f25d8e1d41c496bae818174cfaef
X
8c6f9524de94469f83b8666eb8b6edea--e6e4f25d8e1d41c496bae818174cfaef
e6e4f25d8e1d41c496bae818174cfaef--b0d7667439a3435aa4682dc382de310d
34639c64fb8046a5afe62434ddd75463
e6e4f25d8e1d41c496bae818174cfaef--34639c64fb8046a5afe62434ddd75463
52690da2a13d48a2a46814821521c6a0
RY(iia_β₁₅)
34639c64fb8046a5afe62434ddd75463--52690da2a13d48a2a46814821521c6a0
de94addb692d4f4596f1b6b62c7ab71e
RX(iia_β₁₂)
52690da2a13d48a2a46814821521c6a0--de94addb692d4f4596f1b6b62c7ab71e
de94addb692d4f4596f1b6b62c7ab71e--e534a2a9e4b54941ac97abcdc8f78963