Key Update: Simplified Execution
New top-level execution functions and simplified execution session methods
7 Enhancements
New capabilities and performance improvements
3 Documentation & Library Additions
New guides and notebooks
11 Bug Fixes & Deprecations
Correctness fixes and API deprecations
Simplified Execution
The execution workflow has been refreshed across several areas:- Three new top-level execution functions for one-call execution and result retrieval.
- New
ExecutionSessionmethods for simplified execution. ExecutionSessionpreferences can now be passed directly.- OpenQASM 2.0 and 3.0 strings now accepted in place of a
QuantumProgram.
New Top-Level Execution Functions
Three new top-level functions now enable execution and result retrieval in a single call, each returning results directly:sample()for shot-based measurement statistics, returned as a DataFrame.observe()for the expectation value of a Hermitian observable, returned as a scalar.calculate_state_vector()for the full quantum state including amplitudes and phases, returned as a DataFrame (simulators only).
run_via_classiq. See the Execution user guide for the full workflow and function reference.
Usage examples:
Updated Execution Session Methods
NewExecutionSession methods sample() and estimate() replace earlier dedicated batch functions (see Execution Session user guide), supporting both single and batch execution by accepting a parameter dictionary or a list of dictionaries.
The dedicated batch_sample, submit_batch_sample, batch_estimate, and submit_batch_estimate methods are deprecated as a result, with a removal date of June 22nd, 2026.
Usage examples:
ExecutionSession method minimize() for variational optimization of a cost function over the quantum program’s initial parameter values has been renamed to variational_minimize.
variational_minimize is now also available as a standalone function, usable outside the scope of ExecutionSession. It supports Hamiltonian and classical cost functions, run_via_classiq, and includes improved input validation. For more details, see SDK Reference.Direct Execution Session Preferences
ExecutionSession now also accepts configuration parameters directly as keyword arguments, rather than through a separate ExecutionPreferences object.
Usage example:
ExecutionPreferences object via execution_preferences= can still be used, but is deprecated and will be removed on June 22nd, 2026.
Parameters that
ExecutionSession may now accept directly: backend, num_shots, random_seed, transpilation_option, run_via_classiq, config.OpenQASM Support
OpenQASM 2.0 and 3.0 strings are now accepted directly bysample() and ExecutionSession as an alternative to a synthesized QuantumProgram. Results are returned in the same histogram DataFrame format.
Note that the parameters argument is not supported for OpenQASM strings. For parametric circuits, use a QuantumProgram, or bind parameters inside the QASM circuit directly. See the Execution and Execution Session user guides for more details.
Enhancements
Seamless Support for Larger Models
The SDK now handles significantly larger synthesis and execution workloads without hitting payload size limits. Upgraded backend data handling enables seamless processing of large-scale models and datasets, requiring no changes from users.Improved Visualizer Rendering
The visualizer can now fully render large circuits, with all child operations visible. This lifts a previous limitation where a per-block child operation limit could leave some operations unrendered in large circuits.GitHub Copilot in Classiq Studio
GitHub Copilot is now available within Classiq Studio, our web-based pre-configured IDE. It includes three main capabilities:- Chat-based AI Assistant: ask questions about the Qmod language, Classiq workflow, or circuit debugging.
- Coding agent: let Copilot write or refactor your Qmod code.
- Autocomplete: inline suggestions as you write your quantum algorithm within the Studio.

