Skip to content

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_79906ed7de6744a698323e84aacd60d3 Constant Chebyshev FM cluster_89fbdbb0395143ef88c4ef476b04fd03 Constant Fourier FM f3116987e9f84e57b21d43f05d68a5df 0 916454c0ccb3434f809d3deae50115c6 RX(phi) f3116987e9f84e57b21d43f05d68a5df--916454c0ccb3434f809d3deae50115c6 09995121c8de458ca5a89fb7caae9a80 1 67e8e477bd9948da8084ccc280f17b6c RX(acos(phi)) 916454c0ccb3434f809d3deae50115c6--67e8e477bd9948da8084ccc280f17b6c f2d7fa8d182542ecaddb8ecc12818df6 67e8e477bd9948da8084ccc280f17b6c--f2d7fa8d182542ecaddb8ecc12818df6 833a21ee7a6542c78a5e5f8e3ec3d1ec 6a1515ff35514537b5f919c511e92a96 RX(phi) 09995121c8de458ca5a89fb7caae9a80--6a1515ff35514537b5f919c511e92a96 f7f0ac7383cc4032bbec282ca729fa9e 2 faf7aa040d4146acba64846fa9481711 RX(acos(phi)) 6a1515ff35514537b5f919c511e92a96--faf7aa040d4146acba64846fa9481711 faf7aa040d4146acba64846fa9481711--833a21ee7a6542c78a5e5f8e3ec3d1ec e5f15a71505b459d9910e78ab87a818b 9cd064db5260438c9c07eb5c44c9679d RX(phi) f7f0ac7383cc4032bbec282ca729fa9e--9cd064db5260438c9c07eb5c44c9679d 8564c13fdc0842d7ac91062d86c562cc RX(acos(phi)) 9cd064db5260438c9c07eb5c44c9679d--8564c13fdc0842d7ac91062d86c562cc 8564c13fdc0842d7ac91062d86c562cc--e5f15a71505b459d9910e78ab87a818b

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 sub-class of Function
class custom_func(Function):
    @classmethod
    def eval(cls, x):
        return asin(x) + x**2

custom_fm_1 = feature_map(n_qubits, fm_type=custom_func)

