- class qiskit.opflow.primitive_ops.Z2Symmetries(symmetries, sq_paulis, sq_list, tapering_values=None, tol=1e-14)#
Deprecated: Z2 Symmetries
Deprecated since version 0.24.0: The class
qiskit.opflow.primitive_ops.tapered_pauli_sum_op.Z2Symmetriesis deprecated as of qiskit-terra 0.24.0. It will be removed no earlier than 3 months after the release date. For code migration guidelines, visit https://qisk.it/opflow_migration.
tol (float) – Tolerance threshold for ignoring real and complex parts of a coefficient.
OpflowError – Invalid paulis
Get clifford operators, build based on symmetries and single-qubit X. :returns: a list of unitaries used to diagonalize the Hamiltonian.
Return operator settings.
returns sq list
returns sq paulis
returns tapering values
Tolerance threshold for ignoring real and complex parts of a coefficient.
Tapering the operator with the same manner of how this tapered operator is created. i.e., using the same Cliffords and tapering values.
This method operates the first part of the tapering. It converts the operator by composing it with the clifford unitaries defined in the current symmetry.
- classmethod find_Z2_symmetries(operator)#
Finds Z2 Pauli-type symmetries of an Operator.
a z2_symmetries object contains symmetries, single-qubit X, single-qubit list.
- Return type:
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
PauliSumOpwith 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.
This method operates the second part of the tapering. This function assumes that the input operators have already been transformed using
convert_clifford(). The redundant qubits due to the symmetries are dropped and replaced by their two possible eigenvalues. The tapering_values will be stored into the resulted operator for a record.