Mantid
Loading...
Searching...
No Matches
LevenbergMarquardtMDMinimizer.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2009 ISIS Rutherford Appleton Laboratory UKRI,
4// NScD Oak Ridge National Laboratory, European Spallation Source,
5// Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
6// SPDX - License - Identifier: GPL - 3.0 +
7#pragma once
8
9//----------------------------------------------------------------------
10// Includes
11//----------------------------------------------------------------------
13#include "MantidCurveFitting/DllConfig.h"
16
17namespace Mantid {
18namespace CurveFitting {
19namespace CostFunctions {
20class CostFuncFitting;
21} // namespace CostFunctions
22
23namespace FuncMinimisers {
30class MANTID_CURVEFITTING_DLL LevenbergMarquardtMDMinimizer : public API::IFuncMinimizer {
31public:
35 std::string name() const override { return "Levenberg-MarquardtMD"; }
36
38 void initialize(API::ICostFunction_sptr function, size_t maxIterations = 0) override;
40 bool iterate(size_t iteration) override;
42 double costFunctionVal() override;
43
44private:
46 std::shared_ptr<CostFunctions::CostFuncFitting> m_costFunction;
48 double m_tau;
50 double m_mu;
52 double m_nu;
54 double m_rho;
56 double m_F;
57 std::vector<double> m_D;
58};
59
60} // namespace FuncMinimisers
61} // namespace CurveFitting
62} // namespace Mantid
An interface for function minimizers.
double m_mu
The damping mu parameter in the Levenberg-Marquardt method.
std::shared_ptr< CostFunctions::CostFuncFitting > m_costFunction
Pointer to the cost function.
double m_rho
The rho parameter in the Levenberg-Marquardt method.
double m_nu
The nu parameter in the Levenberg-Marquardt method.
double m_tau
The tau parameter in the Levenberg-Marquardt method.
std::shared_ptr< ICostFunction > ICostFunction_sptr
define a shared pointer to a cost function
Definition: ICostFunction.h:60
Helper class which provides the Collimation Length for SANS instruments.