Qualtran
Qualtran copied to clipboard
Use QROAMClean in Chemistry Sparse Prepare bloq
Uses the new QROAMClean bloq which allows the costs to match more closely. Some issues:
- ~Delegating the sparse indices output from QROAM as junk registers causes an issue with building block encodings as they are no longer selection registers (xref: #549) so will not match SELECTs signature. This was a hack at the time but is a blocker now.~
- I went back and forth on how to implement the adjoint with the current implementation functional but not pleasant and error prone (cc @mpharrigan for why I was asking those questions in the chat). I think #1315 maybe would allow use to use the Adjoint wrapper here by delegating the register wrangling logic to QROAM but not 100% sure.
- There's an off by 2 Toffoli count difference between openfermion and qualtran's QROAM which I haven't tracked down yet.
flyby bug fix for QROAMClean wire symbols and includes #1302 which should be merged first.