Machine vision algorithms should not only solve numerical problems but also be capable of estimating accuracy in order to validate the results. Functions for covariance estimation and manipulation to be used in conjunction with optimisation routines include the following.
extern void jacob(double *a, double *da, Matrix * jf, double (*func) ());
extern Covar *invcov(int m, double *a, double (*func) (), int n);
extern Covar *covar(int m, double *a, double (*func) (), int n,
double condition);
extern Covar *covar_update(Covar * inv_acov, Covar * inv_bcov,
double condition);
extern Covar *covar_add(Covar * inv_acov, Covar * inv_bcov);
extern Covar *covar_alloc(int n);
extern void covar_free(Covar * cov);