Mantid
Loading...
Searching...
No Matches
Framework
CurveFitting
inc
MantidCurveFitting
CostFunctions
CostFuncPoisson.h
Go to the documentation of this file.
1
// Mantid Repository : https://github.com/mantidproject/mantid
2
//
3
// Copyright © 2019 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
#include "
MantidAPI/FunctionDomain.h
"
10
#include "
MantidAPI/FunctionValues.h
"
11
#include "
MantidCurveFitting/CostFunctions/CostFuncFitting.h
"
12
13
namespace
Mantid
{
14
namespace
CurveFitting {
15
namespace
CostFunctions {
16
17
namespace
PoissonLossLM {
18
double
MANTID_CURVEFITTING_DLL
calculatePoissonLossLM
(
double
observedCounts,
double
predicted);
19
double
MANTID_CURVEFITTING_DLL
calculateJacobianScaleFactor
(
double
observedCounts,
double
predicted);
20
template
<
typename
T>
int
sgn
(T val) {
return
(T(0) < val) - (val < T(0)); }
21
}
// namespace PoissonLossLM
22
26
class
MANTID_CURVEFITTING_DLL
CostFuncPoisson
:
public
CostFuncFitting
{
27
public
:
28
CostFuncPoisson
();
30
virtual
std::string
name
()
const override
{
return
"Poisson"
; }
32
virtual
std::string
shortName
()
const override
{
return
"Poisson"
; };
33
34
void
addVal(
API::FunctionDomain_sptr
domain,
API::FunctionValues_sptr
values)
const override
;
35
void
addValDerivHessian(
API::IFunction_sptr
function,
API::FunctionDomain_sptr
domain,
36
API::FunctionValues_sptr
values,
bool
evalDeriv =
true
,
37
bool
evalHessian =
true
)
const override
;
38
39
private
:
41
void
calculateDerivative(
API::IFunction
&function,
const
API::FunctionDomain
&domain,
42
API::FunctionValues
&values)
const
;
44
void
calculateHessian(
API::IFunction
&function,
const
API::FunctionDomain
&domain,
45
const
API::FunctionValues
&values)
const
;
46
};
47
48
}
// namespace CostFunctions
49
}
// namespace CurveFitting
50
}
// namespace Mantid
CostFuncFitting.h
FunctionDomain.h
FunctionValues.h
Mantid::API::FunctionDomain
Base class that represents the domain of a function.
Definition
FunctionDomain.h:31
Mantid::API::FunctionValues
A class to store values calculated by a function.
Definition
FunctionValues.h:25
Mantid::API::IFunction
This is an interface to a fitting function - a semi-abstarct class.
Definition
IFunction.h:166
Mantid::CurveFitting::CostFunctions::CostFuncFitting
A semi-abstract class for a cost function for fitting functions.
Definition
CostFuncFitting.h:29
Mantid::CurveFitting::CostFunctions::CostFuncPoisson
CostFuncPoisson : Implements a cost function for fitting applications using a Poisson measure.
Definition
CostFuncPoisson.h:26
Mantid::CurveFitting::CostFunctions::CostFuncPoisson::name
virtual std::string name() const override
Get name of minimizer.
Definition
CostFuncPoisson.h:30
Mantid::CurveFitting::CostFunctions::CostFuncPoisson::shortName
virtual std::string shortName() const override
Get short name of minimizer - useful for say labels in guis.
Definition
CostFuncPoisson.h:32
Mantid::API::FunctionValues_sptr
std::shared_ptr< FunctionValues > FunctionValues_sptr
typedef for a shared pointer
Definition
FunctionValues.h:108
Mantid::API::IFunction_sptr
std::shared_ptr< IFunction > IFunction_sptr
shared pointer to the function base class
Definition
IFunction.h:748
Mantid::API::FunctionDomain_sptr
std::shared_ptr< FunctionDomain > FunctionDomain_sptr
typedef for a shared pointer
Definition
FunctionDomain.h:43
Mantid::CurveFitting::CostFunctions::PoissonLossLM::calculateJacobianScaleFactor
double MANTID_CURVEFITTING_DLL calculateJacobianScaleFactor(double observedCounts, double predicted)
Definition
CostFuncPoisson.cpp:60
Mantid::CurveFitting::CostFunctions::PoissonLossLM::calculatePoissonLossLM
double MANTID_CURVEFITTING_DLL calculatePoissonLossLM(double observedCounts, double predicted)
Definition
CostFuncPoisson.cpp:80
Mantid::CurveFitting::CostFunctions::PoissonLossLM::sgn
int sgn(T val)
Definition
CostFuncPoisson.h:20
Mantid
Helper class which provides the Collimation Length for SANS instruments.
Definition
AbsorptionCorrection.h:18
Generated by
1.9.8