Skip to content

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