Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementation of signal_state for newly added BlockEncoding instances. #1104

Open
charlesyuan314 opened this issue Jul 2, 2024 · 3 comments
Assignees

Comments

@charlesyuan314
Copy link
Contributor

See #1094.

This method should be implemented for all BlockEncoding instances once the new interface around PrepareOracle has stabilized.

@mpharrigan
Copy link
Collaborator

Can you add more detail about what's required here

@charlesyuan314
Copy link
Contributor Author

We need to do the following:

  • Create a quantum interface for state preparation. It should expose essentially the same signature as BlackBoxPrepare, which should be made an instance.
  • Implement signal_state for all BlockEncoding instances to return an instance of that quantum interface. In most cases (including linear combination, product, Chebyshev polynomial) this will be PrepareIdentity.
  • In composite block encodings, add checks that the signal state of the constituents is permitted. In most cases this check will require that the signal state be PrepareIdentity.

@charlesyuan314
Copy link
Contributor Author

One challenge here is that we have been increasingly committing to the PrepareOracle abstract class as the interface of state preparation. This class is not a quantum interface; it generates its signature dynamically just like the old BlockEncoding interface did.

I haven't yet come to a conclusion on how to add/change the Prepare interface in a way that isn't highly confusing/redundant with the existing PrepareOracle and BlackBoxPrepare.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants