BlockEncoding.from_operator#

classmethod BlockEncoding.from_operator(O: QubitOperator | FermionicOperator) BlockEncoding[source]#

Constructs a BlockEncoding from an operator.

Parameters:
OQubitOperator | FermionicOperator

The operator to be block-encoded.

Returns:
BlockEncoding

A BlockEncoding representing the Hermitian part \((O+O^{\dagger})/2\).

Notes

  • Block encoding based on Pauli decomposition \(O=\sum_i\alpha_i P_i\) where \(\alpha_i\) are real positive coefficients and \(P_i\) are Pauli strings (including the respective sign).

  • Normalization: The block-encoding normalization factor is \(\alpha = \sum_i \alpha_i\).

Examples

>>> from qrisp.block_encodings import BlockEncoding
>>> from qrisp.operators import X, Y, Z
>>> H = X(0)*X(1) + 0.2*Y(0)*Y(1)
>>> B = BlockEncoding.from_operator(H)