English
Languages
English
Bengali
French
German
Japanese
Korean
Portuguese
Spanish
Tamil

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