fbgsense 0.1
Generic FBG spectrum analysis tool
fitting.h
1/*
2 * This file is a part of the project "fbgsense", which is released under MIT license.
3 * Copyright (c) 2022 Daniel Múčka, Masaryk University, Faculty of Informatics
4 * See file LICENSE or visit https://opensource.org/licenses/MIT for full license details.
5 */
6
7#pragma once
8
9inline
10double gaussian(double x, double scale, double mu, double sigma)
11{
12 const double z = (x - mu) / sigma;
13 return scale * std::exp(-0.5 * z * z);
14}
15
16
17inline
18double linear(double x, double intercept, double slope)
19{
20 return slope * x + intercept;
21}
22
23inline
24double bigaussian(double x, double scale, double mu, double sigma1, double sigma2)
25{
26 double currentSigma;
27
28 if (x < mu)
29 currentSigma = sigma1;
30 else
31 currentSigma = sigma2;
32
33 const double z = (x - mu) / currentSigma;
34 return scale * std::exp(-0.5 * z * z);
35}