| 
    QNLP
    v1.0
    
   | 
 
Class definition for applying Grover diffusion to a marked register. More...
#include <diffusion.hpp>

Public Member Functions | |
| Diffusion () | |
| Construct a new Diffusion object.  More... | |
| ~Diffusion () | |
| Destroy the Diffusion object.  More... | |
| void | applyOpDiffusion (SimulatorType &sim, const std::vector< std::size_t > &ctrlIndices, const std::size_t target) | 
| Application of the Grover diffusion operator to already marked register. Follows the Q = -A S_0 A structure as defined in https://arxiv.org/pdf/quant-ph/0005055.pdf.  More... | |
Class definition for applying Grover diffusion to a marked register.
| SimulatorType | Class Simulator type | 
Definition at line 27 of file diffusion.hpp.
      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 
Application of the Grover diffusion operator to already marked register. Follows the Q = -A S_0 A structure as defined in https://arxiv.org/pdf/quant-ph/0005055.pdf.
| sim | The quantum simulator object to apply the operator. | 
| ctrlIndices | Vector of qubit indices on ctrl lines (non NCU target) | 
| target | Target for application of the nCZ op | 
Definition at line 49 of file diffusion.hpp.
References ncu_opt_tester::sim, and ncu_opt_tester::target.
Referenced by QNLP::SimulatorGeneral< IntelSimulator >::applyDiffusion(), and TEST_CASE().
