45 lines
5.2 KiB
Plaintext
45 lines
5.2 KiB
Plaintext
---
|
||
title: converters
|
||
description: API reference for qiskit.opflow.converters
|
||
in_page_toc_min_heading_level: 2
|
||
python_api_type: module
|
||
python_api_name: qiskit.opflow.converters
|
||
---
|
||
|
||
<span id="qiskit-opflow-converters" />
|
||
|
||
# qiskit.opflow\.converters
|
||
|
||
## Converters
|
||
|
||
<span id="module-qiskit.opflow.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`](qiskit.opflow.primitive_ops.CircuitOp "qiskit.opflow.primitive_ops.CircuitOp") and return a [`SummedOp`](qiskit.opflow.list_ops.SummedOp "qiskit.opflow.list_ops.SummedOp") of [`PauliOp`](qiskit.opflow.primitive_ops.PauliOp "qiskit.opflow.primitive_ops.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`](qiskit.opflow.expectations.MatrixExpectation "qiskit.opflow.expectations.MatrixExpectation") or [`MatrixEvolution`](qiskit.opflow.evolutions.MatrixEvolution "qiskit.opflow.evolutions.MatrixEvolution"), which convert [`PauliOp`](qiskit.opflow.primitive_ops.PauliOp "qiskit.opflow.primitive_ops.PauliOp")’s to [`MatrixOp`](qiskit.opflow.primitive_ops.MatrixOp "qiskit.opflow.primitive_ops.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).
|
||
|
||
<Admonition title="Note" type="note">
|
||
Not all converters are in this module, as [`expectations`](qiskit.opflow.expectations#module-qiskit.opflow.expectations "qiskit.opflow.expectations") and [`evolutions`](qiskit.opflow.evolutions#module-qiskit.opflow.evolutions "qiskit.opflow.evolutions") are also converters.
|
||
</Admonition>
|
||
|
||
### Converter Base Class
|
||
|
||
The converter base class simply enforces the presence of a [`convert()`](qiskit.opflow.converters.ConverterBase#convert "qiskit.opflow.converters.ConverterBase.convert") method.
|
||
|
||
| | |
|
||
| ---------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
|
||
| [`ConverterBase`](qiskit.opflow.converters.ConverterBase "qiskit.opflow.converters.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`](qiskit.opflow.converters.CircuitSampler "qiskit.opflow.converters.CircuitSampler")(backend\[, statevector, ...]) | 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`](qiskit.opflow.converters.AbelianGrouper "qiskit.opflow.converters.AbelianGrouper")(\[traverse]) | The AbelianGrouper converts SummedOps into a sum of Abelian sums. |
|
||
| [`DictToCircuitSum`](qiskit.opflow.converters.DictToCircuitSum "qiskit.opflow.converters.DictToCircuitSum")(\[traverse, convert\_dicts, ...]) | Converts `DictStateFns` or `VectorStateFns` to equivalent `CircuitStateFns` or sums thereof. |
|
||
| [`PauliBasisChange`](qiskit.opflow.converters.PauliBasisChange "qiskit.opflow.converters.PauliBasisChange")(\[destination\_basis, ...]) | Converter for changing Paulis into other bases. |
|
||
| [`TwoQubitReduction`](qiskit.opflow.converters.TwoQubitReduction "qiskit.opflow.converters.TwoQubitReduction")(num\_particles) | 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. |
|
||
|