amazon-braket / autoqasm

AutoQASM is an experimental module offering a new quantum-imperative programming experience in Python for developing quantum programs.
Apache License 2.0
15 stars 9 forks source link

Incorrect program generated when iteratively updating a variable which was initialized with a Python value #15

Open rmshaffer opened 6 months ago

rmshaffer commented 6 months ago

Example which currently does not produce a correct program:

@aq.main(num_qubits=3)
def main():
    val = 0.5
    for i in aq.range(3):
        val = val + measure(i)
    return val

Either need to handle this correctly, or raise an appropriate exception with instructions on how to fix it.

This issue is extracted from https://github.com/amazon-braket/amazon-braket-sdk-python/issues/929, since it was not fixed by the corresponding PR https://github.com/amazon-braket/amazon-braket-sdk-python/pull/930.

A possible starting point for detecting/fixing this can be found on this branch: https://github.com/amazon-braket/amazon-braket-sdk-python/compare/feature/autoqasm...rmshaffer/autoqasm-py-value-iterative-assignment