Changelog#

Version 1.1.0#

  • Small syntax change for placing wire cuts or cz cuts directly
    • Instead of cut_circuit.append(cut, [1]) now use cut_circuit.append(cut(), [1])

    • Instead of cut_circuit.append(cutCZ, [0,1]) now use cut_circuit.append(**cutGate(CZGate(), 0, 1))

    • Check documentation for details on how to use.

  • Comprehensive refactor of codebase and documentation to improve readability and maintainability.

Version 1.0.2#

  • Fix bug in transpile_experiments()

  • Adjust supported qiskit and python versions to better match iqm-client
    • Drop Python 3.10 support

    • Drop qiskit 1.0 support

    • Supported versions now Python >= 3.11, < 3.13 and qiskit >= 1.1, < 3.0

Version 1.0.1#

  • Fix typo in pyproject.toml

Version 1.0.0#

  • Yanked due to pyproject.toml typo. Please use 1.0.1 instead.

  • Support for Qiskit 2.x

  • QCut now supports Qiskit 1.0+

Version 0.9.2#

  • Minor fix

Version 0.9.1#

  • Fixes for issues for subcircuit construction with Qiskit > 1.2
    • Qiskit version requirement updated to >= 1.0, < 2.0

Version 0.9.0#

  • Migrate from index based Z-observables to Qiskits SparsePauliOps
    • The observables parameter for all functions now takes a list of Qiskits SparsePauliOp objects instead of lists of qubit indices.

    • This allows for more general observables to be calculated, including multi-qubit observables and observables with different Pauli operators.

    • Check documentation for details on how to use.

Version 0.8.0#

  • Support for cutting 2 qubit gates
    • Added cutGate function for cutting 2 qubit gates directly.

    • Cutting done by transpiling the 2 qubit gate into a cut CZ gate with appropriate basis changes.

    • For non CZ family gates this results in suboptimal decompositions. More optimised decompositions will be added in future releases.

    • Check documentation for details on how to use.

Version 0.7.0#

  • Rework transpilation workflow
    • Transpilation now done per subcircuit instead of per experiment circuit.
      • Per experiment transpilation still provided for more control.

      • Users can of course still manually transpile circuits before passing to QCut.

    • This greatly reduces the number of transpilation calls needed, improving performance.

    • Check documentation for details on how to use.

  • Bug fixes

Version 0.6.0#

  • Support cutting CZ gates
    • Added support for cutting CZ gates in addition wire cuts.

    • Check documentation for details on how to use.

  • Added automatic cut finding feature
    • Added QCutFind module for automatically finding good cut locations in a circuit.

    • Check documentation for details on how to use.

  • Bug fixes

  • Drop windows support for the time being due to METIS issues
    • Windows users should use WSL

Version 0.3.0#

  • Support for IQM Qiskit 17.8
    • Added support for IQM Qiskit 17.8.

  • Removed built in mitigate flag

  • Bug fixes

  • Remove old two qubit gate CutWire operation
    • Users using the old method can consult documentation for migration help

Version 0.2.4#

  • Bugfix for incorrect partitioning for cases where there are multipe cuts on a single wire

Version 0.2.3#

  • Major optimisation on _move_to_new_wire method.
    • Old version took around 11s for a random circuit with depth of 50 and 50 qubits.

    • New version takes around 0.2s for the same circuit.

Version 0.2.2#

  • Bugfix for array overflow in get_experiment_circuits

Version 0.2.1#

  • Hotfix for incorrect version of qiskit-aer in pyproject.toml.

  • Fix pypi workflow

Version 0.2.0#

  • Single qubit cut gate now the default cut method
    • Greatly simplifies placing cuts.

    • Old two qubit gate deprecated and will be removed soon.

    • Check out documentation for migration help.

Version 0.1.3#

  • Hotfix for source files not included in pypi build.
    • 0.1.0 - 0.1.2 not installable.

Version 0.1.2#

  • Add Qiskit 1.0 support.
    • Supported versions now >= 0.45.3, < 1.2.

    • No worflow changes. No migration required.

    • Compatible with qiskit-iqm 13.15

  • Add Python 3.11 support.
    • Supported versions now >= 3.9, < 3.12.

  • Fix bug in _get_bounds() method.

  • Use pickle.loads(pickle.dumps()) instead of deepcopy() in _get_experiment_circuits().
    • Slight performance improvement.

  • Revert back to vx.x.x versioning scheme.

Version 0.1.1#

  • Code quality improvements:
    • Move to pyproject.toml. Contents of ruff.toml and setup.py now live in pyproject.toml.

    • Relative imports are now absolute imports.

    • All images are now located under the _static folder.

  • Added Github workflows:
    • Added github actions workflows for building the documentation and testing that the documentation can be built.

    • Added github actions workflows for testing the code.

    • Added github actions workflows for publishing to pypi.

    • Added github actions workflows for linting.

  • Revamped documentation:
    • Documentation now uses the Book theme.

    • Fixed all warnings from sphinx when building the documentation.

    • Fixed spelling mistakes.

    • Added a new page for the changelog.

  • README now contains the information to build the docs.

  • Change versioning scheme to “x.x.x” instead of “vx.x.x”.

Version 0.1.0#

  • First release