Exponentiation
exponentiation
Functions:
Name | Description |
---|---|
single_pauli_exponent |
[Qmod core-library function] |
suzuki_trotter |
[Qmod core-library function] |
qdrift |
[Qmod core-library function] |
exponentiation_with_depth_constraint |
[Qmod core-library function] |
single_pauli_exponent
single_pauli_exponent(
pauli_string: CArray[Pauli],
coefficient: CReal,
qbv: QArray[
QBit, Literal["get_field(pauli_string, 'len')"]
],
) -> None
[Qmod core-library function]
Exponentiates the specified single Pauli operator multiplied by some coefficient.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
pauli_string
|
CArray[Pauli]
|
The Pauli operator to be exponentiated. |
required |
coefficient
|
CReal
|
A coefficient multiplying the Pauli operator. |
required |
qbv
|
QArray[QBit, Literal["get_field(pauli_string, 'len')"]]
|
The target quantum variable of the exponentiation. |
required |
suzuki_trotter
suzuki_trotter(
pauli_operator: CArray[PauliTerm],
evolution_coefficient: CReal,
order: CInt,
repetitions: CInt,
qbv: QArray[
QBit,
Literal[
"get_field(get_field(pauli_operator[0], 'pauli'), 'len')"
],
],
) -> None
[Qmod core-library function]
Applies the Suzuki-Trotter decomposition to a Pauli operator. The Suzuki-Trotter decomposition is a method for approximating the exponential of a sum of operators by a product of exponentials of each operator. The Suzuki-Trotter decomposition of a given order nullifies the error of the Taylor series expansion of the product of exponentials up to that order. The error of a Suzuki-Trotter decomposition decreases as the order and number of repetitions increase.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
pauli_operator
|
CArray[PauliTerm]
|
The Pauli operator to be exponentiated. |
required |
evolution_coefficient
|
CReal
|
A global evolution coefficient multiplying the Pauli operator. |
required |
order
|
CInt
|
The order of the Suzuki-Trotter decomposition. |
required |
repetitions
|
CInt
|
The number of repetitions of the Suzuki-Trotter decomposition. |
required |
qbv
|
QArray[QBit, Literal["get_field(get_field(pauli_operator[0], 'pauli'), 'len')"]]
|
The target quantum variable of the exponentiation. |
required |
qdrift
qdrift(
pauli_operator: CArray[PauliTerm],
evolution_coefficient: CReal,
num_qdrift: CInt,
qbv: QArray[
QBit,
Literal[
"get_field(get_field(pauli_operator[0], 'pauli'), 'len')"
],
],
) -> None
[Qmod core-library function]
Exponentiates a Pauli operator using the QDrift method. The QDrift method is a stochastic method based on the Trotter decomposition for approximating the exponential of a sum of operators by a product of exponentials of each operator. The QDrift method randomizes the order of the operators in the product of exponentials to stochastically reduce the error of the approximation. The error of the QDrift method decreases as the number of QDrift steps increases.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
pauli_operator
|
CArray[PauliTerm]
|
The Pauli operator to be exponentiated. |
required |
evolution_coefficient
|
CReal
|
A global evolution coefficient multiplying the Pauli operator. |
required |
num_qdrift
|
The number of QDrift steps. |
required | |
qbv
|
QArray[QBit, Literal["get_field(get_field(pauli_operator[0], 'pauli'), 'len')"]]
|
The target quantum variable of the exponentiation. |
required |
exponentiation_with_depth_constraint
exponentiation_with_depth_constraint(
pauli_operator: CArray[PauliTerm],
evolution_coefficient: CReal,
max_depth: CInt,
qbv: QArray[
QBit,
Literal[
"get_field(get_field(pauli_operator[0], 'pauli'), 'len')"
],
],
) -> None
[Qmod core-library function]
Exponentiates a Pauli operator via the Suzuki-Trotter decomposition with a depth constraint. The Suzuki-Trotter decomposition is a method for approximating the exponential of a sum of operators by a product of exponentials of each operator. This function automatically determines the order and number of repetitions of the Suzuki-Trotter decomposition to minimize the error given a depth constraint.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
pauli_operator
|
CArray[PauliTerm]
|
The Pauli operator to be exponentiated. |
required |
evolution_coefficient
|
CReal
|
A global coefficient multiplying the Pauli operator. |
required |
max_depth
|
CInt
|
The maximum depth of the exponentiation. |
required |
qbv
|
QArray[QBit, Literal["get_field(get_field(pauli_operator[0], 'pauli'), 'len')"]]
|
The target quantum variable of the exponentiation. |
required |