1 #ifndef ATOMPROBE_FITTING_H 2 #define ATOMPROBE_FITTING_H 17 bool fitVoigt(
const std::vector<double> &x,
const std::vector<double> &y,
18 double &sigma,
double &gamma,
double &mu,
double &,
bool autoInit=
true);
22 void voigtProfile(
const std::vector<double> &x,
double sigma,
23 double gamma,
double mu,
double amp, std::vector<double> &y);
26 bool fitDoniachSunjic(
const std::vector<double> &x,
const std::vector<double> &y,
27 double &a,
double &f,
double &mu,
double &,
bool autoInit=
true);
30 void doniachSunjic(
const std::vector<double> &x,
double &a,
double &F,
double &mu,
double &,
31 std::vector<double> &y);
35 double &lambda,
double &sigma,
double &xp,
double &,
double &h,
bool autoInit=
true);
44 void likeLogGaussian(
const std::vector<double> &x,
double &xp,
double &sigma,
45 double &lambda,
double &,
double &h,
46 std::vector<double> &y);
49 bool fitExpNorm(
const std::vector<double> &x,
const std::vector<double> &y,
50 double &K,
double &mu,
double &sigma,
double &,
bool autoInit=
true);
58 void expNorm(
const std::vector<double> &x,
double &K,
double &mu,
double&sigma,
double &, std::vector<double> &y);
60 double lsq(
const std::vector<double> &y,
const std::vector<double> &yFit);
bool fitLikeLogGaussian(const std::vector< double > &x, const std::vector< double > &y, double &lambda, double &sigma, double &xp, double &, double &h, bool autoInit=true)
Fit a smoothed log-gaussian curve (arxiv:0711.4449)
void doniachSunjic(const std::vector< double > &x, double &a, double &F, double &mu, double &, std::vector< double > &y)
generate a Doniach-Sunjic profile
bool fitDoniachSunjic(const std::vector< double > &x, const std::vector< double > &y, double &a, double &f, double &mu, double &, bool autoInit=true)
Fit a Doniach-Sunjic curve.
void voigtProfile(const std::vector< double > &x, double sigma, double gamma, double mu, double amp, std::vector< double > &y)
Generate a shifted voigt profile.
void expNorm(const std::vector< double > &x, double &K, double &mu, double &sigma, double &, std::vector< double > &y)
Exponentially decaying normal distribution.
bool fitExpNorm(const std::vector< double > &x, const std::vector< double > &y, double &K, double &mu, double &sigma, double &, bool autoInit=true)
Fit a smoothed log-gaussian curve (arxiv:0711.4449)
bool fitVoigt(const std::vector< double > &x, const std::vector< double > &y, double &sigma, double &gamma, double &mu, double &, bool autoInit=true)
Fit a Voigt function to the given X/Y values. Internally, a function minimiser is used...
void likeLogGaussian(const std::vector< double > &x, double &xp, double &sigma, double &lambda, double &, double &h, std::vector< double > &y)
Generate a smoothed log-gaussian curve.
double lsq(const std::vector< double > &y, const std::vector< double > &yFit)