Mantid
Loading...
Searching...
No Matches
Framework
API
inc
MantidAPI
IFunction1D.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
//----------------------------------------------------------------------
12
#include "MantidAPI/DllConfig.h"
13
#include "
MantidAPI/FunctionDomain1D.h
"
14
#include "
MantidAPI/IFunction.h
"
15
16
namespace
Mantid
{
17
18
namespace
CurveFitting {
19
namespace
Algorithms {
20
class
Fit
;
21
}
22
}
// namespace CurveFitting
23
namespace
API
{
24
25
//----------------------------------------------------------------------
26
// Forward declaration
27
//----------------------------------------------------------------------
28
class
MatrixWorkspace
;
29
class
Jacobian
;
30
class
ParameterTie
;
31
class
IConstraint
;
32
class
ParameterReference
;
33
class
FunctionHandler
;
42
class
MANTID_API_DLL
IFunction1D
:
public
virtual
IFunction
{
43
public
:
44
/* Overidden methods */
45
46
void
function(
const
FunctionDomain
&domain,
FunctionValues
&values)
const override
;
47
void
functionDeriv(
const
FunctionDomain
&domain,
Jacobian
&jacobian)
override
;
48
49
virtual
void
derivative(
const
FunctionDomain
&domain,
FunctionValues
&values,
const
size_t
order = 1)
const
;
50
52
virtual
void
function1D
(
double
*out,
const
double
*xValues,
const
size_t
nData)
const
= 0;
53
55
virtual
void
derivative1D(
double
*out,
const
double
*xValues,
const
size_t
nData,
const
size_t
order)
const
;
56
58
virtual
void
functionDeriv1D(
Jacobian
*jacobian,
const
double
*xValues,
const
size_t
nData);
59
60
protected
:
61
template
<
typename
FunctionType>
62
using
Function1DMethod
= void (FunctionType::*)(double *, const double *, const size_t) const;
64
template
<
typename
EvaluationMethod>
65
void
calcNumericalDerivative1D(
Jacobian
*jacobian, EvaluationMethod func1D,
const
double
*xValues,
66
const
size_t
nData);
68
virtual
void
histogram1D(
double
*out,
double
left
,
const
double
*
right
,
const
size_t
nBins)
const
;
70
virtual
void
histogramDerivative1D(
Jacobian
*jacobian,
double
left
,
const
double
*
right
,
const
size_t
nBins)
const
;
71
73
friend
class
CurveFitting::Algorithms::Fit
;
74
};
75
76
using
IFunction1D_sptr
= std::shared_ptr<IFunction1D>;
77
78
}
// namespace API
79
}
// namespace Mantid
FunctionDomain1D.h
IFunction.h
left
double left
Definition
LineProfile.cpp:80
right
double right
Definition
LineProfile.cpp:81
Mantid::API::FunctionDomain
Base class that represents the domain of a function.
Definition
FunctionDomain.h:31
Mantid::API::FunctionHandler
Classes inherited from FunctionHandler will handle the function.
Definition
IFunction.h:760
Mantid::API::FunctionValues
A class to store values calculated by a function.
Definition
FunctionValues.h:25
Mantid::API::IConstraint
An interface to a constraint.
Definition
IConstraint.h:26
Mantid::API::IFunction1D
This is a specialization of IFunction for functions of one real argument.
Definition
IFunction1D.h:42
Mantid::API::IFunction1D::Function1DMethod
void(FunctionType::*)(double *, const double *, const size_t) const Function1DMethod
Definition
IFunction1D.h:62
Mantid::API::IFunction1D::function1D
virtual void function1D(double *out, const double *xValues, const size_t nData) const =0
Function you want to fit to.
Mantid::API::IFunction
This is an interface to a fitting function - a semi-abstarct class.
Definition
IFunction.h:167
Mantid::API::Jacobian
Represents the Jacobian in IFitFunction::functionDeriv.
Definition
Jacobian.h:22
Mantid::API::MatrixWorkspace
Base MatrixWorkspace Abstract Class.
Definition
MatrixWorkspace.h:97
Mantid::API::ParameterReference
A reference to a parameter in a function.
Definition
ParameterReference.h:25
Mantid::API::ParameterTie
Ties fitting parameters.
Definition
ParameterTie.h:35
Mantid::CurveFitting::Algorithms::Fit
A generic fitting algorithm.
Definition
Fit.h:78
API
Definition
ChudleyElliotSQE.h:11
Mantid::API::IFunction1D_sptr
std::shared_ptr< IFunction1D > IFunction1D_sptr
Definition
IFunction1D.h:76
Mantid
Helper class which provides the Collimation Length for SANS instruments.
Definition
AbsorptionCorrection.h:18
Generated by
1.9.8