Skip to content

@atilag atilag released this May 11, 2018 · 1231 commits to stable since this release



  • Introduce providers and rework backends (#376).
    • Split backends into local and ibmq.
    • Each provider derives from the following classes for its specific requirements.
      BaseProvider class.
      BaseBackend class.
      BaseJob class.
    • Allow querying result by both circuit name and QuantumCircuit instance.
  • Introduce the QISKit wrapper (#376).
    • Introduce convenience wrapper functions around commonly used QISKit components
      (e.g. compile and execute functions).
    • Introduce the DefaultQISKitProvider, which acts as a context manager for the current session
      (e.g. providing easy access to all available_backends).
    • Avoid relying on QuantumProgram (eventual deprecation).
    • The functions are also available as top-level functions (for example,
  • Introduce BaseJob class and asynchronous jobs (#403).
    • Return BaseJob after run().
    • Mechanisms for querying status and results, or to cancel a job
  • Introduce a skip_transpiler flag for compile() (#411).
  • Introduce schemas for validating interfaces between qiskit and backends (#434)
    • qobj_schema
    • result_schema
    • job_status_schema
    • default_pulse_config_schema
    • backend_config_schema
    • backend_props_schema
    • backend_status_schema
  • Improve C++ simulator (#386)
    • Add tensor_index.hpp for multi-partite qubit vector indexing.
    • Add qubit_vector.hpp for multi-partite qubit vector algebra.
    • Rework C++ simulator backends to use QubitVector class instead of std::vector.
  • Improve interface to simulator backends (#435)
    • Introduce local_statevector_simulator_py and local_statevector_simulator_cpp.
    • Introduce aliased and deprecated backend names and mechanisms for resolving them.
    • Introduce optional compact flag to query backend names only by unique function.
    • Introduce result convenience functions get_statevector, get_unitary
    • Add snapshot command for caching a copy of the current simulator state.
  • Introduce circuit drawing via circuit_drawer() and plot_circuit() (#295, #414)
  • Introduce benchmark suite for performance testing (test/performance) (#277)
  • Introduce more robust probability testing via assertDictAlmostEqual (#390)
  • Allow combining circuits across both depth and width (#389)
  • Enforce string token names (#395)

Bug Fixes

  • Fix coherent error bug in local_qasm_simulator_cpp (#318)
  • Fix the order and format of result bits obtained from device backends (#430)
  • Fix support for noises in the idle gate of local_clifford_simulator_cpp (#440)
  • Fix JobProcessor modifying input qobj (#392) (and removed JobProcessor during #403)
  • Fix ability to apply all gates on register (#369)

Backward-incompatible changes

  • Some methods of QuantumProgram are soon to be deprecated. Please use the
    top-level functions instead.
  • The Register instantiation now expects size, name. Using
    name, size is still supported but will be deprecated in the future.
  • Simulators no longer return wavefunction by setting shots=1. Instead,
    use the local_statevector_simulator, or explicitly ask for snapshot.
  • Return job instance after run(), rather than result.
  • Rename simulators according to PROVIDERNAME_SIMPLEALIAS_simulator_LANGUAGEORPROJECT
  • Move simulator extensions to qiskit/extensions/simulator
  • Move Rzz and CSwap to standard extension library
Assets 2
You can’t perform that action at this time.