XACC
rdm.hpp
1 /*******************************************************************************
2  * Copyright (c) 2019 UT-Battelle, LLC.
3  * All rights reserved. This program and the accompanying materials
4  * are made available under the terms of the Eclipse Public License v1.0
5  * and Eclipse Distribution License v1.0 which accompanies this
6  * distribution. The Eclipse Public License is available at
7  * http://www.eclipse.org/legal/epl-v10.html and the Eclipse Distribution
8  *License is available at https://eclipse.org/org/documents/edl-v10.php
9  *
10  * Contributors:
11  * Alexander J. McCaskey - initial API and implementation
12  *******************************************************************************/
13 #ifndef XACC_ALGORITHM_RDM_HPP_
14 #define XACC_ALGORITHM_RDM_HPP_
15 
16 #include "Algorithm.hpp"
17 
18 namespace xacc {
19 namespace algorithm {
20 class RDM : public Algorithm {
21 protected:
22  std::shared_ptr<CompositeInstruction> ansatz;
23  std::shared_ptr<Accelerator> accelerator;
24 
25  HeterogeneousMap parameters;
26 
27 public:
28  bool initialize(const HeterogeneousMap &parameters) override;
29  const std::vector<std::string> requiredParameters() const override;
30 
31  void execute(const std::shared_ptr<AcceleratorBuffer> buffer) const override;
32  const std::string name() const override { return "rdm"; }
33  const std::string description() const override { return ""; }
34  DEFINE_ALGORITHM_CLONE(RDM)
35 };
36 } // namespace algorithm
37 } // namespace xacc
38 #endif
Definition: Algorithm.hpp:34
const std::string name() const override
Definition: rdm.hpp:32
Definition: Accelerator.hpp:25
const std::string description() const override
Definition: rdm.hpp:33
Definition: heterogeneous.hpp:45
Definition: rdm.hpp:20