Mantid
Loading...
Searching...
No Matches
ProductFunction.cpp
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2018 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//----------------------------------------------------------------------
8// Includes
9//----------------------------------------------------------------------
12
14
15using namespace CurveFitting;
16
17DECLARE_FUNCTION(ProductFunction)
18
19
20std::string ProductFunction::name() const { return "ProductFunction"; }
21
28 values.setCalculated(1.0);
29 for (size_t iFun = 0; iFun < nFunctions(); ++iFun) {
30 domain.reset();
31 getFunction(iFun)->function(domain, tmp);
32 values *= tmp;
33 }
34}
35
42 calNumericalDeriv(domain, jacobian);
43}
44
47
48} // namespace Mantid::CurveFitting::Functions
std::string name
Definition Run.cpp:60
gsl_vector * tmp
#define DECLARE_FUNCTION(classname)
Macro for declaring a new type of function to be used with the FunctionFactory.
std::size_t nFunctions() const override
Number of functions.
IFunction_sptr getFunction(std::size_t i) const override
Returns the pointer to i-th function.
Base class that represents the domain of a function.
virtual void reset() const
Reset the domain so it can be reused.
A class to store values calculated by a function.
void setCalculated(double value)
set all calculated values to same number
void calNumericalDeriv(const FunctionDomain &domain, Jacobian &jacobian)
Calculate numerical derivatives.
Represents the Jacobian in IFitFunction::functionDeriv.
Definition Jacobian.h:22
Allow user to create a fit function which is the product of two or more other fit functions.
void init() override
overwrite IFunction base class method, which declares function parameters
void functionDeriv(const API::FunctionDomain &domain, API::Jacobian &jacobian) override
Calculate the derivatives.
void function(const API::FunctionDomain &domain, API::FunctionValues &values) const override
Function you want to fit to.
STL namespace.