libatomprobe
Library for Atom Probe Tomography (APT) computation
fitting.h
Go to the documentation of this file.
1 #ifndef ATOMPROBE_FITTING_H
2 #define ATOMPROBE_FITTING_H
3 
4 
5 namespace AtomProbe
6 {
7 
9 
17 bool fitVoigt(const std::vector<double> &x, const std::vector<double> &y,
18  double &sigma, double &gamma, double &mu, double &amp, bool autoInit=true);
19 
20 
22 void voigtProfile(const std::vector<double> &x, double sigma,
23  double gamma, double mu, double amp, std::vector<double> &y);
24 
26 bool fitDoniachSunjic(const std::vector<double> &x, const std::vector<double> &y,
27  double &a, double &f, double &mu, double &amp, bool autoInit=true);
28 
30 void doniachSunjic(const std::vector<double> &x, double &a, double &F, double &mu,double &amp,
31  std::vector<double> &y);
32 
34 bool fitLikeLogGaussian(const std::vector<double> &x, const std::vector<double> &y,
35  double &lambda, double &sigma, double &xp, double &amp, double &h,bool autoInit=true);
36 
38 
44 void likeLogGaussian(const std::vector<double> &x, double &xp, double &sigma,
45  double &lambda,double &amp, double &h,
46  std::vector<double> &y);
47 
49 bool fitExpNorm(const std::vector<double> &x, const std::vector<double> &y,
50  double &K, double &mu, double &sigma,double &amp, bool autoInit=true);
51 
53 /* mu - shift.
54  sigma - squeeze
55  K - asymmetry
56  amp - amplitude
57 */
58 void expNorm(const std::vector<double> &x, double &K, double &mu, double&sigma, double &amp, std::vector<double> &y);
59 
60 double lsq(const std::vector<double> &y, const std::vector<double> &yFit);
61 }
62 #endif
bool fitLikeLogGaussian(const std::vector< double > &x, const std::vector< double > &y, double &lambda, double &sigma, double &xp, double &amp, double &h, bool autoInit=true)
Fit a smoothed log-gaussian curve (arxiv:0711.4449)
Definition: fitting.cpp:360
void doniachSunjic(const std::vector< double > &x, double &a, double &F, double &mu, double &amp, std::vector< double > &y)
generate a Doniach-Sunjic profile
Definition: fitting.cpp:502
bool fitDoniachSunjic(const std::vector< double > &x, const std::vector< double > &y, double &a, double &f, double &mu, double &amp, bool autoInit=true)
Fit a Doniach-Sunjic curve.
Definition: fitting.cpp:204
void voigtProfile(const std::vector< double > &x, double sigma, double gamma, double mu, double amp, std::vector< double > &y)
Generate a shifted voigt profile.
Definition: fitting.cpp:486
void expNorm(const std::vector< double > &x, double &K, double &mu, double &sigma, double &amp, std::vector< double > &y)
Exponentially decaying normal distribution.
Definition: fitting.cpp:532
bool fitExpNorm(const std::vector< double > &x, const std::vector< double > &y, double &K, double &mu, double &sigma, double &amp, bool autoInit=true)
Fit a smoothed log-gaussian curve (arxiv:0711.4449)
Definition: fitting.cpp:280
bool fitVoigt(const std::vector< double > &x, const std::vector< double > &y, double &sigma, double &gamma, double &mu, double &amp, bool autoInit=true)
Fit a Voigt function to the given X/Y values. Internally, a function minimiser is used...
Definition: fitting.cpp:123
void likeLogGaussian(const std::vector< double > &x, double &xp, double &sigma, double &lambda, double &amp, double &h, std::vector< double > &y)
Generate a smoothed log-gaussian curve.
Definition: fitting.cpp:510
double lsq(const std::vector< double > &y, const std::vector< double > &yFit)
Definition: fitting.cpp:27