You're reading the documentation of the v0.10. For the latest released version, please have a look at v0.13.

Qiskit converter

Overview

Note

Qiskit is not listed as a Perceval dependency. Users wishing to use Qiskit shall install it by themselves.

Qiskit is an opensource quantum development library. A Qiskit QuantumCircuit can be converted to an equivalent Perceval Processor using QiskitConverter.

Minimal code:

>>> import qiskit
>>> from perceval.converters import QiskitConverter
>>> from perceval.components import catalog
>>> # Create a Quantum Circuit (the following is pure Qiskit syntax):
>>> qc = qiskit.QuantumCircuit(2)
>>> qc.h(0)
>>> qc.cx(0, 1)
>>> print(qc.draw())
     ┌───┐
q_0: ┤ H ├──■──
     └───┘┌─┴─┐
q_1: ─────┤ X ├
          └───┘
>>> # Then convert the Quantum Circuit with Perceval QiskitConvertor
>>> qiskit_convertor = QiskitConverter(catalog)
>>> perceval_processor = qiskit_convertor.convert(qc)

See also:

Qiskit tutorial

Qiskit conversion and decomposition example

Class reference

class perceval.converters.qiskit_converter.QiskitConverter(backend_name='SLOS', noise_model=None)

Qiskit quantum circuit to perceval processor converter.

Parameters:

backend_name (str) – backend name used in the converted processor (default SLOS)

convert(gate_circuit, use_postselection=True)

Convert a gate-based quantum circuit into a Processor.

Parameters:
  • gate_circuit – gate-based quantum circuit (Qiskit, Myqlm or CQASM)

  • use_postselection (bool) – when True (default), uses optimized number of postprocessed CNOT and ‘Heralded CNOT’ gates. Otherwise, uses only heralded CNOT.

Return type:

Processor

Returns:

the converted processor