#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <math.h>
#include "pkvaria.h"
#include "pknum.h"
Defines | |
#define | DEBUG |
#define | MYINFINITY 1.0e308 |
#define | MAXNITER 10 |
#define | MAXGITER 16 |
#define | THR1 0.9 |
#define | GRTHR 0.01 |
#define | EPS2 1.0e-7 |
#define | GRDIV(a, b) (exp((1.0-TAU)*log(a)+TAU*log(b))) |
#define | LMFUNC(nu) |
#define | RECORD_MIN(nu, fnu) |
Functions | |
int | pkn_NLMIterd (int n, void *usrdata, double *x, pkn_NLMTevalfuncd funcf, pkn_NLMTevalfuncgd funcfg, pkn_NLMTevalfuncghd funcfgh, pkn_NLMTtransfuncd trans, pkn_NLMTtunnelfuncd tunnel, double lowerbound, double eps, double delta, double *nu) |
#define DEBUG |
#define EPS2 1.0e-7 |
#define GRDIV | ( | a, | ||
b | ||||
) | (exp((1.0-TAU)*log(a)+TAU*log(b))) |
#define GRTHR 0.01 |
#define LMFUNC | ( | nu | ) |
_pkn_NLM_NuFuncd ( n, usrdata, funcf, tunnel, \ nu, x, grad, incr, auxx, hess, lhess, &went_out, &incn )
#define MAXGITER 16 |
#define MAXNITER 10 |
#define MYINFINITY 1.0e308 |
#define RECORD_MIN | ( | nu, | ||
fnu | ||||
) |
{ if ( went_out && incn < delta ) { \ result = PKN_LMT_FOUND_BARRIER; \ goto finish_lmt; \ } \ if ( fnu < lowerbound ) { \ result = PKN_LMT_ERROR; \ goto way_out; \ } \ if ( fnu < fge ) { \ memcpy ( minx, auxx, n*sizeof(double) ); \ ge = nu; fge = fnu; incne = incn; \ } \ }
#define THR1 0.9 |
int pkn_NLMIterd | ( | int | n, | |
void * | usrdata, | |||
double * | x, | |||
pkn_NLMTevalfuncd | funcf, | |||
pkn_NLMTevalfuncgd | funcfg, | |||
pkn_NLMTevalfuncghd | funcfgh, | |||
pkn_NLMTtransfuncd | trans, | |||
pkn_NLMTtunnelfuncd | tunnel, | |||
double | lowerbound, | |||
double | eps, | |||
double | delta, | |||
double * | nu | |||
) |