mxlib
c++ tools for analyzing astronomical data and other tasks by Jared R. Males. [git repo]
|
Class to manage fitting the GammaDistribution Distribution to data via the levmarInterface.
In addition to the requirements on fitterT specified by levmarInterface this class also requires this definition in fitterT
where the number 3 is replaced by the number of parameters that fitterT expects to fit.
fitterT | a type meeting the above requirements. |
Definition at line 66 of file fitGammaDistribution.hpp.
#include <math/fit/fitGammaDistribution.hpp>
Public Member Functions | |
void | setGuess (realT x0, realT k, realT theta, realT denom) |
Set the initial guess. More... | |
void | setGuess (realT x0, realT k, realT theta) |
Set the initial guess. More... | |
void | setGuess (realT k, realT theta) |
Set the initial guess when no location parameter is used. More... | |
Public Member Functions inherited from mx::math::fit::levmarInterface< fitterT > | |
levmarInterface () | |
Default constructor. More... | |
levmarInterface (realT *i_p, realT *i_x, int i_m, int i_n, void *i_adata) | |
Setup constructor. More... | |
~levmarInterface () | |
Destructor. More... | |
void | nParams (int i_m) |
Set number of parameters, but don't allocate. More... | |
int | nParams () |
Get the current number of parameters. More... | |
void | allocate_params () |
Allocate parameters array based on previous call to nParams. More... | |
void | allocate_params (int i_m) |
Set number of parameters and allocate. More... | |
void | point_params (realT *i_p) |
Point the parameter pointer at an externally allocated array. More... | |
void | point_params (realT *i_p, int i_m) |
Point the parameter pointer at an externally allocated array. More... | |
void | set_params (realT *i_p) |
Copy parameters to the parameter array. More... | |
realT * | get_params () |
Get current pointer array address. More... | |
void | set_itmax (int i_itmax) |
Set the maximum number of iterations. More... | |
int | get_itmax () |
Get the maximum number of iterations. More... | |
void | allocate_work () |
Allocate the work and covar matrices. More... | |
void | set_opts (int n, realT val) |
Set one of the minimization options to val. More... | |
void | set_opts_default (int n=-1) |
Set one or all of the minimization options to the default. More... | |
realT | get_opts (int n) |
Get the current value of an option. More... | |
int | fit () |
Perform the fit. More... | |
realT | get_initial_norm () |
Returns the L2-norm before minimization occurs. More... | |
realT | get_final_norm () |
Returns the L2-norm at the end of the minimization. More... | |
int | get_iterations () |
Get the number of iterations taken during the minimization. More... | |
int | get_reason_code () |
Get a code specifying the reason minimization terminated. More... | |
std::string | get_reason_string () |
Get the descriptive string describing the reason minimization terminated. More... | |
int | get_fevals () |
Get the number of function evaluations during the minimization. More... | |
int | get_jevals () |
Get the number of jacobian evaluations during the minimization. More... | |
int | get_nlinsys () |
Get the number of linear system solutions during the minimization. More... | |
double | get_deltaT () |
Get the elapsed time of the fit. More... | |
template<typename iosT , char comment = '#'> | |
iosT & | dumpParameters (iosT &ios) |
Output current parameters to a stream. More... | |
template<char comment = '#'> | |
std::ostream & | dumpParameters () |
Dump the parameter vector to stdout. More... | |
template<typename iosT , char comment = '#'> | |
iosT & | dumpReport (iosT &ios, bool dumpParams=true) |
Output current parameters to a stream. More... | |
template<char comment = '#'> | |
std::ostream & | dumpReport (bool dumpParams=true) |
Dump a status report to stdout. More... | |
Additional Inherited Members | |
Public Attributes inherited from mx::math::fit::levmarInterface< fitterT > | |
realT * | x |
I: measurement vector. NULL implies a zero vector. More... | |
int | n |
I: measurement vector dimension. More... | |
realT | opts [LM_OPTS_SZ] |
Options passed to the minimization routines. See set_opts for details. More... | |
realT | info [LM_INFO_SZ] |
Information regarding the minimization. More... | |
double | deltaT |
Elapsed time of the fitting procedure. More... | |
realT * | work |
Working memory passed to the levmar routines. More... | |
int | work_sz |
The current size of the work array. More... | |
realT * | covar |
Covariance matrix corresponding to LS solution; mxm. More... | |
int | covar_sz |
The current size of the covar array. More... | |
bool | getCovar |
Controls whether the covar array is allocated. More... | |
void * | adata |
Pointer to possibly additional data, passed uninterpreted to func & jacf. More... | |
Protected Attributes inherited from mx::math::fit::levmarInterface< fitterT > | |
realT * | p |
Parameter array. On input is the initial estimates. On output has the estimated solution. More... | |
realT * | init_p |
Parameter array on input, saved for comparison. More... | |
int | m |
Parameter vector dimension (i.e. number of unknowns) More... | |
bool | own_p |
Flag indicating whether the p array is owned by this object (for de-allocation). More... | |
int | itmax |
Maximum number of iterations, default is 100. More... | |
|
inline |
Set the initial guess when no location parameter is used.
[in] | k | the shape parameter |
[in] | theta | the scale parameter |
Definition at line 121 of file fitGammaDistribution.hpp.
References mx::math::fit::levmarInterface< fitterT >::p.
|
inline |
Set the initial guess.
[in] | x0 | the location parameter |
[in] | k | the shape parameter |
[in] | theta | the scale parameter |
Definition at line 108 of file fitGammaDistribution.hpp.
References mx::math::fit::levmarInterface< fitterT >::p.
|
inline |
Set the initial guess.
[in] | x0 | the location parameter |
[in] | k | the shape parameter |
[in] | theta | the scale parameter |
[in] | denom | the denominator or 1/peak-scale |
Definition at line 93 of file fitGammaDistribution.hpp.
References mx::math::fit::levmarInterface< fitterT >::p.