Skip to content

Improve handling of QROAMClean.adjoint() #1458

@wjhuggins

Description

@wjhuggins

Currently QROAMClean.adjoint() returns a QROAMCleanAdjointWrapper.

I understand that this is because the exact circuit construction for uncomputing the table lookup depends on the measurement outcomes and we do not have first-class support for measurement and classical data at this time (see #445). Even with support for classical data it seems difficult to handle this case because the classical data will be randomly determined.

One downside of using QROAMCleanAdjointWrapper as it is currently implemented is that the call graph only includes the Toffoli counts from the literature. It would be good to get better Clifford counts here, even if we can't fully decompose the circuits without knowing the measurement outcomes.

Also, I see that there is a construction fro QROAMCleanAdjoint in the repo already. At least for symbolically specified instances QROAMClean it seems like we would be better off using QROAMCleanAdjoint than QROAMCleanAdjointWrapper.

Perhaps someone who has a better handle on this part of the code would have better suggestions, but I thought I would create an issue to flag it.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions