Exemplo n.º 1
0
REAL cIEC_OptimCurDir::Optim(REAL aV0,REAL aV1)
{
    REAL aX = aV0;
    REAL bX = aV1;
    REAL cX; 
    REAL aY,bY,cY;

    mnbrack(&aX,&bX,&cX,&aY,&bY,&cY);

    REAL XMin;
    golden(aX,bX,cX,1e-5,&XMin);

    return XMin;
}
Exemplo n.º 2
0
void BenchDMR::test()
{

    REAL ax=-1,bx=1,cx,fa,fb,fc;
    mnbrack(&ax,&bx,&cx,&fa,&fb,&fc);

    REAL xmin1;
    golden(ax,bx,cx,1e-15,&xmin1);

    if (_pol.degre() <= 4)
       BENCH_ASSERT(std::abs(_dpol(xmin1)) < BIG_epsilon);
    BENCH_ASSERT(std::abs(_dpol(xmin1)) < GIGANTESQUE_epsilon);

    Pt2dr aP = brent(true);
    if (_pol.degre() <= 4)
       BENCH_ASSERT(std::abs(_dpol(aP.x)) < BIG_epsilon);
    BENCH_ASSERT(std::abs(_dpol(aP.x)) < GIGANTESQUE_epsilon);

}
Exemplo n.º 3
0
void CostFunction::dlinmin(real* &p, real* &xi, real &fret)
{
	const real TOL=2.0e-8;
	int j;
	real xx,xmin,fx,fb,fa,bx,ax;
	
	// Fill the temporary state vector
	for (j=0; j<nState; j++) {
		tempState[j] = p[j];
		tempGradient[j] = xi[j];
	}
	ax = 0.0;
	xx = 1.0;
	xmin = 0.0;
	mnbrack(ax,xx,bx,fa,fx,fb);
	fret = dbrent(ax,xx,bx,TOL,xmin);
	for (j=0; j<nState; j++) {
		xi[j] *= xmin;
		p[j] += xi[j];
	}
}