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)