Skip to content


Upgrade Instructions

Interface Changes

  1. Change the method classiq.quantum_functions.function_library.FunctionLibrary.add_function to return None (instead of CustomFunction). If you need access to the CustomFunction, retrieve it with the get_function method.
  2. When specifying the backend provider IBM Quantum, you now need to set the backend provider name field to IBM Quantum instead of IBMQ.
  3. Rename methods in CombinatorialOptimization class: generate method changed to synthesize, and change get_model method to get_ansatz_model.
  4. Parametrized functions (such as rotation gates) can now get an arithmetic expression as well as a single parameter. Expressions and parameters are now provided to the function using str or sympy. See the Parameters section of the user guide.

New Features

  1. Add support for parametric functions and storing function definitions in .qfunc files. See Parametric functions and the .qfunc extension.
  2. Analyzer SDK:

    • Add an option to select devices in the analyzer SDK. You can explicitly choose the devices to transpile the analyzed circuit to create the comparison table.
    • Display the cloud provider of the devices in the comparison table.
    • Add the hardware_aware_resynthesize method to the analyzer SDK, which receives the device and provider. It then performs resynthesis, taking into account the properties of the hardware.
    • After you select devices with the best fit to a given comparison property, you can now resynthesize from the analyzer SDK to those devices.
  3. Add new configuration to the show_interactive method. You can now access the analyzer web app using show_interactive(web_app=True).

  4. Improve hardware-aware synthesis:

  5. Access the analyzer heatmap graph (from the dashboard) via the SDK.

  6. When using the Python SDK, access the documentation by invoking the classiq.open_help() command.
  7. Add the option to invert functions. See Inversion.
  8. Add the option to control functions. See Control.
  9. See the resulting model of the ansatz and set a user-defined model or circuit as the ansatz using the CombinatorialOptimization module.
  10. Add support for OpenQASM 3.0 as an output format.
  11. Use the CombinatorialOptimization module to convert inequality constraints to a penalty term using slack variables.