qiskit.opflow.primitive_ops.Z2Symmetries
class Z2Symmetries(symmetries, sq_paulis, sq_list, tapering_values=None)
Z2 Symmetries
Parameters
- symmetries (
List
[Pauli
]) – the list of Pauli objects representing the Z_2 symmetries - sq_paulis (
List
[Pauli
]) – the list of single - qubit Pauli objects to construct the Clifford operators - sq_list (
List
[int
]) – the list of support of the single-qubit Pauli objects used to build the Clifford operators - tapering_values (
Optional
[List
[int
]]) – values determines the sector.
Raises
OpflowError – Invalid paulis
__init__
__init__(symmetries, sq_paulis, sq_list, tapering_values=None)
Parameters
- symmetries (
List
[Pauli
]) – the list of Pauli objects representing the Z_2 symmetries - sq_paulis (
List
[Pauli
]) – the list of single - qubit Pauli objects to construct the Clifford operators - sq_list (
List
[int
]) – the list of support of the single-qubit Pauli objects used to build the Clifford operators - tapering_values (
Optional
[List
[int
]]) – values determines the sector.
Raises
OpflowError – Invalid paulis
Methods
__init__ (symmetries, sq_paulis, sq_list[, …]) | type symmetriesList [Pauli ] |
consistent_tapering (operator) | Tapering the operator with the same manner of how this tapered operator is created. |
copy () | Get a copy of self. |
find_Z2_symmetries (operator) | Finds Z2 Pauli-type symmetries of an Operator. |
is_empty () | Check the z2_symmetries is empty or not. |
taper (operator) | Taper an operator based on the z2_symmetries info and sector defined by tapering_values. |
Attributes
cliffords | Get clifford operators, build based on symmetries and single-qubit X. |
sq_list | returns sq list |
sq_paulis | returns sq paulis |
symmetries | return symmetries |
tapering_values | returns tapering values |
cliffords
Get clifford operators, build based on symmetries and single-qubit X. :rtype: List
[PauliSumOp
] :returns: a list of unitaries used to diagonalize the Hamiltonian.
consistent_tapering
consistent_tapering(operator)
Tapering the operator with the same manner of how this tapered operator is created. i.e., using the same Cliffords and tapering values.
Parameters
operator (PauliSumOp
) – the to-be-tapered operator
Return type
OperatorBase
Returns
The tapered operator
Raises
OpflowError – The given operator does not commute with the symmetry
copy
copy()
Get a copy of self. :rtype: Z2Symmetries
:returns: copy
find_Z2_symmetries
classmethod find_Z2_symmetries(operator)
Finds Z2 Pauli-type symmetries of an Operator.
Return type
Z2Symmetries
Returns
a z2_symmetries object contains symmetries, single-qubit X, single-qubit list.
is_empty
is_empty()
Check the z2_symmetries is empty or not. :rtype: bool
:returns: Empty or not
sq_list
returns sq list
sq_paulis
returns sq paulis
symmetries
return symmetries
taper
taper(operator)
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.
Parameters
operator (PauliSumOp
) – the to-be-tapered operator.
Returns
[:class`PauliSumOp`]; otherwise, PauliSumOp
Return type
If tapering_values is None
Raises
OpflowError – Z2 symmetries, single qubit pauli and single qubit list cannot be empty
tapering_values
returns tapering values