Skip to content
Snippets Groups Projects
Commit 1bdf970f authored by Pospelov, Gennady's avatar Pospelov, Gennady
Browse files

Possibility to set raw minimizer in new kernel.

parent 93491e26
No related branches found
No related tags found
No related merge requests found
...@@ -92,7 +92,11 @@ void FitSuiteImpl::addFitStrategy(const IFitStrategy& strategy) ...@@ -92,7 +92,11 @@ void FitSuiteImpl::addFitStrategy(const IFitStrategy& strategy)
void FitSuiteImpl::setMinimizer(IMinimizer* minimizer) void FitSuiteImpl::setMinimizer(IMinimizer* minimizer)
{ {
m_kernel->setMinimizer(minimizer); if (use_new_kernel) {
m_new_kernel->setMinimizer(minimizer);
} else {
m_kernel->setMinimizer(minimizer);
}
} }
void FitSuiteImpl::runFit() void FitSuiteImpl::runFit()
......
...@@ -36,6 +36,11 @@ void Kernel::setMinimizer(const std::string& minimizerName, const std::string& a ...@@ -36,6 +36,11 @@ void Kernel::setMinimizer(const std::string& minimizerName, const std::string& a
m_minimizer.reset(MinimizerFactory::createMinimizer(minimizerName, algorithmName, options)); m_minimizer.reset(MinimizerFactory::createMinimizer(minimizerName, algorithmName, options));
} }
void Kernel::setMinimizer(IMinimizer* minimizer)
{
m_minimizer.reset(minimizer);
}
MinimizerResult Kernel::minimize(fcn_scalar_t fcn, const Parameters& parameters) MinimizerResult Kernel::minimize(fcn_scalar_t fcn, const Parameters& parameters)
{ {
setParameters(parameters); setParameters(parameters);
......
...@@ -40,6 +40,8 @@ public: ...@@ -40,6 +40,8 @@ public:
void setMinimizer(const std::string& minimizerName, const std::string& algorithmName = "", void setMinimizer(const std::string& minimizerName, const std::string& algorithmName = "",
const std::string& options = ""); const std::string& options = "");
void setMinimizer(IMinimizer* minimizer);
MinimizerResult minimize(fcn_scalar_t fcn, const Parameters& parameters); MinimizerResult minimize(fcn_scalar_t fcn, const Parameters& parameters);
MinimizerResult minimize(fcn_residual_t fcn, const Parameters& parameters); MinimizerResult minimize(fcn_residual_t fcn, const Parameters& parameters);
......
...@@ -30,6 +30,11 @@ void Minimizer::setMinimizer(const std::string& minimizerName, const std::string ...@@ -30,6 +30,11 @@ void Minimizer::setMinimizer(const std::string& minimizerName, const std::string
m_kernel->setMinimizer(minimizerName, algorithmName, options); m_kernel->setMinimizer(minimizerName, algorithmName, options);
} }
void Minimizer::setMinimizer(IMinimizer* minimizer)
{
m_kernel->setMinimizer(minimizer);
}
Minimizer::~Minimizer() = default; Minimizer::~Minimizer() = default;
MinimizerResult Minimizer::minimize(fcn_scalar_t fcn, const Parameters& parameters) MinimizerResult Minimizer::minimize(fcn_scalar_t fcn, const Parameters& parameters)
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include <memory> #include <memory>
class PyCallback; class PyCallback;
class IMinimizer;
namespace Fit { namespace Fit {
...@@ -42,6 +43,8 @@ public: ...@@ -42,6 +43,8 @@ public:
void setMinimizer(const std::string& minimizerName, const std::string& algorithmName = "", void setMinimizer(const std::string& minimizerName, const std::string& algorithmName = "",
const std::string& options = ""); const std::string& options = "");
void setMinimizer(IMinimizer* minimizer);
#ifndef SWIG #ifndef SWIG
MinimizerResult minimize(fcn_scalar_t fcn, const Parameters& parameters); MinimizerResult minimize(fcn_scalar_t fcn, const Parameters& parameters);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment