qiskit.opflow.primitive_ops.Z2Symmetries.taper¶
- Z2Symmetries.taper(operator)[source]¶
Taper an operator based on the z2_symmetries info and sector defined by tapering_values. The tapering_values will be stored into the resulted operator for a record.
The tapering is a two-step algorithm which first converts the operator into a
PauliSumOp
with same eigenvalues but where some qubits are only acted upon with the Pauli operators I or X. The number M of these redundant qubits is equal to the number M of identified symmetries.The second step of the reduction consists in replacing these qubits with the possible eigenvalues of the corresponding Pauli X, giving 2^M new operators with M less qubits. If an eigenvalue sector was previously identified for the solution, then this reduces to 1 new operator with M less qubits.
- Parameters
operator (
PauliSumOp
) – the to-be-tapered operator- Returns
[
PauliSumOp
]; otherwise,PauliSumOp
- Return type
If tapering_values is None
- Raises
OpflowError – Z2 symmetries, single qubit pauli and single qubit list cannot be empty