00001 #ifndef __MINPACK_H__
00002 #define __MINPACK_H__
00003
00004 #ifdef __cplusplus
00005 extern "C" {
00006 #endif
00007
00008
00009
00010
00011
00012
00013 void hybrd1_ ( void (*fcn)(const int *n, const double *x, double *fvec, int *iflag ),
00014 const int *n, double *x, double *fvec, const double *tol, int *info,
00015 double *wa, const int *lwa );
00016
00017
00018
00019
00020 void hybrd_ ( void (*fcn)(const int *n, const double *x, double *fvec, int *iflag ),
00021 const int *n, double *x, double *fvec, const double *xtol, const int *maxfev,
00022 const int *ml, const int *mu, const double *epsfcn, double *diag, const int *mode,
00023 const double *factor, const int *nprint, int *info, int *nfev,
00024 double *fjac, const int *ldfjac, double *r, const int *lr, double *qtf,
00025 double *wa1, double *wa2, double *wa3, double *wa4);
00026
00027
00028
00029 void hybrj1_ ( void (*fcn)(const int *n, const double *x, double *fvec, double *fjec,
00030 const int *ldfjac, int *iflag ), const int *n, double *x,
00031 double *fvec, double *fjec, const int *ldfjac, const double *tol,
00032 int *info, double *wa, const int *lwa );
00033
00034
00035
00036
00037 void hybrj_ ( void (*fcn)(const int *n, const double *x, double *fvec, double *fjec,
00038 const int *ldfjac, int *iflag ), const int *n, double *x,
00039 double *fvec, double *fjec, const int *ldfjac, const double *xtol,
00040 const int *maxfev, double *diag, const int *mode, const double *factor,
00041 const int *nprint, int *info, int *nfev, int *njev, double *r,
00042 const int *lr, double *qtf, double *wa1, double *wa2,
00043 double *wa3, double *wa4 );
00044
00045
00046
00047
00048 void lmdif1_ ( void (*fcn)(const int *m, const int *n, const double *x, double *fvec,
00049 int *iflag ),
00050 const int *m, const int *n, double *x, double *fvec, const double *tol,
00051 int *info, int *iwa, double *wa, const int *lwa );
00052
00053
00054
00055
00056
00057 void lmdif_ ( void (*fcn)(const int *m, const int *n, const double *x, double *fvec,
00058 int *iflag ),
00059 const int *m, const int *n, double *x, double *fvec, const double *ftol,
00060 const double *xtol, const double *gtol, const int *maxfev, const double *epsfcn,
00061 double *diag, const int *mode, const double *factor, const int *nprint,
00062 int *info, int *nfev, double *fjac, const int *ldfjac, int *ipvt,
00063 double *qtf, double *wa1, double *wa2, double *wa3,
00064 double *wa4 );
00065
00066
00067
00068
00069 void lmder1_ ( void (*fcn)(const int *m, const int *n, const double *x, double *fvec,
00070 double *fjec, const int *ldfjac, int *iflag ),
00071 const int *m, const int *n, double *x, double *fvec, double *fjac,
00072 const int *ldfjac, const double *tol, int *info, int *ipvt,
00073 double *wa, const int *lwa );
00074
00075
00076
00077
00078 void lmder_ ( void (*fcn)(const int *m, const int *n, const double *x, double *fvec,
00079 double *fjec, const int *ldfjac, int *iflag ),
00080 const int *m, const int *n, double *x, double *fvec, double *fjac,
00081 const int *ldfjac, const double *ftol, const double *xtol, const double *gtol,
00082 const int *maxfev, double *diag, const int *mode, const double *factor,
00083 const int *nprint, int *info, int *nfev, int *njev, int *ipvt,
00084 double *qtf, double *wa1, double *wa2, double *wa3,
00085 double *wa4 );
00086
00087
00088
00089
00090 void lmstr1_ ( void (*fcn)(const int *m, const int *n, const double *x, double *fvec,
00091 double *fjrow, int *iflag ), const int *m, const int *n,
00092 double *x, double *fvec, double *fjac, const int *ldfjac,
00093 const double *tol, int *info, int *ipvt, double *wa, const int *lwa );
00094
00095
00096
00097
00098 void lmstr_ ( void (*fcn)(const int *m, const int *n, const double *x, double *fvec,
00099 double *fjrow, int *iflag ), const int *m,
00100 const int *n, double *x, double *fvec, double *fjac,
00101 const int *ldfjac, const double *ftol, const double *xtol, const double *gtol,
00102 const int *maxfev, double *diag, const int *mode, const double *factor,
00103 const int *nprint, int *info, int *nfev, int *njev, int *ipvt,
00104 double *qtf, double *wa1, double *wa2, double *wa3,
00105 double *wa4 );
00106
00107 void chkder_ ( const int *m, const int *n, const double *x, double *fvec, double *fjec,
00108 const int *ldfjac, double *xp, double *fvecp, const int *mode,
00109 double *err );
00110
00111 double dpmpar_ ( const int *i );
00112
00113 double enorm_ ( const int *n, const double *x );
00114
00115
00116
00117
00118 void fdjac2_(void (*fcn)(const int *m, const int *n, const double *x, double *fvec,
00119 int *iflag ),
00120 const int *m, const int *n, double *x, const double *fvec, double *fjac,
00121 const int *ldfjac, int *iflag, const double *epsfcn, double *wa);
00122
00123
00124
00125
00126
00127 void fdjac1_(void (*fcn)(const int *n, const double *x, double *fvec, int *iflag ),
00128 const int *n, double *x, const double *fvec, double *fjac, const int *ldfjac,
00129 int *iflag, const int *ml, const int *mu, const double *epsfcn, double *wa1,
00130 double *wa2);
00131
00132
00133 void dogleg_(const int *n, const double *r, const int *lr,
00134 const double *diag, const double *qtb, const double *delta, double *x,
00135 double *wa1, double *wa2);
00136 void qrfac_(const int *m, const int *n, double *a, const int *
00137 lda, const int *pivot, int *ipvt, const int *lipvt, double *rdiag,
00138 double *acnorm, double *wa);
00139 void qrsolv_(const int *n, double *r, const int *ldr,
00140 const int *ipvt, const double *diag, const double *qtb, double *x,
00141 double *sdiag, double *wa);
00142 void qform_(const int *m, const int *n, double *q, const int *
00143 ldq, double *wa);
00144 void r1updt_(const int *m, const int *n, double *s, const int *
00145 ls, const double *u, double *v, double *w, int *sing);
00146 void r1mpyq_(const int *m, const int *n, double *a, const int *
00147 lda, const double *v, const double *w);
00148 void lmpar_(const int *n, double *r, const int *ldr,
00149 const int *ipvt, const double *diag, const double *qtb, const double *delta,
00150 double *par, double *x, double *sdiag, double *wa1,
00151 double *wa2);
00152 void rwupdt_(const int *n, double *r, const int *ldr,
00153 const double *w, double *b, double *alpha, double *cos,
00154 double *sin);
00155 void covar_(const int *n, double *r, const int *ldr,
00156 const int *ipvt, const double *tol, double *wa);
00157 #ifdef __cplusplus
00158 }
00159 #endif
00160
00161
00162 #endif