#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <math.h>
#include "pkvaria.h"
#include "pknum.h"
Defines | |
#define | DEBUG |
#define | MYINFINITY 1.0e38 |
#define | MAXNITER 10 |
#define | MAXGITER 16 |
#define | THR1 0.9 |
#define | GRTHR 0.01 |
#define | EPS2 1.0e-5 |
#define | GRDIV(a, b) (exp((1.0-TAU)*log(a)+TAU*log(b))) |
#define | LMFUNC(nu) |
#define | RECORD_MIN(nu, fnu) |
Functions | |
int | pkn_NLMIterf (int n, void *usrdata, float *x, pkn_NLMTevalfuncf funcf, pkn_NLMTevalfuncgf funcfg, pkn_NLMTevalfuncghf funcfgh, pkn_NLMTtransfuncf trans, pkn_NLMTtunnelfuncf tunnel, float lowerbound, float eps, float delta, float *nu) |
#define DEBUG |
#define EPS2 1.0e-5 |
#define GRDIV | ( | a, | ||
b | ||||
) | (exp((1.0-TAU)*log(a)+TAU*log(b))) |
#define GRTHR 0.01 |
#define LMFUNC | ( | nu | ) |
_pkn_NLM_NuFuncf ( n, usrdata, funcf, tunnel, \ nu, x, grad, incr, auxx, hess, lhess, &went_out, &incn )
#define MAXGITER 16 |
#define MAXNITER 10 |
#define MYINFINITY 1.0e38 |
#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(float) ); \ ge = nu; fge = fnu; incne = incn; \ } \ }
#define THR1 0.9 |
int pkn_NLMIterf | ( | int | n, | |
void * | usrdata, | |||
float * | x, | |||
pkn_NLMTevalfuncf | funcf, | |||
pkn_NLMTevalfuncgf | funcfg, | |||
pkn_NLMTevalfuncghf | funcfgh, | |||
pkn_NLMTtransfuncf | trans, | |||
pkn_NLMTtunnelfuncf | tunnel, | |||
float | lowerbound, | |||
float | eps, | |||
float | delta, | |||
float * | nu | |||
) |