# Converters (qiskit.opflow.converters)¶

Converters are objects which manipulate Operators, usually traversing an Operator to change certain sub-Operators into a desired representation. Often the converted Operator is isomorphic or approximate to the original Operator in some way, but not always. For example, a converter may accept CircuitOp and return a SummedOp of PauliOp’s representing the circuit unitary. Converters may not have polynomial space or time scaling in their operations. On the contrary, many converters, such as a MatrixExpectation or MatrixEvolution, which convert PauliOp’s to MatrixOp’s internally, will require time or space exponential in the number of qubits unless a clever trick is known (such as the use of sparse matrices).

Note

Not all converters are in this module, as expectations and evolutions are also converters.

# Converter Base Class¶

The converter base class simply enforces the presence of a convert() method.

 ConverterBase Converters take an Operator and return a new Operator, generally isomorphic in some way with the first, but with certain desired properties.

# Converters¶

In addition to the base class, directory holds a few miscellaneous converters which are used frequently around the Operator flow.

 CircuitSampler The CircuitSampler traverses an Operator and converts any CircuitStateFns into approximations of the state function by a DictStateFn or VectorStateFn using a quantum backend. AbelianGrouper The AbelianGrouper converts SummedOps into a sum of Abelian sums. DictToCircuitSum Converts DictStateFns or VectorStateFns to equivalent CircuitStateFns or sums thereof. PauliBasisChange Converter for changing Paulis into other bases. TwoQubitReduction Two qubit reduction converter which eliminates the central and last qubit in a list of Pauli that has diagonal operators (Z,I) at those positions.