Faster Synthesis for Large Hamiltonians
Synthesis for models containing large Hamiltonian objects is now significantly faster. If you have been working with molecule simulations or large combinatorial problems and synthesis felt slow, this directly cuts that wait time. See Observables and Operators for how Hamiltonians are defined and used in Qmod.Qmod-Variable Array Slice Operator
classiq.qmod.symbolic now includes a slice(array, start, stop) operator that accepts unsigned integer Qmod variables as the start and stop arguments (see Path Operators). It is the slice counterpart to the existing subscript operator for single-element access.
When array is a Qmod variable, the standard bracket syntax array[start:stop] can be used directly; the slice() syntax is required when array is a regular Python list and integer Qmod variables are used as indices.
QSVM Application (QML)
A new Quantum Support Vector Machine (QSVM) module is now available in the Classiq Python SDK. It combines quantum-computed kernel matrices with classical SVMs, enabling quantum-enhanced classification through aQSVM class with train, test, and predict methods.
Users can select from built-in quantum feature maps or supply their own. The SDK handles circuit synthesis, execution, and kernel-matrix construction automatically. Relevant notebooks in the Classiq Library have been updated accordingly.
New SDK Utilities
Two new utility functions have been added to the SDK for diagnostics and backend exploration:-
print_diagnostics()function: A newclassiq.print_diagnostics()function prints a snapshot of the current SDK environment, including SDK version, Python version, backend host and version, authentication status, and user ID. Useful for quick inclusion in support tickets. -
get_backend_details()function: A new function that returns a DataFrame of all supported quantum backends, with details on provider, backend name, type (hardware or simulator), qubit count, availability, pending jobs, and queue time. For details, see the Execution user guide.
Documentation Additions
- Hello World Guide: Build, synthesize, and run your first quantum algorithm, covering everything you need before diving deeper into the Classiq platform.
-
Streamlined Execution and Execution Session Guides: The Execution and Execution Session user guides have been updated to cover the three new execution functions, the updated
ExecutionSessionmethods, direct preferences passing, and a step-by-step workflow guide. See the Simplified Execution section for more details.
Library Additions
- 1D Fermi-Hubbard Model Simulation: A new notebook for simulating the 1D Fermi-Hubbard model has been added to the Classiq Library. The Fermi-Hubbard model is a key model in condensed matter physics; this notebook, inspired by Google Quantum AI’s 2020 experiment, demonstrates state preparation, time evolution, and spin-charge separation using the Classiq SDK. The implementation is fully high-level, with optimized quantum circuits generated automatically.
Bug Fixes
-
Fixed unintended relative phase in controlled amplitude preparation:
prepare_amplitudesandinplace_prepare_amplitudesstate preparation functions (see state preparation routines) could introduce an unintended global phase in certain scenarios. For the uncontrolled version this is unobservable, but when used inside acontrol()statement (see control), the global phase could become a relative phase conditional on the control qubit. This is now fixed. -
Combinatorial optimization now handles degenerate constraints correctly:
CombinatorialProblemconverts classical optimization problems into quantum models for algorithms like QAOA (see Learning Optimization). AKeyErrorthat was raised when an inequality constraint became degenerate (collapsed to a single feasible value) after another constraint had already fixed one of its variables to a single value is now corrected. -
Inconsistency in gate arguments of QASM output resolved:
QuantumProgram.qasmcould produce incorrect gate arguments in certain scenarios. While transpilation would correct this automatically during synthesis, the problem could carry through to simulation when manually disabling transpilation viatranspilation_option=TranspilationOption.NONE(see Quantum Program Transpilation). This is now fixed. - Models saved with older SDK versions can now be successfully synthesized: A compatibility issue that prevented most models saved with earlier SDK versions from being synthesized is now resolved.
- Circuit visualizer now able to recover from GPU context loss: The visualizer would go blank and fail to recover if the WebGPU/WebGL graphics context was lost. The visualizer now includes automatic recovery from context loss.
- NVIDIA GPU worker now initializes correctly: An issue that caused the NVIDIA GPU worker to fail during initialization is now fixed.
Deprecations
ExecutionSessionbatch methods deprecated:batch_sampleandbatch_estimateare replaced by passing parameters directly toExecutionSession.sample()orExecutionSession.estimate(), as covered in the Simplified Execution section above.
Removal date: June 22nd, 2026.ExecutionPreferencesobject deprecated: Replaced with direct keyword arguments inExecutionSession, as covered in the Simplified Execution section above.
Removal date: June 22nd, 2026.thetaparameter ofphaserenamed tocoefficient: The oldthetaparameter name has been deprecated and removed for thephasefunction specifically; it remains valid in other functions.randomized_benchmarkingfunction deprecated and removed: This function has been deprecated and removed from the SDK.pretty_qasmfield in Synthesis Preferences removed: OpenQASM 2 output is now always formatted with line breaks inside gate declarations (the previous default). If you were explicitly settingpretty_qasm=Falseto get unformatted output, that option no longer exists (see synthesis preferences user guide).