Loading runtime/objectives/gradients/FiniteDifference/FiniteDifferenceGradients.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ namespace qcor { class KernelForwardDifferenceGradient : public KernelGradientService { protected: std::shared_ptr<ObjectiveFunction> m_objFunc; double m_step = 1e-7; double m_step = 1e-3; public: const std::string name() const override { return "forward"; } Loading @@ -66,7 +66,7 @@ public: class KernelBackwardDifferenceGradient : public KernelGradientService { protected: std::shared_ptr<ObjectiveFunction> m_objFunc; double m_step = 1e-7; double m_step = 1e-3; public: const std::string name() const override { return "backward"; } Loading @@ -89,7 +89,7 @@ public: class KernelCentralDifferenceGradient : public KernelGradientService { protected: std::shared_ptr<ObjectiveFunction> m_objFunc; double m_step = 1e-7; double m_step = 1e-3; public: const std::string name() const override { return "central"; } Loading runtime/objectives/objective_function.hpp +14 −1 Original line number Diff line number Diff line Loading @@ -166,6 +166,19 @@ public: helper->set_options(options); } // CTOR: externally provided gradient method: // e.g. custom gradient calculation method for the ansatz kernel. ObjectiveFunctionImpl(void *k_ptr, std::shared_ptr<Observable> obs, xacc::internal_compiler::qreg &qq, std::shared_ptr<LocalArgsTranslator> translator, std::shared_ptr<ObjectiveFunction> obj_helper, std::shared_ptr<GradientFunction> grad_calc, const int dim, HeterogeneousMap opts) : ObjectiveFunctionImpl(k_ptr, obs, qq, translator, obj_helper, dim, opts) { gradiend_method = grad_calc; } ObjectiveFunctionImpl(void *k_ptr, std::shared_ptr<Observable> obs, std::shared_ptr<ObjectiveFunction> obj_helper, const int dim, HeterogeneousMap opts) { Loading Loading @@ -700,6 +713,6 @@ std::shared_ptr<ObjectiveFunction> createObjectiveFunction( void *kernel_ptr = reinterpret_cast<void *>(quantum_kernel_functor); return std::make_shared<ObjectiveFunctionImpl<Args...>>( kernel_ptr, observable, q, args_translator, helper, nParams, options); kernel_ptr, observable, q, args_translator, helper, gradient_method, nParams, options); } } // namespace qcor No newline at end of file Loading
runtime/objectives/gradients/FiniteDifference/FiniteDifferenceGradients.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ namespace qcor { class KernelForwardDifferenceGradient : public KernelGradientService { protected: std::shared_ptr<ObjectiveFunction> m_objFunc; double m_step = 1e-7; double m_step = 1e-3; public: const std::string name() const override { return "forward"; } Loading @@ -66,7 +66,7 @@ public: class KernelBackwardDifferenceGradient : public KernelGradientService { protected: std::shared_ptr<ObjectiveFunction> m_objFunc; double m_step = 1e-7; double m_step = 1e-3; public: const std::string name() const override { return "backward"; } Loading @@ -89,7 +89,7 @@ public: class KernelCentralDifferenceGradient : public KernelGradientService { protected: std::shared_ptr<ObjectiveFunction> m_objFunc; double m_step = 1e-7; double m_step = 1e-3; public: const std::string name() const override { return "central"; } Loading
runtime/objectives/objective_function.hpp +14 −1 Original line number Diff line number Diff line Loading @@ -166,6 +166,19 @@ public: helper->set_options(options); } // CTOR: externally provided gradient method: // e.g. custom gradient calculation method for the ansatz kernel. ObjectiveFunctionImpl(void *k_ptr, std::shared_ptr<Observable> obs, xacc::internal_compiler::qreg &qq, std::shared_ptr<LocalArgsTranslator> translator, std::shared_ptr<ObjectiveFunction> obj_helper, std::shared_ptr<GradientFunction> grad_calc, const int dim, HeterogeneousMap opts) : ObjectiveFunctionImpl(k_ptr, obs, qq, translator, obj_helper, dim, opts) { gradiend_method = grad_calc; } ObjectiveFunctionImpl(void *k_ptr, std::shared_ptr<Observable> obs, std::shared_ptr<ObjectiveFunction> obj_helper, const int dim, HeterogeneousMap opts) { Loading Loading @@ -700,6 +713,6 @@ std::shared_ptr<ObjectiveFunction> createObjectiveFunction( void *kernel_ptr = reinterpret_cast<void *>(quantum_kernel_functor); return std::make_shared<ObjectiveFunctionImpl<Args...>>( kernel_ptr, observable, q, args_translator, helper, nParams, options); kernel_ptr, observable, q, args_translator, helper, gradient_method, nParams, options); } } // namespace qcor No newline at end of file