Replaced custom ApplyAndAssuming0Target with AND from std #2123
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We used to have custom implementation for AND before we added it to the standard library. Now that we have it in std, this PR removes custom ApplyAndAssuming0Target and replaces it with AND. This standard implementation is via PhaseCCX, and has the same T-count of 4, T-depth of 2, but uses fewer gates overall.
Previous custom implementation:

Implementation from the standard library:

This new implementation results in different sequence of gates in Shor's sample, which, in turn, changes its behavior on the specific test we have for it. As randomness is removed from tests, that scenario results in guessing factorization, which isn't great. So this PR changes the default sample for Shor.