block = chain(custom_fm_0, custom_fm_1)
%3 cluster_c7bf43b35c704cf5b03d16488a05471d Constant custom_func FM cluster_d1ee2091932240919c4d4d29c9f09a2f Constant asin FM 582c31c7b87d45ba94cc8929ced3a4d6 0 45434dd7eb57426b897e1f86896d640b RX(asin(phi)) 582c31c7b87d45ba94cc8929ced3a4d6--45434dd7eb57426b897e1f86896d640b 6f3b26700903477d8858acb0ac332c43 1 d854ef9e045044ca8b2efae967bf1f59 RX(phi**2 + asin(phi)) 45434dd7eb57426b897e1f86896d640b--d854ef9e045044ca8b2efae967bf1f59 e1ed9c041206446a813893177c2c0170 d854ef9e045044ca8b2efae967bf1f59--e1ed9c041206446a813893177c2c0170 ee4adf8554794798b0327c48ef29201f f91390d61bd342ada994d02df4489438 RX(asin(phi)) 6f3b26700903477d8858acb0ac332c43--f91390d61bd342ada994d02df4489438 cbca022f34cc425393345aa2db42782c 2 3eaeda1cfc7e4c509b9c47a1954b7edd RX(phi**2 + asin(phi)) f91390d61bd342ada994d02df4489438--3eaeda1cfc7e4c509b9c47a1954b7edd 3eaeda1cfc7e4c509b9c47a1954b7edd--ee4adf8554794798b0327c48ef29201f a8f23d94b7a44530ac1bfc97f50d47fa aba2b5c717bb4b55973edfc898882c89 RX(asin(phi)) cbca022f34cc425393345aa2db42782c--aba2b5c717bb4b55973edfc898882c89 79ffea66804340e4905ae5db460f4f75 RX(phi**2 + asin(phi)) aba2b5c717bb4b55973edfc898882c89--79ffea66804340e4905ae5db460f4f75 79ffea66804340e4905ae5db460f4f75--a8f23d94b7a44530ac1bfc97f50d47fa

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_a8921b15ac734fb297903bc0e3a3a903 Exponential Fourier FM cluster_8550f18038a34c738dce37952c66afc6 Constant Fourier FM cluster_341670b8260645f5be84c1fd2ff01721 Tower Fourier FM e0182d53bab34fd6bc6ccbb99b3afcd6 0 c1c9ddfe574444efa1272b2211074b95 RX(phi) e0182d53bab34fd6bc6ccbb99b3afcd6--c1c9ddfe574444efa1272b2211074b95 a14f4398d7e84c599732fc254431be68 1 b932ff12a5bb4eb6aea647759da63cc7 RX(1.0*phi) c1c9ddfe574444efa1272b2211074b95--b932ff12a5bb4eb6aea647759da63cc7 d29c1543efe2465eaf5a84ed077eb9b3 RX(1.0*phi) b932ff12a5bb4eb6aea647759da63cc7--d29c1543efe2465eaf5a84ed077eb9b3 162281a7e4d64da4882fc8c071554102 d29c1543efe2465eaf5a84ed077eb9b3--162281a7e4d64da4882fc8c071554102 85fe181cd223410c936f48ae08a8ade9 d94f532c79d744508589391b1b3a160b RX(phi) a14f4398d7e84c599732fc254431be68--d94f532c79d744508589391b1b3a160b 6b0ef50ac2d044cea59c4e1a2691886b 2 00556cb4c47c4e928fd3ded1bea70680 RX(2.0*phi) d94f532c79d744508589391b1b3a160b--00556cb4c47c4e928fd3ded1bea70680 07162e3055f44df99e5cf43c33bd4711 RX(2.0*phi) 00556cb4c47c4e928fd3ded1bea70680--07162e3055f44df99e5cf43c33bd4711 07162e3055f44df99e5cf43c33bd4711--85fe181cd223410c936f48ae08a8ade9 908e7e929e70454d8876eb650d4dfbe1 71862618e3084fb9a70aa5475b385cdf RX(phi) 6b0ef50ac2d044cea59c4e1a2691886b--71862618e3084fb9a70aa5475b385cdf 89c1c76a691344ad80db234055e82591 3 3006f0b96a694c7ba95c47d82a1cb057 RX(3.0*phi) 71862618e3084fb9a70aa5475b385cdf--3006f0b96a694c7ba95c47d82a1cb057 aa9070b67f1c48e3a2d9232aaea5a6a4 RX(4.0*phi) 3006f0b96a694c7ba95c47d82a1cb057--aa9070b67f1c48e3a2d9232aaea5a6a4 aa9070b67f1c48e3a2d9232aaea5a6a4--908e7e929e70454d8876eb650d4dfbe1 708066544b6a48b0a4d7364789cd9207 1116b846b40f4662bfce2dbf6f008576 RX(phi) 89c1c76a691344ad80db234055e82591--1116b846b40f4662bfce2dbf6f008576 3c479d5d3b8b450d8c3ba27bfc4bdc2f 4 67c47f4c8a394cdba1313f981c50c2c6 RX(4.0*phi) 1116b846b40f4662bfce2dbf6f008576--67c47f4c8a394cdba1313f981c50c2c6 3e4d8cc1c3354a78995593ad246918ae RX(8.0*phi) 67c47f4c8a394cdba1313f981c50c2c6--3e4d8cc1c3354a78995593ad246918ae 3e4d8cc1c3354a78995593ad246918ae--708066544b6a48b0a4d7364789cd9207 3697326590804b0c84284a94cf8eb15e e37bf5f535d74edb99291b39eafa8eef RX(phi) 3c479d5d3b8b450d8c3ba27bfc4bdc2f--e37bf5f535d74edb99291b39eafa8eef 6cd7fb284f244394b8ae8c4d3c7bc86f RX(5.0*phi) e37bf5f535d74edb99291b39eafa8eef--6cd7fb284f244394b8ae8c4d3c7bc86f 058b71323fed42f2b78ec49a3bdbcadc RX(16.0*phi) 6cd7fb284f244394b8ae8c4d3c7bc86f--058b71323fed42f2b78ec49a3bdbcadc 058b71323fed42f2b78ec49a3bdbcadc--3697326590804b0c84284a94cf8eb15e

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 be1259e7a6e74333b2e960a191f2e098 0 de161b0cfca14a2c810c2fc4c211e135 RX(1.0*acos(phi)) be1259e7a6e74333b2e960a191f2e098--de161b0cfca14a2c810c2fc4c211e135 0bf79bb9e5114efda67afcffd1865a54 1 fa65808dac3a46a4a8161557729e2838 de161b0cfca14a2c810c2fc4c211e135--fa65808dac3a46a4a8161557729e2838 571b7ca132f14f3fae061fa5f24a30d7 680740a3400d4fa48352284fd99c7271 RX(1.414*acos(phi)) 0bf79bb9e5114efda67afcffd1865a54--680740a3400d4fa48352284fd99c7271 58704383116a4a36a656cccb43fb7ec2 2 680740a3400d4fa48352284fd99c7271--571b7ca132f14f3fae061fa5f24a30d7 677e9ea9e5574b96999e825083a2c431 c15be965343d43f2a2b59dcade325d03 RX(1.732*acos(phi)) 58704383116a4a36a656cccb43fb7ec2--c15be965343d43f2a2b59dcade325d03 7dd40c58bb7e4a8888347b7f9ec41fff 3 c15be965343d43f2a2b59dcade325d03--677e9ea9e5574b96999e825083a2c431 b1202f0ffbbf4b788cb788ff8dc89923 ff8f87b23a174158a652389288ff33c8 RX(2.0*acos(phi)) 7dd40c58bb7e4a8888347b7f9ec41fff--ff8f87b23a174158a652389288ff33c8 680cf8dd500945a8ba865699e7a5f23a 4 ff8f87b23a174158a652389288ff33c8--b1202f0ffbbf4b788cb788ff8dc89923 fc1df1b29f13423681f3d2397e861b83 9b417b2505f84d9ebe52457c2339756f RX(2.236*acos(phi)) 680cf8dd500945a8ba865699e7a5f23a--9b417b2505f84d9ebe52457c2339756f 9b417b2505f84d9ebe52457c2339756f--fc1df1b29f13423681f3d2397e861b83

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
)
%3 c970f7bfb64b41f497130cc45a50574b 0 a2666c71b0614bbaa146d659e3dcf441 RY(80.0*acos(0.667*x + 1.667)) c970f7bfb64b41f497130cc45a50574b--a2666c71b0614bbaa146d659e3dcf441 1cc7a85e408a4932b028fc7b79d519cf 1 9f1ab67959eb495aae5e5d1e21d600c3 a2666c71b0614bbaa146d659e3dcf441--9f1ab67959eb495aae5e5d1e21d600c3 05379acf43b74a38aaab9696181b415a 112b5885518a4019a0ab0e713aad583f RY(40.0*acos(0.667*x + 1.667)) 1cc7a85e408a4932b028fc7b79d519cf--112b5885518a4019a0ab0e713aad583f 6cad895f4466456cad33498d34451b4b 2 112b5885518a4019a0ab0e713aad583f--05379acf43b74a38aaab9696181b415a d12dd72752624942bbaac7f32a9ccf42 eaa1391b2b5d4bb78e04f87696525084 RY(20.0*acos(0.667*x + 1.667)) 6cad895f4466456cad33498d34451b4b--eaa1391b2b5d4bb78e04f87696525084 7c3b1c9657bd4e0297f9eeb08ddcafc6 3 eaa1391b2b5d4bb78e04f87696525084--d12dd72752624942bbaac7f32a9ccf42 12420ee9688f4ec684d70e296c4e2c12 65eea6f1dcc8406e8328dc820f618be3 RY(10.0*acos(0.667*x + 1.667)) 7c3b1c9657bd4e0297f9eeb08ddcafc6--65eea6f1dcc8406e8328dc820f618be3 71a7c956d8454b119389d2a4049bf75e 4 65eea6f1dcc8406e8328dc820f618be3--12420ee9688f4ec684d70e296c4e2c12 8af2f973157841aeb2308c168b620226 a1bf251f3d72482c9593b5ee6fd023ec RY(5.0*acos(0.667*x + 1.667)) 71a7c956d8454b119389d2a4049bf75e--a1bf251f3d72482c9593b5ee6fd023ec a1bf251f3d72482c9593b5ee6fd023ec--8af2f973157841aeb2308c168b620226

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 ec072ccb805c412aa06c276362c3e8b5 0 12c1258a662d497081c1fb776701ed52 RX(theta₀) ec072ccb805c412aa06c276362c3e8b5--12c1258a662d497081c1fb776701ed52 b1fae1d44a694aa7b6bef651d6656c9d 1 95a6014ab816427e8719e9f3d2d71629 RY(theta₃) 12c1258a662d497081c1fb776701ed52--95a6014ab816427e8719e9f3d2d71629 214aafc8dcba45de88b3605069293549 RX(theta₆) 95a6014ab816427e8719e9f3d2d71629--214aafc8dcba45de88b3605069293549 7e0fd3fee2684a4e87b44077b0d70ece 214aafc8dcba45de88b3605069293549--7e0fd3fee2684a4e87b44077b0d70ece cc0ed36337c74456a2f81896d8f2a62a 7e0fd3fee2684a4e87b44077b0d70ece--cc0ed36337c74456a2f81896d8f2a62a 5829b609cb004519a14625031696b512 RX(theta₉) cc0ed36337c74456a2f81896d8f2a62a--5829b609cb004519a14625031696b512 7445a5dbe08a47c0bc2ae133e8221c76 RY(theta₁₂) 5829b609cb004519a14625031696b512--7445a5dbe08a47c0bc2ae133e8221c76 0fd93d68ce964e7fabee269c153d1a22 RX(theta₁₅) 7445a5dbe08a47c0bc2ae133e8221c76--0fd93d68ce964e7fabee269c153d1a22 5bee2f892632459c8b7ae85e9977d345 0fd93d68ce964e7fabee269c153d1a22--5bee2f892632459c8b7ae85e9977d345 9bf95f9825964060b53d10240cc9fa2a 5bee2f892632459c8b7ae85e9977d345--9bf95f9825964060b53d10240cc9fa2a 23966fd53ed44fb887b94dd229d1fde3 9bf95f9825964060b53d10240cc9fa2a--23966fd53ed44fb887b94dd229d1fde3 d260b0e07fb44327a037e14734d921b3 18285a3361de4c59b1d536e353164b8e RX(theta₁) b1fae1d44a694aa7b6bef651d6656c9d--18285a3361de4c59b1d536e353164b8e 477318915b8e4ae9990d6be62cc39500 2 acb34a8839a84827865aa43590ae2f72 RY(theta₄) 18285a3361de4c59b1d536e353164b8e--acb34a8839a84827865aa43590ae2f72 3d1cb43a76b04ab8bcda04f893351064 RX(theta₇) acb34a8839a84827865aa43590ae2f72--3d1cb43a76b04ab8bcda04f893351064 a2b56bfccb2e455897856431666a700a X 3d1cb43a76b04ab8bcda04f893351064--a2b56bfccb2e455897856431666a700a a2b56bfccb2e455897856431666a700a--7e0fd3fee2684a4e87b44077b0d70ece 554e186e9a00476aa9e502fbd12e4d8a a2b56bfccb2e455897856431666a700a--554e186e9a00476aa9e502fbd12e4d8a 58520bff52034950900c3a2a6a9cbbf1 RX(theta₁₀) 554e186e9a00476aa9e502fbd12e4d8a--58520bff52034950900c3a2a6a9cbbf1 2c9c233a21d84b05ab7b9135e816408f RY(theta₁₃) 58520bff52034950900c3a2a6a9cbbf1--2c9c233a21d84b05ab7b9135e816408f c9d7446a64194d1db82b865432027a6e RX(theta₁₆) 2c9c233a21d84b05ab7b9135e816408f--c9d7446a64194d1db82b865432027a6e d3542850f31c4ea580bce08dc02d27d7 X c9d7446a64194d1db82b865432027a6e--d3542850f31c4ea580bce08dc02d27d7 d3542850f31c4ea580bce08dc02d27d7--5bee2f892632459c8b7ae85e9977d345 0ae8fd57508f4160a460c60c24235423 d3542850f31c4ea580bce08dc02d27d7--0ae8fd57508f4160a460c60c24235423 0ae8fd57508f4160a460c60c24235423--d260b0e07fb44327a037e14734d921b3 bc9d4a84ca3f415bb9918dd71aa75aca bda0f549d6294992abf90eeefef9b0c7 RX(theta₂) 477318915b8e4ae9990d6be62cc39500--bda0f549d6294992abf90eeefef9b0c7 6022651f6bee4ec08b2a54705a60da1f RY(theta₅) bda0f549d6294992abf90eeefef9b0c7--6022651f6bee4ec08b2a54705a60da1f e8f2447533ff4a899b4f906d0ef867cd RX(theta₈) 6022651f6bee4ec08b2a54705a60da1f--e8f2447533ff4a899b4f906d0ef867cd cda02c84f63e411c99f7eb6dbbcf2f00 e8f2447533ff4a899b4f906d0ef867cd--cda02c84f63e411c99f7eb6dbbcf2f00 0df6e921e23849879f91f5f238ef4eb1 X cda02c84f63e411c99f7eb6dbbcf2f00--0df6e921e23849879f91f5f238ef4eb1 0df6e921e23849879f91f5f238ef4eb1--554e186e9a00476aa9e502fbd12e4d8a ac8d8448db124b35a9f3f8ac6173c6d1 RX(theta₁₁) 0df6e921e23849879f91f5f238ef4eb1--ac8d8448db124b35a9f3f8ac6173c6d1 2ab664cabfdc442d87ca7c4423a9ddc3 RY(theta₁₄) ac8d8448db124b35a9f3f8ac6173c6d1--2ab664cabfdc442d87ca7c4423a9ddc3 ea256605cec3453c9a982306ec545b2f RX(theta₁₇) 2ab664cabfdc442d87ca7c4423a9ddc3--ea256605cec3453c9a982306ec545b2f 19aa45713c3e4e32b44f89ae47ebc8bb ea256605cec3453c9a982306ec545b2f--19aa45713c3e4e32b44f89ae47ebc8bb 2e760188ca0e413ea30cadb05d5b8e34 X 19aa45713c3e4e32b44f89ae47ebc8bb--2e760188ca0e413ea30cadb05d5b8e34 2e760188ca0e413ea30cadb05d5b8e34--0ae8fd57508f4160a460c60c24235423 2e760188ca0e413ea30cadb05d5b8e34--bc9d4a84ca3f415bb9918dd71aa75aca

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 08b5c609177546a181a5c84346b30472 0 e50a87dbafee44f1be00e569e48d2f59 RX(phi₀) 08b5c609177546a181a5c84346b30472--e50a87dbafee44f1be00e569e48d2f59 d40b47f0797a43458dde5a6b5b30c423 1 e789613d4ef744b49b776a4b32123954 RY(phi₃) e50a87dbafee44f1be00e569e48d2f59--e789613d4ef744b49b776a4b32123954 d0de133b06da4b0f9143dc5fac5a4820 RX(phi₆) e789613d4ef744b49b776a4b32123954--d0de133b06da4b0f9143dc5fac5a4820 1305c3f96164414cb6a36f8a8ea41783 d0de133b06da4b0f9143dc5fac5a4820--1305c3f96164414cb6a36f8a8ea41783 d5839a1ba31942319fce790c2f5929e9 1305c3f96164414cb6a36f8a8ea41783--d5839a1ba31942319fce790c2f5929e9 21c0cd71af4c450c89b192142fc6e888 RX(phi₉) d5839a1ba31942319fce790c2f5929e9--21c0cd71af4c450c89b192142fc6e888 62fe2de504bf48b89e5d718c8513a30b RY(phi₁₂) 21c0cd71af4c450c89b192142fc6e888--62fe2de504bf48b89e5d718c8513a30b f79bd67de97143479949e42af6c3fe8d RX(phi₁₅) 62fe2de504bf48b89e5d718c8513a30b--f79bd67de97143479949e42af6c3fe8d c5d1c4b5b9fc4aa4bdfa78fe64530c9f f79bd67de97143479949e42af6c3fe8d--c5d1c4b5b9fc4aa4bdfa78fe64530c9f 7997f2d97e0c4e348c9b66e3598fc789 c5d1c4b5b9fc4aa4bdfa78fe64530c9f--7997f2d97e0c4e348c9b66e3598fc789 fa60b696ac424e2ca0cbb35e1cd7dee1 7997f2d97e0c4e348c9b66e3598fc789--fa60b696ac424e2ca0cbb35e1cd7dee1 a220f87e87874ae39c6632db724a8679 0d073df96a804f24a93f53ea05fd13a8 RX(phi₁) d40b47f0797a43458dde5a6b5b30c423--0d073df96a804f24a93f53ea05fd13a8 5f0d13e0ca3e4dba8ba705c9e0f77971 2 adf412e62eab4a0285eee00155c58436 RY(phi₄) 0d073df96a804f24a93f53ea05fd13a8--adf412e62eab4a0285eee00155c58436 8678f4dcdfa14d3884182de76e5882bd RX(phi₇) adf412e62eab4a0285eee00155c58436--8678f4dcdfa14d3884182de76e5882bd d0079a9d5b024609b9e5bc6855381857 PHASE(phi_ent₀) 8678f4dcdfa14d3884182de76e5882bd--d0079a9d5b024609b9e5bc6855381857 d0079a9d5b024609b9e5bc6855381857--1305c3f96164414cb6a36f8a8ea41783 0a0bbd20578341c8b824b95f37feb59d d0079a9d5b024609b9e5bc6855381857--0a0bbd20578341c8b824b95f37feb59d 14d5779a601f4ea58cf976348978d5c4 RX(phi₁₀) 0a0bbd20578341c8b824b95f37feb59d--14d5779a601f4ea58cf976348978d5c4 a5c29162f630454fae6352ce57b2882d RY(phi₁₃) 14d5779a601f4ea58cf976348978d5c4--a5c29162f630454fae6352ce57b2882d c236add756914444a7f9fea352128a4b RX(phi₁₆) a5c29162f630454fae6352ce57b2882d--c236add756914444a7f9fea352128a4b f60cc1bd03b04fcf88fd28a7bca35bd7 PHASE(phi_ent₂) c236add756914444a7f9fea352128a4b--f60cc1bd03b04fcf88fd28a7bca35bd7 f60cc1bd03b04fcf88fd28a7bca35bd7--c5d1c4b5b9fc4aa4bdfa78fe64530c9f 24ab642634e54d45b108d8ab7618dc45 f60cc1bd03b04fcf88fd28a7bca35bd7--24ab642634e54d45b108d8ab7618dc45 24ab642634e54d45b108d8ab7618dc45--a220f87e87874ae39c6632db724a8679 e396498762554ca980074e153de3c1ab 576e2b7660994182a58092c8b6be21f2 RX(phi₂) 5f0d13e0ca3e4dba8ba705c9e0f77971--576e2b7660994182a58092c8b6be21f2 82e0107cd1f74ce59eef80612ffa9e26 RY(phi₅) 576e2b7660994182a58092c8b6be21f2--82e0107cd1f74ce59eef80612ffa9e26 89dc992c4a5f44be9031bed30360a45d RX(phi₈) 82e0107cd1f74ce59eef80612ffa9e26--89dc992c4a5f44be9031bed30360a45d 8d349443572e4fe5bb2fc246a845c6a2 89dc992c4a5f44be9031bed30360a45d--8d349443572e4fe5bb2fc246a845c6a2 a351c3f11fba447eac699152f711b664 PHASE(phi_ent₁) 8d349443572e4fe5bb2fc246a845c6a2--a351c3f11fba447eac699152f711b664 a351c3f11fba447eac699152f711b664--0a0bbd20578341c8b824b95f37feb59d ffdf6bdb884145a595e2cb4f5a14cedf RX(phi₁₁) a351c3f11fba447eac699152f711b664--ffdf6bdb884145a595e2cb4f5a14cedf 089724321dbe4ae3a7d3ed9f80dd7f3f RY(phi₁₄) ffdf6bdb884145a595e2cb4f5a14cedf--089724321dbe4ae3a7d3ed9f80dd7f3f 2871b3b9c11e4d25b5401e08bb3dba9c RX(phi₁₇) 089724321dbe4ae3a7d3ed9f80dd7f3f--2871b3b9c11e4d25b5401e08bb3dba9c 38e8f539cec64681aff8790f896009c8 2871b3b9c11e4d25b5401e08bb3dba9c--38e8f539cec64681aff8790f896009c8 917c1b4361944dd486727dff473c49f9 PHASE(phi_ent₃) 38e8f539cec64681aff8790f896009c8--917c1b4361944dd486727dff473c49f9 917c1b4361944dd486727dff473c49f9--24ab642634e54d45b108d8ab7618dc45 917c1b4361944dd486727dff473c49f9--e396498762554ca980074e153de3c1ab

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_bebde9e8ca3a444181a7bcbbc5179632 cluster_0099bdee33484b68826b496b472848eb 39278aa568524a1a9fef924c2146127d 0 00453656671546dbb539ec726f5f2a35 RX(theta₀) 39278aa568524a1a9fef924c2146127d--00453656671546dbb539ec726f5f2a35 a679c7baeb5e40dd8948c8a86da5a3c6 1 6317503ca44643609b45273a810d7e02 RY(theta₃) 00453656671546dbb539ec726f5f2a35--6317503ca44643609b45273a810d7e02 aac28d90877c4249bff750fcd4450a32 RX(theta₆) 6317503ca44643609b45273a810d7e02--aac28d90877c4249bff750fcd4450a32 055a1414b75e4835989650a26ff9af68 HamEvo aac28d90877c4249bff750fcd4450a32--055a1414b75e4835989650a26ff9af68 854507f50fa6425e9016f58cc7523d3d RX(theta₉) 055a1414b75e4835989650a26ff9af68--854507f50fa6425e9016f58cc7523d3d c17b8ccdf8dd4f808370f9e8adde65ae RY(theta₁₂) 854507f50fa6425e9016f58cc7523d3d--c17b8ccdf8dd4f808370f9e8adde65ae 7fba0c6932db4931ae3305fef0922807 RX(theta₁₅) c17b8ccdf8dd4f808370f9e8adde65ae--7fba0c6932db4931ae3305fef0922807 a60c81e6132e47bf89a8eb914b3643c6 HamEvo 7fba0c6932db4931ae3305fef0922807--a60c81e6132e47bf89a8eb914b3643c6 373e4cbd569e48338c1a52a2d7a93748 a60c81e6132e47bf89a8eb914b3643c6--373e4cbd569e48338c1a52a2d7a93748 d0632c3ac6364a00b6b30547279df6b7 afa3c951ba3941d5a7b541ca60e9a06c RX(theta₁) a679c7baeb5e40dd8948c8a86da5a3c6--afa3c951ba3941d5a7b541ca60e9a06c 8cd677dac4004cbc987dd19f3ad41722 2 5f3fcffe32ea4cb2bb7b5873417b6d5b RY(theta₄) afa3c951ba3941d5a7b541ca60e9a06c--5f3fcffe32ea4cb2bb7b5873417b6d5b c348e47dc9f940c78f3f9222f1ebb5f8 RX(theta₇) 5f3fcffe32ea4cb2bb7b5873417b6d5b--c348e47dc9f940c78f3f9222f1ebb5f8 c19499ec3c1a46aabbe9ff9dd1f549e8 t = theta_t₀ c348e47dc9f940c78f3f9222f1ebb5f8--c19499ec3c1a46aabbe9ff9dd1f549e8 a92ab00a7f5146468faa2e4b299603e8 RX(theta₁₀) c19499ec3c1a46aabbe9ff9dd1f549e8--a92ab00a7f5146468faa2e4b299603e8 6b01be133bf14fe489bd105ba539ff25 RY(theta₁₃) a92ab00a7f5146468faa2e4b299603e8--6b01be133bf14fe489bd105ba539ff25 7fb8fb8412c44562b1831ec233e1cc33 RX(theta₁₆) 6b01be133bf14fe489bd105ba539ff25--7fb8fb8412c44562b1831ec233e1cc33 80ed51b773454c7abfba3298b5e9a64f t = theta_t₁ 7fb8fb8412c44562b1831ec233e1cc33--80ed51b773454c7abfba3298b5e9a64f 80ed51b773454c7abfba3298b5e9a64f--d0632c3ac6364a00b6b30547279df6b7 1680e2149bac4c68b38803377e1a9c07 923db6a0ca5f4266ac7b04822101bc87 RX(theta₂) 8cd677dac4004cbc987dd19f3ad41722--923db6a0ca5f4266ac7b04822101bc87 f8a94ac7d99d4508abc3bd5d5f65318e RY(theta₅) 923db6a0ca5f4266ac7b04822101bc87--f8a94ac7d99d4508abc3bd5d5f65318e cfd07deb5c52457b94c9aaf4b59bbf64 RX(theta₈) f8a94ac7d99d4508abc3bd5d5f65318e--cfd07deb5c52457b94c9aaf4b59bbf64 cb1d5dc2bbf0421389ed8aa68ae8357c cfd07deb5c52457b94c9aaf4b59bbf64--cb1d5dc2bbf0421389ed8aa68ae8357c 92fd5d2f1a3440e69d91b1c057b0cb8b RX(theta₁₁) cb1d5dc2bbf0421389ed8aa68ae8357c--92fd5d2f1a3440e69d91b1c057b0cb8b 48b61b5597804692bbc2465c101e9899 RY(theta₁₄) 92fd5d2f1a3440e69d91b1c057b0cb8b--48b61b5597804692bbc2465c101e9899 1b3320199d7741569e06b881544c7cd7 RX(theta₁₇) 48b61b5597804692bbc2465c101e9899--1b3320199d7741569e06b881544c7cd7 7e0ea96dbd294876a2d43110a03dc4b9 1b3320199d7741569e06b881544c7cd7--7e0ea96dbd294876a2d43110a03dc4b9 7e0ea96dbd294876a2d43110a03dc4b9--1680e2149bac4c68b38803377e1a9c07

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_477d7d15a2de4376919de5145f909322 cluster_dbd7453a22b8437796ef1120152b0040 1786c46a77bf41579ce5771654441dda 0 dd03e45ba56d40e9be0b7ece7f54548a RX(theta₀) 1786c46a77bf41579ce5771654441dda--dd03e45ba56d40e9be0b7ece7f54548a b3b94e5be9854528a49ae50377869fab 1 dfbfaaf3a8994cf28005fe4bc91e8bc4 RY(theta₆) dd03e45ba56d40e9be0b7ece7f54548a--dfbfaaf3a8994cf28005fe4bc91e8bc4 283544c33c8e4aaa945f104c3be6117d RX(theta₁₂) dfbfaaf3a8994cf28005fe4bc91e8bc4--283544c33c8e4aaa945f104c3be6117d 8923fae16ff6402e81fc40d394091b2e 283544c33c8e4aaa945f104c3be6117d--8923fae16ff6402e81fc40d394091b2e 46cbbedf690f4856a8750f3ccbde14ac RX(theta₁₈) 8923fae16ff6402e81fc40d394091b2e--46cbbedf690f4856a8750f3ccbde14ac b56a039f385d40b39b856fb47061f17c RY(theta₂₄) 46cbbedf690f4856a8750f3ccbde14ac--b56a039f385d40b39b856fb47061f17c 5ae55b165bf244d1907edcb141723fd4 RX(theta₃₀) b56a039f385d40b39b856fb47061f17c--5ae55b165bf244d1907edcb141723fd4 6a75ffa7d1c446819dd3f6e91b922f3b 5ae55b165bf244d1907edcb141723fd4--6a75ffa7d1c446819dd3f6e91b922f3b d4d7f3aea6a9455ab2cb3c25dc17c014 6a75ffa7d1c446819dd3f6e91b922f3b--d4d7f3aea6a9455ab2cb3c25dc17c014 4fa85b3cd8684f5a9d00f066fc95ca80 99d50297b06b40d98157b8d33b91e683 RX(theta₁) b3b94e5be9854528a49ae50377869fab--99d50297b06b40d98157b8d33b91e683 215fe06c8753446a9beb0477997f3832 2 27b018cff46948179a7998c278c54d5e RY(theta₇) 99d50297b06b40d98157b8d33b91e683--27b018cff46948179a7998c278c54d5e 4c72769199e04a1ea5cdbfac0b1d0ad1 RX(theta₁₃) 27b018cff46948179a7998c278c54d5e--4c72769199e04a1ea5cdbfac0b1d0ad1 a022959e4e39488ea5f686ac1e64d1eb 4c72769199e04a1ea5cdbfac0b1d0ad1--a022959e4e39488ea5f686ac1e64d1eb 2876a2d00b54428f9e705a8861cddd9d RX(theta₁₉) a022959e4e39488ea5f686ac1e64d1eb--2876a2d00b54428f9e705a8861cddd9d 10dce09f3b8541d3ac330111b3ab6089 RY(theta₂₅) 2876a2d00b54428f9e705a8861cddd9d--10dce09f3b8541d3ac330111b3ab6089 41e6144a47344d03aa29ab59202e0e16 RX(theta₃₁) 10dce09f3b8541d3ac330111b3ab6089--41e6144a47344d03aa29ab59202e0e16 0843047bd3144bd3b473832ffcea3c49 41e6144a47344d03aa29ab59202e0e16--0843047bd3144bd3b473832ffcea3c49 0843047bd3144bd3b473832ffcea3c49--4fa85b3cd8684f5a9d00f066fc95ca80 09be13b7b8064dde83c865a92cd600b3 e904a79e9be84bf3beae16bf01ad58c9 RX(theta₂) 215fe06c8753446a9beb0477997f3832--e904a79e9be84bf3beae16bf01ad58c9 c18ae2cbd7c54caaa81d99039112345f 3 acdb05b33e4748d99599faee1ed32712 RY(theta₈) e904a79e9be84bf3beae16bf01ad58c9--acdb05b33e4748d99599faee1ed32712 c0927dc51e2d47a88692f22d9c867454 RX(theta₁₄) acdb05b33e4748d99599faee1ed32712--c0927dc51e2d47a88692f22d9c867454 3dbc06952a48403c9db67894728443f0 HamEvo c0927dc51e2d47a88692f22d9c867454--3dbc06952a48403c9db67894728443f0 85ceafce47c1429188e898ab159fd505 RX(theta₂₀) 3dbc06952a48403c9db67894728443f0--85ceafce47c1429188e898ab159fd505 dd02cff082914d7bb58bb55fbb1b1206 RY(theta₂₆) 85ceafce47c1429188e898ab159fd505--dd02cff082914d7bb58bb55fbb1b1206 2e4d1bfd3d994fe6b83d2f8be317f874 RX(theta₃₂) dd02cff082914d7bb58bb55fbb1b1206--2e4d1bfd3d994fe6b83d2f8be317f874 51c9ae0352c247fbb8ffd2311785b29e HamEvo 2e4d1bfd3d994fe6b83d2f8be317f874--51c9ae0352c247fbb8ffd2311785b29e 51c9ae0352c247fbb8ffd2311785b29e--09be13b7b8064dde83c865a92cd600b3 101f0ab9611647a1b71c6405a2cabfd8 91bf72a8a94a45c7bd1cb094b1c52ae6 RX(theta₃) c18ae2cbd7c54caaa81d99039112345f--91bf72a8a94a45c7bd1cb094b1c52ae6 be369985b0b54624be1a1bd3b42c93cb 4 f01faef473ec45b389d951186a22c3b1 RY(theta₉) 91bf72a8a94a45c7bd1cb094b1c52ae6--f01faef473ec45b389d951186a22c3b1 e06c883746394f74827d7518bd9acb09 RX(theta₁₅) f01faef473ec45b389d951186a22c3b1--e06c883746394f74827d7518bd9acb09 f47929e7b74341499f9f6917cc150e84 t = theta_t₀ e06c883746394f74827d7518bd9acb09--f47929e7b74341499f9f6917cc150e84 3124968ddd45461f96dc8e297bc4d740 RX(theta₂₁) f47929e7b74341499f9f6917cc150e84--3124968ddd45461f96dc8e297bc4d740 a8095bfca6dd46369e2465a57e99f186 RY(theta₂₇) 3124968ddd45461f96dc8e297bc4d740--a8095bfca6dd46369e2465a57e99f186 68f7b1f8679b430e8eca40ae54dda055 RX(theta₃₃) a8095bfca6dd46369e2465a57e99f186--68f7b1f8679b430e8eca40ae54dda055 daad61ad13704dbfac085d313017957b t = theta_t₁ 68f7b1f8679b430e8eca40ae54dda055--daad61ad13704dbfac085d313017957b daad61ad13704dbfac085d313017957b--101f0ab9611647a1b71c6405a2cabfd8 979a9181ab5545cb94b1bd434dfd3ebc a8b221f3b9224b0f8f7dab30382b2028 RX(theta₄) be369985b0b54624be1a1bd3b42c93cb--a8b221f3b9224b0f8f7dab30382b2028 f0369c33a03e4342a76dae3d2a43c0ce 5 2172c550fe7049358d91c23eebc8852c RY(theta₁₀) a8b221f3b9224b0f8f7dab30382b2028--2172c550fe7049358d91c23eebc8852c 71205036301145e2b6913607bbfe1a2b RX(theta₁₆) 2172c550fe7049358d91c23eebc8852c--71205036301145e2b6913607bbfe1a2b 389e1ac04c024f3cbcae5726f235613a 71205036301145e2b6913607bbfe1a2b--389e1ac04c024f3cbcae5726f235613a f135196ce8204349a3391d4b2c8f2113 RX(theta₂₂) 389e1ac04c024f3cbcae5726f235613a--f135196ce8204349a3391d4b2c8f2113 ab17d11dfc504e45ba305fddf5735399 RY(theta₂₈) f135196ce8204349a3391d4b2c8f2113--ab17d11dfc504e45ba305fddf5735399 53d64708194146d8a82c7d65910b5624 RX(theta₃₄) ab17d11dfc504e45ba305fddf5735399--53d64708194146d8a82c7d65910b5624 9a2c16a371254056a79a1a900720c95e 53d64708194146d8a82c7d65910b5624--9a2c16a371254056a79a1a900720c95e 9a2c16a371254056a79a1a900720c95e--979a9181ab5545cb94b1bd434dfd3ebc 5b05de597e964438a02d5eafdfc5e2b7 ea501439382046e68c7c7f525c4d6248 RX(theta₅) f0369c33a03e4342a76dae3d2a43c0ce--ea501439382046e68c7c7f525c4d6248 c4e5c245f189439f921da4fb11b2ca37 RY(theta₁₁) ea501439382046e68c7c7f525c4d6248--c4e5c245f189439f921da4fb11b2ca37 506e5af1f9b44423844acccb92957f23 RX(theta₁₇) c4e5c245f189439f921da4fb11b2ca37--506e5af1f9b44423844acccb92957f23 e91fcda5ae794541980116967f39b5a8 506e5af1f9b44423844acccb92957f23--e91fcda5ae794541980116967f39b5a8 773894ff24c84a479097778017fab57b RX(theta₂₃) e91fcda5ae794541980116967f39b5a8--773894ff24c84a479097778017fab57b a4ccc9ae47d44026be344288a7353916 RY(theta₂₉) 773894ff24c84a479097778017fab57b--a4ccc9ae47d44026be344288a7353916 8ad59a6a148740ccb8e05b8068c4207c RX(theta₃₅) a4ccc9ae47d44026be344288a7353916--8ad59a6a148740ccb8e05b8068c4207c 568823137b27465c8dc9413002c8563b 8ad59a6a148740ccb8e05b8068c4207c--568823137b27465c8dc9413002c8563b 568823137b27465c8dc9413002c8563b--5b05de597e964438a02d5eafdfc5e2b7

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_8bf870e58fc34075be9f9fa170d253ed BPMA-1 cluster_af6e482fc88543889310825eb7337ea7 BPMA-0 c7aeda706d6a4646875eac93f2ff6504 0 2957fcd101964768af92518283306d22 RX(alpha₀₀) c7aeda706d6a4646875eac93f2ff6504--2957fcd101964768af92518283306d22 8c6bff22adb24894be1a52b665510bdc 1 76c33994b4004c6a93329681ae4cd4f9 RY(alpha₀₃) 2957fcd101964768af92518283306d22--76c33994b4004c6a93329681ae4cd4f9 a2257006462247bf9f481b1c4fdb997f 76c33994b4004c6a93329681ae4cd4f9--a2257006462247bf9f481b1c4fdb997f 38ce5c039c2845988429780443644860 a2257006462247bf9f481b1c4fdb997f--38ce5c039c2845988429780443644860 38e1e13a8fd4437ebe1bb6b05c7197cd RX(gamma₀₀) 38ce5c039c2845988429780443644860--38e1e13a8fd4437ebe1bb6b05c7197cd 14779a23b852420ab1f8818672ed6213 38e1e13a8fd4437ebe1bb6b05c7197cd--14779a23b852420ab1f8818672ed6213 fc56824c02be4a03b23df067b8011719 14779a23b852420ab1f8818672ed6213--fc56824c02be4a03b23df067b8011719 170a8d47f2ec44b793be7b3f9d523b18 RY(beta₀₃) fc56824c02be4a03b23df067b8011719--170a8d47f2ec44b793be7b3f9d523b18 c606bb24573a481e920d594f8e3375ef RX(beta₀₀) 170a8d47f2ec44b793be7b3f9d523b18--c606bb24573a481e920d594f8e3375ef 758ada43347e4a66b279957a5b6a847f RX(alpha₁₀) c606bb24573a481e920d594f8e3375ef--758ada43347e4a66b279957a5b6a847f 29145c6635c04209a1270cea6788bd59 RY(alpha₁₃) 758ada43347e4a66b279957a5b6a847f--29145c6635c04209a1270cea6788bd59 0a17e58833044221902e210f52dd5e90 29145c6635c04209a1270cea6788bd59--0a17e58833044221902e210f52dd5e90 9e91728cddac4084aeacdb27d3cdac73 0a17e58833044221902e210f52dd5e90--9e91728cddac4084aeacdb27d3cdac73 178c4b8ee1f1437685ceeafbff1cd667 RX(gamma₁₀) 9e91728cddac4084aeacdb27d3cdac73--178c4b8ee1f1437685ceeafbff1cd667 c376834d34b743079d6fe32da55c999a 178c4b8ee1f1437685ceeafbff1cd667--c376834d34b743079d6fe32da55c999a 288a3976ed7442668efeadee590e0418 c376834d34b743079d6fe32da55c999a--288a3976ed7442668efeadee590e0418 d09d0f72be9e48beac5c3c9f72caf9f8 RY(beta₁₃) 288a3976ed7442668efeadee590e0418--d09d0f72be9e48beac5c3c9f72caf9f8 7988fb0f69a54ed2b81f26f66fb2eb41 RX(beta₁₀) d09d0f72be9e48beac5c3c9f72caf9f8--7988fb0f69a54ed2b81f26f66fb2eb41 ef206564722a4182ad17ac3b35fca201 7988fb0f69a54ed2b81f26f66fb2eb41--ef206564722a4182ad17ac3b35fca201 e47d1681c2f74a50aacff070a3e0d34c 6cbd5a17218c45f1969322592193b20c RX(alpha₀₁) 8c6bff22adb24894be1a52b665510bdc--6cbd5a17218c45f1969322592193b20c b622ab1f46e34dd28d4cf695d3189de5 2 4e91bf645860414193bd3c7df33f8b36 RY(alpha₀₄) 6cbd5a17218c45f1969322592193b20c--4e91bf645860414193bd3c7df33f8b36 474cf1b0aa9748818b0f0c88f9567480 X 4e91bf645860414193bd3c7df33f8b36--474cf1b0aa9748818b0f0c88f9567480 474cf1b0aa9748818b0f0c88f9567480--a2257006462247bf9f481b1c4fdb997f 287e5828f0f04569946ed3300d51c428 474cf1b0aa9748818b0f0c88f9567480--287e5828f0f04569946ed3300d51c428 1a087640dcc74eec94ba8cc3ea762f93 RX(gamma₀₁) 287e5828f0f04569946ed3300d51c428--1a087640dcc74eec94ba8cc3ea762f93 0ae9bf67c9b2422f9ffe3e1fa65e7cbc 1a087640dcc74eec94ba8cc3ea762f93--0ae9bf67c9b2422f9ffe3e1fa65e7cbc f44347ca5cfa428fa014f94eaa970ac2 X 0ae9bf67c9b2422f9ffe3e1fa65e7cbc--f44347ca5cfa428fa014f94eaa970ac2 f44347ca5cfa428fa014f94eaa970ac2--fc56824c02be4a03b23df067b8011719 27b958b5331146ab9863c2335ae185f8 RY(beta₀₄) f44347ca5cfa428fa014f94eaa970ac2--27b958b5331146ab9863c2335ae185f8 f64def36091e44b495e4c0fead4b1b20 RX(beta₀₁) 27b958b5331146ab9863c2335ae185f8--f64def36091e44b495e4c0fead4b1b20 ec465d8878e049e2ba291edcdafc6902 RX(alpha₁₁) f64def36091e44b495e4c0fead4b1b20--ec465d8878e049e2ba291edcdafc6902 91901be5f06446f78451440825229e1c RY(alpha₁₄) ec465d8878e049e2ba291edcdafc6902--91901be5f06446f78451440825229e1c f8188208000249fbbdc466ebeaa07f06 X 91901be5f06446f78451440825229e1c--f8188208000249fbbdc466ebeaa07f06 f8188208000249fbbdc466ebeaa07f06--0a17e58833044221902e210f52dd5e90 5f84ab5727ca4433856573e526d07212 f8188208000249fbbdc466ebeaa07f06--5f84ab5727ca4433856573e526d07212 e5f252126dd24bda8e6f63ae6a59ea79 RX(gamma₁₁) 5f84ab5727ca4433856573e526d07212--e5f252126dd24bda8e6f63ae6a59ea79 12e4f23ac8d241bc98462374f2487c23 e5f252126dd24bda8e6f63ae6a59ea79--12e4f23ac8d241bc98462374f2487c23 9d996d4d94c146b3b1f497b9bf298e4c X 12e4f23ac8d241bc98462374f2487c23--9d996d4d94c146b3b1f497b9bf298e4c 9d996d4d94c146b3b1f497b9bf298e4c--288a3976ed7442668efeadee590e0418 4e36f52fdd5e4ab788522a13d6be47cc RY(beta₁₄) 9d996d4d94c146b3b1f497b9bf298e4c--4e36f52fdd5e4ab788522a13d6be47cc eadef049ad6042bebe40755bcb32e5d8 RX(beta₁₁) 4e36f52fdd5e4ab788522a13d6be47cc--eadef049ad6042bebe40755bcb32e5d8 eadef049ad6042bebe40755bcb32e5d8--e47d1681c2f74a50aacff070a3e0d34c 7c7c7a0edcbe418aa686283e7ec4ec86 7a2853970f894445abc4326891f1231f RX(alpha₀₂) b622ab1f46e34dd28d4cf695d3189de5--7a2853970f894445abc4326891f1231f 27e8c7eaf1b74fba9f34262a03147baa RY(alpha₀₅) 7a2853970f894445abc4326891f1231f--27e8c7eaf1b74fba9f34262a03147baa 492453db82ad4d3988de43d0f0557f50 27e8c7eaf1b74fba9f34262a03147baa--492453db82ad4d3988de43d0f0557f50 61ce7fd6345c4874a204a1ab4c29b45e X 492453db82ad4d3988de43d0f0557f50--61ce7fd6345c4874a204a1ab4c29b45e 61ce7fd6345c4874a204a1ab4c29b45e--287e5828f0f04569946ed3300d51c428 4e763424ca0c4dfb96cbed152b5f1b59 RX(gamma₀₂) 61ce7fd6345c4874a204a1ab4c29b45e--4e763424ca0c4dfb96cbed152b5f1b59 8e2e2be61b0a4365b40a44c40e4126ac X 4e763424ca0c4dfb96cbed152b5f1b59--8e2e2be61b0a4365b40a44c40e4126ac 8e2e2be61b0a4365b40a44c40e4126ac--0ae9bf67c9b2422f9ffe3e1fa65e7cbc 0da419ef7dd54fc1bf60856a27d15774 8e2e2be61b0a4365b40a44c40e4126ac--0da419ef7dd54fc1bf60856a27d15774 d545abb8597245698517a369242300de RY(beta₀₅) 0da419ef7dd54fc1bf60856a27d15774--d545abb8597245698517a369242300de 0efd1a9cd8664c8f9a3a8ae0d6dae1a3 RX(beta₀₂) d545abb8597245698517a369242300de--0efd1a9cd8664c8f9a3a8ae0d6dae1a3 6b48f359c24b468dbebe2bf9acc2ab8c RX(alpha₁₂) 0efd1a9cd8664c8f9a3a8ae0d6dae1a3--6b48f359c24b468dbebe2bf9acc2ab8c d7a8b92ca2d24923a7adb68dce560f0e RY(alpha₁₅) 6b48f359c24b468dbebe2bf9acc2ab8c--d7a8b92ca2d24923a7adb68dce560f0e 6e1ed847b8b84a2e82822e2d0f6f30b7 d7a8b92ca2d24923a7adb68dce560f0e--6e1ed847b8b84a2e82822e2d0f6f30b7 7780a505c5d248a6b3c78f7c108ae33f X 6e1ed847b8b84a2e82822e2d0f6f30b7--7780a505c5d248a6b3c78f7c108ae33f 7780a505c5d248a6b3c78f7c108ae33f--5f84ab5727ca4433856573e526d07212 04d6ff950b89476cb9ff9bed48823393 RX(gamma₁₂) 7780a505c5d248a6b3c78f7c108ae33f--04d6ff950b89476cb9ff9bed48823393 ed8097207b494989b38b0842ada81833 X 04d6ff950b89476cb9ff9bed48823393--ed8097207b494989b38b0842ada81833 ed8097207b494989b38b0842ada81833--12e4f23ac8d241bc98462374f2487c23 526d9ae809a742b2b438c913bc0d825f ed8097207b494989b38b0842ada81833--526d9ae809a742b2b438c913bc0d825f 07007d47e6194b3e8fa0d1bb0191d856 RY(beta₁₅) 526d9ae809a742b2b438c913bc0d825f--07007d47e6194b3e8fa0d1bb0191d856 7eb38c38865a43f3b44afdc6220ac6ea RX(beta₁₂) 07007d47e6194b3e8fa0d1bb0191d856--7eb38c38865a43f3b44afdc6220ac6ea 7eb38c38865a43f3b44afdc6220ac6ea--7c7c7a0edcbe418aa686283e7ec4ec86