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).