This repository has been archived by the owner on Jan 12, 2024. It is now read-only.
New operation: AmplitudeTransduction #515
Labels
Area-API
Issue concerns the API design of a library, such as style guide or design principles adherence.
Kind-Enhancement
New feature or request
Pkg-Standard
Issue relates to the Microsoft.Quantum.Standard package.
tracking
This label will trigger gh-sync to create or update a mirror internal ADO issue.
Amplitude Transduction
Conceptual overview
Amplitude transduction applies an operation that encodes in amplitude the (square root of) values that a DigitalOracle computes in superposition in a register. DigitalOracle is an input to amplitude transduction. See Black-box quantum state preparation without arithmetic.
As a state preparation technique from a quantum digital oracle, amplitude transduction is useful in many use cases such as quantum walks, LCU, linear systems solving, ...
Current status
This primitive is not implemented in Q# yet.
User feedback
I need amplitude transduction for a quantum walk project and therefore tried to implement it. See AmplitudeTransduction.qs.
Proposal
New and modified functions, operations, and UDTs
See AmplitudeTransduction.qs for the Q# code.
Here are signatures of operations and comments:
Modifications to style guide
n / a
Impact of breaking changes
n / a
Examples
See QuantumWalkBurgers.
Relationship to Q# language feature proposals
n / a
Alternatives considered
n / a
Open design questions and considerations
At the end of some operations, some auxiliary qubits are epsilon close to |0> but different from |0>. Resetting these qubits to |0> would make the operation not adjointable and not controllable.
Manually writing the adjoint and the controlled version of such operations could solve this issue.
The text was updated successfully, but these errors were encountered: