Skip to content

Releases: Classiq/classiq-library

Classiq 1.8.0

13 Apr 11:40

Choose a tag to compare

Released on 2026-03-30.

Upgrade Instructions

Enhancements

  • sample function: Added a new top-level sample function for executing a quantum program and retrieving results as a DataFrame directly, without managing a job object. Supports single and batch execution — pass a list of parameter dictionaries to parameters to run multiple parameter sets and receive a list of DataFrames. Also supports run_via_classiq=True to run using Classiq's provider credentials against your allocated budget. See the SDK reference for details.
  • observe function: Added a new public observe function that computes the expectation value of a Hermitian observable with respect to a quantum program's output state. Supports exact statevector calculation or shot-based estimation, batch execution, and run_via_classiq. See the SDK reference for details.
  • get_backend_details function: Added a get_backend_details function that returns a DataFrame of all supported quantum backends, including provider, backend name, type (hardware or simulator), qubit count, availability, pending jobs, and queue time.
  • calculate_state_vector function: Added a new public calculate_state_vector function that returns the full state vector of a quantum program as a DataFrame. Supports batch execution by passing a list of parameter dictionaries. Available on Classiq simulators (e.g. classiq/simulator).
  • OpenQASM in sample and ExecutionSession: You can pass OpenQASM 2.0 or 3.0 source as a string to sample() (first argument) or to ExecutionSession instead of a synthesized QuantumProgram. Results use the same histogram DataFrame shape (bitstring, counts, etc.). The parameters argument is not supported for OpenQASM strings (use a QuantumProgram for Qmod main parameters, or bind parameters inside the QASM circuit). See the Execution section of the user guide.
  • Improve error messages related to qfunc arguments.
  • Add emulate on AzureBackendPreferences to enable IonQ hardware noise simulation on Azure Quantum when using an IonQ QPU target (ionq.qpu.*); ignored for other Azure targets.
  • Add a QSVM application with a QSVM class that provides train, test, and predict methods for easy implementation of Quantum Support Vector Machine training and data classification. The relevant notebooks in the classiq-library will be updated accordingly.

Classiq 1.7.1

06 Apr 19:31

Choose a tag to compare

Released on 2026-04-06.

Upgrade Instructions

Enhancements

  • Upgrade infrastructure to enable future support in AWS Marketplace.

Classiq 1.7.0

24 Mar 09:33

Choose a tag to compare

Released on 2026-03-22.

Upgrade Instructions

Enhancements

  • IBM execution – emulate: Add optional emulate on IBMBackendPreferences and IBMConfig. Set emulate=True (default False) to run on Classiq AerSimulator with an IBM noise model derived from the backend name (e.g. ibm_pittsburgh, ibm_boston). Only valid for real IBM hardware backends (not fake backends); backend name must be in CLASSIQ_NOISE_MODELS. See IBM backends for details.
  • Add ExecutionJob.get_submitted_circuits() to return the final quantum circuits submitted to the provider (sample jobs only). The returned circuits reflect the actual QASM after transpilation and parameter assignment. Each circuit can be converted to QASM via to_qasm() or to a Qiskit QuantumCircuit via to_qiskit().
  • Amplitude threshold for state vector simulation: Added amplitude_threshold to ExecutionPreferences. When running state vector simulation, only states with amplitude magnitude strictly greater than the threshold are included in the result. Defaults to 0 (filters exactly zero-amplitude states, same as before). Setting a higher threshold reduces the size of the result for circuits where most amplitudes are negligibly small. include_zero_amplitude_outputs=True overrides this and includes all states regardless of amplitude. See State Vector Filtering for details.
  • QP Visualization: Fixed bug in the visualization of split operations
  • Add estimate_sample_cost and estimate_sample_batch_cost to the Python SDK for user-facing cost estimation before executing quantum programs. These functions return a CostEstimateResult with cost and currency fields. See SDK execution reference for details.

Bug Fixes

  • Fix error messages when calling built-in operations with the wrong number of arguments.
  • IonQ execution: Replaced explicit noise_model with an emulate flag on IonqBackendPreferences and IonQConfig. Set emulate=True (default False) to run on the IonQ simulator with a noise model derived from the backend name (e.g. qpu.aria-1aria-1). Only valid when the backend is a QPU. See IonQ backends for details.
  • QLayer check-pointing: Prefer saving only weights with torch.save(model.state_dict(), path) and model.load_state_dict(torch.load(path)). For whole-model save/load, if post_process is not picklable it is omitted and a warning is logged; after load call layer.register_post_process(your_post_process) before using the model. New constructor option serializable_post_process=False skips pickling post_process and suppresses the warning when you know it is not serializable.
  • Add estimate_sample_cost and estimate_sample_batch_cost to the Python SDK for user-facing cost estimation before executing quantum programs. These functions return a CostEstimateResult with cost and currency fields. See SDK execution reference for details.

Classiq 1.6.0

17 Mar 13:21

Choose a tag to compare

Released on 2026-03-15.

Upgrade Instructions

Bug Fixes

  • Execution – transpilation_level = None: When execution is run with no transpilation, the circuit is now submitted to the provider without any backend transpilation when it already uses only the provider’s basis gates. If the circuit contains gates not supported by the provider, an error is raised that lists the provider’s supported gates, the invalid gates in the program, and suggests using transpilation_level = "decompose" (or transpile_to_hardware = "decompose" in ExecutionPreferences).
  • Re-enable negative indices for classical arrays.
  • Fix user not getting redirected to login page when they try to synthesize but are logged out
  • IDE - result page - change exported csv to be identical to shown tables
  • QLayer: Fix saving models that contain a QLayer when post_process or the execution path use local functions or lambdas (e.g. torch.save(model, path) or saving an epoch state dict). Such callables are now omitted from the pickled state and re-created or restored after load so that save/load no longer raises "Can't pickle local object".
  • Add indicative error message when calling a classical function with quantum
    arguments in an arithmetic expression.

Enhancements

  • Predefined noise models for Classiq simulators: Add optional noise_model on ClassiqBackendPreferences to run Classiq Aer, Nvidia, and Braket Nvidia simulators with a device-style noise model. The value is a predefined name in the form <provider>_<target> (e.g. ibm_pittsburgh, ibm_boston). Supported names are listed in CLASSIQ_NOISE_MODELS; initially IBM backend names are supported. The noise model is built from the provider (e.g. via IBM Runtime) and passed to the underlying AerSimulator.
  • IonQ execution: Replaced explicit noise_model with an emulate flag on IonqBackendPreferences and IonQConfig. Set emulate=True (default False) to run on the IonQ simulator with a noise model derived from the backend name (e.g. qpu.aria-1aria-1). Only valid when the backend is a QPU. See IonQ backends for details.
  • QLayer check-pointing: Prefer saving only weights with torch.save(model.state_dict(), path) and model.load_state_dict(torch.load(path)). For whole-model save/load, if post_process is not picklable it is omitted and a warning is logged; after load call layer.register_post_process(your_post_process) before using the model. New constructor option serializable_post_process=False skips pickling post_process and suppresses the warning when you know it is not serializable.

Classiq 1.5.0

09 Mar 12:31

Choose a tag to compare

Released on 2026-03-08.

Upgrade Instructions

Bug Fixes

  • Fix an incorrect compilation when an arithmetic operation appears
    inside a repeat statement and the left-hand side uses the repeat
    index as a subscript.
  • Change default vendor from Azure to Classiq

Enhancements

  • Added use_double_precision to ClassiqBackendPreferences to control numerical precision on Nvidia and Braket Nvidia simulators. Default is False (single precision). Set use_double_precision=True for double precision. See Classiq backends for details.

  • Removed max_depth and max_gate_count from Constraints. These fields were deprecated since 0.52 and are no longer supported.

Classiq 1.4.1

05 Mar 09:17

Choose a tag to compare

Upgrade Instructions

Enhancements

  • Added use_single_precision to ClassiqBackendPreferences to control numerical precision on Nvidia and Braket Nvidia simulators. Default is False (double precision). Set use_single_precision=True to use single precision, which can be faster and use less memory. See Classiq backends for details.

Classiq 1.4.0

03 Mar 14:00

Choose a tag to compare

Upgrade Instructions

Enhancements

Classiq 1.3.0

02 Mar 14:00

Choose a tag to compare

Released on 2026-02-22.

Upgrade Instructions

Enhancements

  • The function poly_inversion now supports error_type ("relative" default or "uniform") to choose between minimizing relative error
    |xp(x)-1| or absolute uniform error |p(x)-1/x| over x in [1/kappa,1].
    The same error_type option is also available in poly_inversion_degree and poly_inversion_error.
  • Add the foreach
    statement to Qmod. Foreach iterates efficiently through the elements of a
    classical array.
  • Support QBits in addition to QNums in lookup_table.

API Changes

  1. Renamed sample to cmain_sample in legacy cscope. This does not affect any usage of ExecutionSession.

Classiq 1.2.0

18 Feb 11:49

Choose a tag to compare

Released on 2026-02-15.

Upgrade Instructions

Enhancements

  • Introduce CUDA-Q Integration, enabling translation of synthesized Qmod programs into Python CUDA-Q kernels, to leverage CUDA-Q’s high-performance simulation and hybrid quantum–classical workflows.

Bug Fixes

  • Fix compilation of symbolic values in concatenations (for example,
    [q[i], q[j]] where i and j are of type CInt).

API Changes

  • Rename parameter run_through_classiq of BackendPreferences to run_via_classiq. run_through_classiq is deprecated and will no longer be supported starting on 2026-03-09 at the earliest.

Classiq 1.1.0

11 Feb 12:23

Choose a tag to compare

Released on 2026-02-08.

Upgrade Instructions

Bug Fixes

  • IDE - Phase legend mismatches actual phase
  • Fix compilation of the I (identity) gate.
  • Fix evaluation of constants in main function parameter types.
  • Remove previously deprecated "count" column from execution result dataframe. Use "counts" column instead.

Enhancements

  • IDE - Adjustments to the table shown in "State Vector" jobs
  • IDE - Add table in "Measurement Results" jobs
  • Noise models are now available for IonQ Simulators.