Releases: Classiq/classiq-library
Releases · Classiq/classiq-library
Classiq 0.40.0
Upgrade Instructions
- Python SDK
- The IDE upgrades automatically.
Interface Changes
- The
control
andquantum_if
statements have been unified into one
statement in native QMOD and the SDK under the namecontrol
.- SDK: The unified
control
statement accepts a qbit (q
), a q-array
(qbv
), or a comparison of a qnum and an integer (n == 5
) as the
first argument. - SDK: The old
control
syntax (withctrl
as the second argument) is
deprecated and will be removed in the next release. - SDK: The
quantum_if
operator is deprecated and will be removed in the
next release. - Native QMOD:
quantum_if
is no longer supported, use the newcontrol
statement instead.
- SDK: The unified
- SDK: The
QParam
andArray
types are deprecated and will be
removed in the next release.- Instead of
QParam[int]
, useCInt
. - Instead of
QParam[float]
, useCReal
. - Instead of
QParam[bool]
, useCBool
. - Instead of
QParam[List[...]]
, useCArray[...]
. - Instead of
QParam[Array[..., size]]
, useCArray[..., size]
.
- Instead of
- SDK: Using Python types (
int
,bool
, etc.) in struct declarations
(@struct
) is deprecated and will not be supported by the next release.
Instead, use classical data types (CInt
,CBool
, etc., see above). - Default timeout for sending jobs to AWS changed from 5 minutes to 4 hours.
Deprecations
- The error mitigation settings in the execution preferences are no longer
available. - The
aer_simulator
backend has been removed. Use Classiq's simulator backend
instead (ClassiqSimulatorBackendNames.SIMULATOR
).
Enhancements
- Improved error messages.
Bug fixes
- Fixed a bug preventing execution of circuits synthesized with hardware aware synthesis on Azure and IonQ.
Classiq 0.39.0
Upgrade Instructions
- Python SDK
- The IDE upgrades automatically.
Enhancements
- Improved the native QMOD syntax of the
repeat
,if
statements.
For details, see Classical Control Flow. - Improved the native QMOD syntax of the
control
,power
, andinvert
statements.
For details, see Quantum Operators. - Added the
classiq.execution.all_hardware_devices.get_all_hardware_devices
function to the Python SDK.
Deprecations
- In the SDK, the
classiq.analyzer.analyzer.Analyzer.get_available_devices
method is
deprecated. Useclassiq.execution.all_hardware_devices.get_all_hardware_devices
instead.
Interface Changes
- The
len
method forQArray
,QCallableList
, andQParam
of lists, is now a property.
use.len
instead of.len()
.
Classiq 0.38.0
Upgrade Instructions
- Python SDK
- The IDE upgrades automatically.
Overview
Release 0.38 achieves a major milestone in the migration to the new QMOD language. The following general changes are now in effect:
- In the IDE, Synthesis page is now removed. Writing and synthesizing models is now done exclusively in the Model page.
- All pre-defined models previously available in the Synthesis page in Json format are now available in the Model page in native QMOD syntax.
- Many QMOD language enhancements were introduced to enable the coding of all available models and applications, in both native QMOD and in its Python embedding (see detailed list below).
- A new QMOD reference manual, covering all the language concepts and constructs in both input formats, is available QMOD-language-reference.
- Documentation content covering old input formats - the Json input and the old SDK classes - has been removed
Language and SDK Enhancements
- Native QMOD now supports classical POD struct declaration, initialization, and member access.
- Native QMOD now supports within-apply statements.
- Native QMOD now supports generalized in-place quantum assignment.
- Add method
parsed_counts_of_outputs
to sample's result in the Python SDK, see
sample. - Constants can now be used in the
qmod
-python integration with theQConstant
class. - Native QMOD now supports global constants.
- The quantum numeric type can now receive sign and fraction digits as type arguments in parameter declarations, in both the SDK and native QMOD.
- Native QMOD example:
qnum<5, True, 2>
to indicate a 5-bit signed number with 2 fraction digits. - SDK examples:
QNum[5, True, 2]
to indicate a 5-bit signed number with 2 fraction digits (as a function argument)QNum("x", 5, True, 2)
to indicate a 5-bit signed number with 2 fraction digits (as a local variable)
- Native QMOD example:
- The amplitude encoding flavor of quantum arithmetic (
*=
operator) is now an in-place operation in both the SDK and native QMOD.
Interface Changes
- The
QStruct
decorator was renamed tostruct
in theqmod
-python integration. - The
qfunc
decorator is renamed toquantum_function
. The newerQFunc
andExternalQFunc
decorator are now available asqfunc
andqfunc(external=True)
. Using either classes as a decorator is deprecated, and this feature may be removed in a future release. - Similarly, a new
cfunc
decorator is now available, and using the classCFunc
as a decorator is deprecated and may be removed in the future. - Renamed
GeneratedCircuit
toQuantumProgram
in the SDK. - The
QNum
type does not accept size argument without sign and fraction digits. QNum
on the right-hand side ofbind
statements must have sign and fraction digits (inferred from initialization or declaration).- The Following async methods were removed from
Analyzer
class (The documented methods without theasync
suffix are still available and can be used instead):get_available_devices_async
analyzer_app_async
plot_hardware_connectivity_async
get_hardware_comparison_table_async
- The method
show_multiple_hardware_data
was removed fromRBAnalysis
class. The async equivalentshow_multiple_hardware_data_async
can be used instead. - Removed
reinterpret_num
operation (instead useQNum
/allocate_num
arguments). - Removed
split
andjoin
operation (instead usebind
operation).
Classiq 0.30.0
Upgrade Instructions
- Python SDK
- The IDE upgrades automatically.
Enhancement
- The
SuzukiTrotter
function now accepts parameters as coefficients for itspauli_list
. - The
SuzukiTrotter
function now has adisable_scheduling
option to disable the reordering of Pauli terms. - There is a new
QDrift
Hamiltonian evolution function.
Interface Changes
- Add the Classiq Provider as an execution backend preference. It contains the AER backends, that used to be inside IBMBackendPreferences, as well as the Nvidia simulator, which used to be in NvidiaBackendPreferences. See
Classiq Provider - Deprecate the NvidiaBackendPreferences.
- Python SDK: Change annotations of input and output
QVar
types -InputQVar[...]
is now writtenInput[QVar[...]]
, and likewise forOutput
.