Converters take an Operator and return a new Operator, generally isomorphic in some way with the first, but with certain desired properties. For example, a converter may accept
CircuitOpand return a
PauliOpsrepresenting the circuit unitary. Converters may not have polynomial space or time scaling in their operations. On the contrary, many converters, such as a
MatrixEvolution, which convert
MatrixOpsinternally, will require time or space exponential in the number of qubits unless a clever trick is known (such as the use of sparse matrices).
Accept the Operator and return the converted Operator