Changeset 477


Ignore:
Timestamp:
05/18/09 15:14:17 (15 years ago)
Author:
Mathieu Morlighem
Message:

took care of some specific cases

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/shared/Numerics/BrentSearch.cpp

    r393 r477  
    6464
    6565        //initialize the other variables
    66         seps=sqrt(DBL_EPSILON); //precision of a double
     66        seps=sqrt(DBL_EPSILON);    //precision of a double
    6767        distance=0.0;              //new_x=old_x + distance
    6868        gold=0.5*(3.0-sqrt(5.0));  //gold = 1 - golden ratio
     
    115115                        intervalgold=distance;
    116116
    117                         // Is the parabola acceptable
     117                        // Is the parabola acceptable (we use seps here because in some configuration parab_num==parab_den*(xmax-xbest)
     118                        // and the result is not repeatable anymore
    118119                        if (( sqrt(pow(parab_num,2)) < sqrt(pow(0.5*parab_den*oldintervalgold,2))) &&
    119                                                 (parab_num>parab_den*(xmin-xbest)) &&
    120                                                 (parab_num<parab_den*(xmax-xbest))){
     120                                                (parab_num>parab_den*(xmin-xbest)+seps) &&
     121                                                (parab_num<parab_den*(xmax-xbest)-seps)){
    121122
    122123                                // Yes, parabolic interpolation step
Note: See TracChangeset for help on using the changeset viewer.