forked from npshub/mantid
-
Notifications
You must be signed in to change notification settings - Fork 0
/
EstimatePolynomial.h
49 lines (43 loc) · 2.15 KB
/
EstimatePolynomial.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// Mantid Repository : https://github.com/mantidproject/mantid
//
// Copyright © 2018 ISIS Rutherford Appleton Laboratory UKRI,
// NScD Oak Ridge National Laboratory, European Spallation Source,
// Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
// SPDX - License - Identifier: GPL - 3.0 +
#pragma once
#include "MantidHistogramData/DllConfig.h"
#include "MantidHistogramData/Histogram.h"
#include <vector>
namespace Mantid {
namespace HistogramData {
/** EstimatePolynomial : TODO: DESCRIPTION
*/
/**
* @brief estimateBackground Estimate a polynomial using Gauss-Markov.
*
* Uses Gauss-Markov to find the best linear unbiased estimator (BLUE). This
* will select the functional
* form that has the smallest reduced chisq (divided by degrees of freedom) that
* is less than or equal
* to the polynomial order requested.
* https://en.wikipedia.org/wiki/Gauss%E2%80%93Markov_theorem
*
* @param order Maximum order of the polynomial to fit
* @param i_min Left boundary of window (inclusive)
* @param i_max Right boundary of window (exclusive)
* @param p_min Left boundary of data in window to skip (inclusive)
* @param p_max Right boundary of data in window to skip (exclusive)
* @param out_bg0 constant term
* @param out_bg1 linear term
* @param out_bg2 quadratic term
* @param out_chisq_red reduced chisq (chisq normalized by degrees of freedom)
*/
MANTID_HISTOGRAMDATA_DLL void estimateBackground(const size_t order, const Mantid::HistogramData::Histogram &histo,
const size_t i_min, const size_t i_max, const size_t p_min,
const size_t p_max, double &out_bg0, double &out_bg1, double &out_bg2,
double &out_chisq_red);
MANTID_HISTOGRAMDATA_DLL void estimatePolynomial(const size_t order, const Mantid::HistogramData::Histogram &histo,
const size_t i_min, const size_t i_max, double &out_bg0,
double &out_bg1, double &out_bg2, double &out_chisq_red);
} // namespace HistogramData
} // namespace Mantid