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
23void ProductFunction::function(const API::FunctionDomain &domain, API::FunctionValues &values) const {
25 values.setCalculated(1.0);
26 for (size_t iFun = 0; iFun < nFunctions(); ++iFun) {
27 domain.reset();
28 getFunction(iFun)->function(domain, tmp);
29 values *= tmp;
30 }
31}
32
39 calNumericalDeriv(domain, jacobian);
40}
41
42} // namespace Mantid::CurveFitting::Functions
gsl_vector * tmp
#define DECLARE_FUNCTION(classname)
Macro for declaring a new type of function to be used with the FunctionFactory.
Base class that represents the domain of a function.
A class to store values calculated by a function.
void calNumericalDeriv(const FunctionDomain &domain, Jacobian &jacobian)
Calculate numerical derivatives.
Definition: IFunction.cpp:1031
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 functionDeriv(const API::FunctionDomain &domain, API::Jacobian &jacobian) override
Calculate the derivatives.