Mir 1.0
Mir application programming interface
Nonlinear least squares minimization

Data Structures

struct  mirml_lsq_t_
 Context for least squares procedures. More...
 

Typedefs

typedef struct mirml_lsq_t_ mirml_lsq_t
 Context for least squares procedures.
 

Functions

mirkl_error_tmirml_lsq_init_default (mirml_lsq_t *lsq)
 
mirkl_error_tmirml_lsq_alloc (unsigned int nParams, unsigned int nData, mirml_lsq_t *lsq)
 
void mirml_lsq_free (mirml_lsq_t *lsq)
 
mirkl_error_tmirml_lsq_weight_vinit (const mirml_vector_t *w, mirml_lsq_t *lsq)
 
mirkl_error_tmirml_lsq_weight_minit (const mirml_matrix_t *w, mirml_lsq_t *lsq)
 
mirkl_error_tmirml_lsq_iterate_init (mirml_vector_t *a_init, mirml_lsq_t *lsq)
 
mirkl_error_tmirml_lsq_iterate (mirml_lsq_t *lsq)
 
int mirml_lsq_convtest (mirml_lsq_t *lsq)
 
mirkl_error_tmirml_lsq_covar (mirml_matrix_t **covar, mirml_lsq_t *lsq)
 
mirkl_error_tmirml_lsq_minimize (int nIters, mirkl_error_t *(*infoctl_cb)(int tag, int curIter, void *usrd, mirml_lsq_t *lsq), void *usrd, mirml_lsq_t *lsq)
 

Methods for solving sets of linear equations

#define MIRML_LSQ_LINM_SVD   1
 Singular value decomposition.
 

Methods for minimizing LS funcional

#define MIRML_LSQ_MINM_LM   1
 Levenberg–Marquardt.
 

Data modes

#define MIRML_LSQ_DMOD_COMPLETE   1
 User provides complete data for solving LS problem.
 

LS statuses

#define MIRML_LSQ_STATUS_INIT   0x0001
 Initialized.
 
#define MIRML_LSQ_STATUS_ALLOC   0x0002
 Allocated.
 
#define MIRML_LSQ_STATUS_INITIT   0x0004
 Initialized iteration.
 
#define MIRML_LSQ_STATUS_ACONV   0x0008
 Parameter values converged.
 
#define MIRML_LSQ_STATUS_GCONV   0x0010
 Gradient converged.
 

Weighting types in LS

#define MIRML_LSQ_WMOD_ULS   0
 No weights, usual unweighted LS = ULS.
 
#define MIRML_LSQ_WMOD_WLS   1
 Use vector weights, corresponds to a normal weighted LS = WLS.
 
#define MIRML_LSQ_WMOD_GLS   2
 Use full matrix of weights, generalized LS = GLS.
 

LSQ tags, i.e. stages where LSQ currently running.

#define MIRML_LSQ_TAG_MACROITER   1
 LSQ at macro-iteration.
 
#define MIRML_LSQ_TAG_MICROITER   2
 LSQ at micro-iteration.
 

Detailed Description