Mantid
Loading...
Searching...
No Matches
Framework
CurveFitting
src
Functions
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
//----------------------------------------------------------------------
10
#include "
MantidCurveFitting/Functions/ProductFunction.h
"
11
#include "
MantidAPI/FunctionFactory.h
"
12
13
namespace
Mantid::CurveFitting::Functions
{
14
15
using namespace
CurveFitting;
16
17
DECLARE_FUNCTION
(ProductFunction)
18
19
20
std
::
string
ProductFunction
::
name
()
const
{
return
"ProductFunction"
; }
21
26
void
ProductFunction::function
(
const
API::FunctionDomain
&domain,
API::FunctionValues
&values)
const
{
27
API::FunctionValues
tmp
(domain);
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
41
void
ProductFunction::functionDeriv
(
const
API::FunctionDomain
&domain,
API::Jacobian
&jacobian) {
42
calNumericalDeriv
(domain, jacobian);
43
}
44
46
void
ProductFunction::init
() {};
47
48
}
// namespace Mantid::CurveFitting::Functions
name
std::string name
Definition
Run.cpp:60
tmp
gsl_vector * tmp
Definition
AugmentedLagrangianOptimizer.cpp:49
FunctionFactory.h
DECLARE_FUNCTION
#define DECLARE_FUNCTION(classname)
Macro for declaring a new type of function to be used with the FunctionFactory.
Definition
FunctionFactory.h:151
ProductFunction.h
Mantid::API::CompositeFunction::nFunctions
std::size_t nFunctions() const override
Number of functions.
Definition
CompositeFunction.h:162
Mantid::API::CompositeFunction::getFunction
IFunction_sptr getFunction(std::size_t i) const override
Returns the pointer to i-th function.
Definition
CompositeFunction.cpp:661
Mantid::API::FunctionDomain
Base class that represents the domain of a function.
Definition
FunctionDomain.h:31
Mantid::API::FunctionDomain::reset
virtual void reset() const
Reset the domain so it can be reused.
Definition
FunctionDomain.h:39
Mantid::API::FunctionValues
A class to store values calculated by a function.
Definition
FunctionValues.h:25
Mantid::API::FunctionValues::setCalculated
void setCalculated(double value)
set all calculated values to same number
Definition
FunctionValues.cpp:59
Mantid::API::IFunction::calNumericalDeriv
void calNumericalDeriv(const FunctionDomain &domain, Jacobian &jacobian)
Calculate numerical derivatives.
Definition
IFunction.cpp:1106
Mantid::API::Jacobian
Represents the Jacobian in IFitFunction::functionDeriv.
Definition
Jacobian.h:22
Mantid::CurveFitting::Functions::ProductFunction
Allow user to create a fit function which is the product of two or more other fit functions.
Definition
ProductFunction.h:27
Mantid::CurveFitting::Functions::ProductFunction::init
void init() override
overwrite IFunction base class method, which declares function parameters
Definition
ProductFunction.cpp:46
Mantid::CurveFitting::Functions::ProductFunction::functionDeriv
void functionDeriv(const API::FunctionDomain &domain, API::Jacobian &jacobian) override
Calculate the derivatives.
Definition
ProductFunction.cpp:41
Mantid::CurveFitting::Functions::ProductFunction::function
void function(const API::FunctionDomain &domain, API::FunctionValues &values) const override
Function you want to fit to.
Definition
ProductFunction.cpp:26
Mantid::CurveFitting::Functions
Definition
VesuvioCalculateGammaBackground.h:23
std
STL namespace.
Generated by
1.9.8