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_outputsto sample's result in the Python SDK, see sample. - Constants can now be used in the
qmod-python integration with theQConstantclass. - 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
QStructdecorator was renamed tostructin theqmod-python integration. - The
qfuncdecorator is renamed toquantum_function. The newerQFuncandExternalQFuncdecorator are now available asqfuncandqfunc(external=True). Using either classes as a decorator is deprecated, and this feature may be removed in a future release. - Similarly, a new
cfuncdecorator is now available, and using the classCFuncas a decorator is deprecated and may be removed in the future. - Renamed
GeneratedCircuittoQuantumProgramin the SDK. - The
QNumtype does not accept size argument without sign and fraction digits. QNumon the right-hand side ofbindstatements must have sign and fraction digits (inferred from initialization or declaration).- The Following async methods were removed from
Analyzerclass (The documented methods without theasyncsuffix are still available and can be used instead):get_available_devices_asyncanalyzer_app_asyncplot_hardware_connectivity_asyncget_hardware_comparison_table_async
- The method
show_multiple_hardware_datawas removed fromRBAnalysisclass. The async equivalentshow_multiple_hardware_data_asynccan be used instead. - Removed
reinterpret_numoperation (instead useQNum/allocate_numarguments). - Removed
splitandjoinoperation (instead usebindoperation).