Skip to content

0 43 0

Upgrade Instructions

  • Python SDK
  • The IDE upgrades automatically. Please note that you might need to clear your cache after the version update. See this guide for help.

Enhancements

  1. Support signed quantum numerics in in-place-xor assignments (^=).
  2. Support quantum array subscripts in quantum expressions.
  3. Support quantum numeric arrays.
  4. Improve synthesis performance.
  5. Apply an automatic qubit reuse pass when the model is unconstrained.
  6. Add user-defined enums.
qfunc main(output res: qbit) {
  allocate<1>(res);
  qnv: qnum<2, False, 0>[]; // quantum numeric array
  allocate<6>(qnv);
  repeat (i: qnv.len) { inplace_prepare_int<i + 1>(qnv[i]); }
  res ^= qnv[0] + qnv[1] == qnv[2];  // array subscripts in expressions
}
@qfunc
def main(res: Output[QBit]) -> None:
    allocate(1, res)
    qnv: QArray = QArray("qnv", element_type=QNum[2, False, 0])  # quantum numeric array
    allocate(6, qnv)
    repeat(qnv.len, lambda i: inplace_prepare_int(i + 1, qnv[i]))
    res ^= qnv[0] + qnv[1] == qnv[2]  # array subscripts in expressions

Interface Changes

  1. The classical scope in Qmod no longer supports function definitions.
  2. The aer_simulator, aer_simulator_statevector, aer_simulator_density_matrix, and aer_simulator_matrix_product_state Classiq backends are no longer accessible in the SDK. Use simulator, simulator_statevector, simulator_density_matrix, and simulator_matrix_product_state instead.
  3. The @struct decorator is deprecated and will be removed in a future release. Use @dataclass instead.

Bug Fixes

  1. Fixed a bug where multiple in-place assignment statements resulted in a 22102 error.
  2. Fixed a bug where using the same variable in control operation for both the control operation and the body resulted in a non-indicative error.
  3. Fix invert and within-apply variable initialization tracking in native Qmod.
  4. Fix division with classical symbolic variables.
  5. Fix rogue comma inserted to the chemistry model classical execution code after IDE form update.
  6. Fix reporting uninitialized quantum variables in arithmetic expressions as undefined.
  7. Fix double execution on devices requiring access tokens.
  8. Fix execution configuration being applied only to the first selected device, when one of the selected devices requires an access token.
  9. Fix a bug where Grover circuit was incorrect when reflecting about states different than uniform superposition.
  10. Fix a synthesis bug that could appear in models that constrain the width and optimize depth or vice versa.

IDE

  1. Graphical Model tab redesign of nodes (Function call, Output, Assignment).
  2. Restructure of node categories (Graphical Model).
  3. Fix countries list not loading sometimes during registration.
  4. Prevent QMOD editor from crashing when compiler crashes.
  5. Redesigned the Accordion and Icon status for jobs.
  6. Quantum Program tabs moved to the left drawer.
  7. Uploading Quantum Program can now be done using the Upload button on the left drawer.
  8. 3 newly introduced tabs of Quantum Program data: Transpiled Info, Program Info, Data.

Library Additions

  1. A new technology demonstration notebook, treating a discrete quantum walk on a circle, was added to the library; see here.
  2. New rainbow options pricing notebooks in the public repository research folder.