24#define LM_LAPACK_SUFFIX _
37#define LM_BLAS_SUFFIX _
40#define LCAT_(a, b) #a b
41#define LCAT(a, b) LCAT_(a, b)
42#define RCAT_(a, b) a #b
43#define RCAT(a, b) RCAT_(a, b)
45#define LM_MK_LAPACK_NAME(s) LM_ADD_PREFIX(LM_CAT_(s, LM_LAPACK_SUFFIX))
48#define LM_MK_BLAS_NAME(s) LM_CAT_(LM_BLAS_PREFIX, LM_ADD_PREFIX(LM_CAT_(s, LM_BLAS_SUFFIX)))
50#define LM_MK_BLAS_NAME(s) LM_ADD_PREFIX(LM_CAT_(s, LM_BLAS_SUFFIX))
61#define __BLOCKSZ__SQ (__BLOCKSZ__)*(__BLOCKSZ__)
64#define LM_CAT__(a, b) a ## b
65#define LM_CAT_(a, b) LM_CAT__(a, b)
66#define LM_ADD_PREFIX(s) LM_CAT_(LM_PREFIX, s)
68#define FABS(x) (((x)>=0.0)? (x) : -(x))
80 float *p,
float *hx,
float *hxx,
float delta,
81 float *jac,
int m,
int n,
void *adata);
83 double *p,
double *hx,
double *hxx,
double delta,
84 double *jac,
int m,
int n,
void *adata);
88 float *p,
float *hxm,
float *hxp,
float delta,
89 float *jac,
int m,
int n,
void *adata);
91 double *p,
double *hxm,
double *hxp,
double delta,
92 double *jac,
int m,
int n,
void *adata);
99extern int slevmar_covar(
float *JtJ,
float *C,
float sumsq,
int m,
int n);
100extern int dlevmar_covar(
double *JtJ,
double *C,
double sumsq,
int m,
int n);
float slevmar_L2nrmxmy(float *e, float *x, float *y, int n)
void dlevmar_fdif_cent_jac_approx(void(*func)(double *p, double *hx, int m, int n, void *adata), double *p, double *hxm, double *hxp, double delta, double *jac, int m, int n, void *adata)
double dlevmar_L2nrmxmy(double *e, double *x, double *y, int n)
int slevmar_covar(float *JtJ, float *C, float sumsq, int m, int n)
void slevmar_trans_mat_mat_mult(float *a, float *b, int n, int m)
void dlevmar_trans_mat_mat_mult(double *a, double *b, int n, int m)
int dlevmar_box_check(double *lb, double *ub, int m)
void slevmar_fdif_cent_jac_approx(void(*func)(float *p, float *hx, int m, int n, void *adata), float *p, float *hxm, float *hxp, float delta, float *jac, int m, int n, void *adata)
void slevmar_fdif_forw_jac_approx(void(*func)(float *p, float *hx, int m, int n, void *adata), float *p, float *hx, float *hxx, float delta, float *jac, int m, int n, void *adata)
int dlevmar_chol(double *C, double *W, int m)
int dlevmar_covar(double *JtJ, double *C, double sumsq, int m, int n)
int slevmar_box_check(float *lb, float *ub, int m)
int slevmar_chol(float *C, float *W, int m)
void dlevmar_fdif_forw_jac_approx(void(*func)(double *p, double *hx, int m, int n, void *adata), double *p, double *hx, double *hxx, double delta, double *jac, int m, int n, void *adata)