Declare the Input and Inout ports of NativeFunctionDefinition without a size expression. Their size will be deduced from calls to it.
Add parsed_counts attribute to ExecutionDetails, where the states are
parsed according to their arithmetic information.
Change the transpile_to_hardware field in ExecutionPreferences to
receive an optimization level and use it.
Add Hadamard transform as a new built-in function.
Improve detection of auxiliary qubits for visualization in the IDE.
Add the initial_point member to OptimizerConfig, which is used in construct_combinatorial_optimization_model to specify an initial value for the optimization algorithm.
Filter the execution chart received after execution of circuits in the IDE by the list of results. See Filtering results.
Automatically parse the value field of SavedResult according to
its type, with no need to call parse_obj to parse execution results.
Introduce the strict_zero_ios flag in the function call. This gives you
(rather than the engine) responsibility for memory management.
Previously, this was done by the assign_zero_ios flag, which is
deprecated. The logic has been reversed: previously setting assign_zero_ios=True now corresponds to strict_zero_ios=False, and vice
versa.
Change the default value of OptimizerConfig.alpha_cvar to 1.0.
Change the qubit order of the counts and state_vector fields in ExecutionDetails. They are now returned with lsb right qubit order.
Change the endianness terminology in ExecutionDetails to qubit order, such that the result 0b10 in qubit order lsb right refers to the number 2.
Extend the "Advanced Usage > Qubit Release" section and rename it as "Memory Management".
It thoroughly explains the Classiq engine's capabilities of allocating and releasing
qubits and illustrates how user-provided input can aid the synthesis
engine in improving the circuit performance.