Version 0.2.3 (December 12, 2022)


  • Add DRAG correction for the SCQubits simulator. Also improve the interpolation for the idling gates for continuous pulse shape. (#156)

Bug Fixes

  • Fix usage of rand_unitary and rand_ket. (#163)

  • Fix the final time calculation in GateCompiler.compile. (#162)

  • Fix bug for circuit with selected measurement result. (#167)

  • Fix bugs in the analytical pulse shapes. (#169)

  • Fix the swap gate plotting. (#170) and (#177)

  • Filter the measurement probability (#182)

  • Add a default max_step based on the circuit time (#183)


  • Fix parsing of package versions in packaging 22. (#181)

Version 0.2.2 (June 20, 2022)


  • Correct the spelling of Hadamard. (#132)

  • Support the dev.major branch of qutip. (#136)

  • Export circuit plots as png with dpi. (#139)

Bug Fixes

  • Fix Circuit Plotting for non-reversed states. (#137)

  • Fix add_gate behavior when supplied multiple indices. (#142)

  • Quantum circuits inherit user gates from add_circuit. (#144)

Version 0.2.1 (Feb 20, 2022)

This release includes a revision of the documentation and adds more code examples in the API doc strings.

Bug Fixes

  • Remove the check on the initial state dimension in (#127)


  • Rewrite the documentation for the pulse-level simulation. (#121)

  • Add more code examples in the doc strings. (#126)

Version 0.2.0 (Nov 26, 2021)

This release adds a few new features to the pulse-level simulator.

PRs are collected


  • MAJOR Add the Model class that represents the physical model including hardware parameters, control and drift Hamiltonians and noise objects. (#105)

  • Separate the gate definition from the QubitCircuit.propagators method (#83)

  • Support different pulse shapes. (#85)

  • Use autosummary to generate a summary of API docs. (#103)

  • Improve the scheduling algorithm. (#105)


Compatibility Note: The behaviour of Processor.pulses changes significantly from version 0.1 to version 0.2. In 0.1, if no control coefficients are added, pulses contains a list of partially initialized Pulse objects. They include control Hamiltonians but have no coefficients or tlist. This behaviour has changed. From 0.2, the list only includes controls that have non-trivial dynamics. To inspect the available control Hamiltonians, please use Processor.get_control and Processor.get_control_labels.

Version 0.1.2 (Nov 25, 2021)

This micro release adds more thorough documentation for the project and fixes a few bugs in QubitCircuit and Processor.

PRs are collected at


  • Efficient Hadamard transform. (#103)

  • Make circuit latex code accessible in QubitCircuit. (#108)

Bug Fixes

  • Fix the leaking noise objects in Processor. (#89)

  • Fix a bug in time-dependent collapse operators in Processor. (#107)

Version 0.1.1 (July 28, 2021)

This micro release adds more thorough documentation for the project and fixes a few bugs in QubitCircuit and Processor.

PRs are collected here.


  • Improve the documentation.

  • Workflows for releases and automatically building the documentation, migrated from qutip. (#49, #78)

  • The part of tex code taken from circuit is removed due to licence issue. Instead, the latex code now requires the user to install qcircuit in advance. (#61)

  • Rename Noise.get_noisy_dynamics with Noise.get_noisy_pulses. The new name is more appropriate because it returns a list of Pulse, not a QobjEvo. The old API is deprecated. (#76)

  • Add more thorough documentation for installing external dependencies for circuit plotting. (#65)

Bug Fixes

  • Add the missing drift Hamiltonian to the method Processor.run_analytically. It was missing because only the control part of the Hamiltonian is added. (#74)

  • Fix a few bugs in QubitCircuit: Make QubitCircuit.propagators_no_expand private. It will be removed and replaced by QubitCircuit.propagators. The attributes QubitCircuit.U_list is also removed. (#66)

Developer Changes

  • Documentation is moved from /docs to /doc. (#49, #78)

Version 0.1.0 (May 14, 2021)

This is the first release of qutip-qip, the Quantum Information Processing package in QuTiP.

The qutip-qip package used to be a module qutip.qip under QuTiP (Quantum Toolbox in Python). From QuTiP 5.0, the community has decided to decrease the size of the core QuTiP package by reducing the external dependencies, in order to simplify maintenance. Hence a few modules are separated from the core QuTiP and will become QuTiP family packages. They are still maintained by the QuTiP team but hosted under different repositories in the QuTiP organization.

The qutip-qip package, QuTiP quantum information processing, aims at providing basic tools for quantum computing simulation both for simple quantum algorithm design and for experimental realization. Compared to other libraries for quantum information processing, qutip-qip puts additional emphasis on the physics layer and the interaction with the QuTiP package. The package offers two different approaches for simulating quantum circuits, one with QubitCircuit calculating unitary evolution under quantum gates by matrix product, another called Processor using open system solvers in QuTiP to simulate the execution of quantum circuits on a noisy quantum device.