Brief description of class still missing. More...
#include <Function2Search.h>
Public Member Functions | |
Function2Search () | |
Function2MaximaIterator | localMax (int nMax, double absThres=0.0, double relThres=0.0) |
Function2MaximaIterator | localMaxEnd () |
const Point2D & | pos () const |
void | setFunction (AbstractFunction2 *f) |
AbstractFunction2 * | takeFunction () |
double | value (double x, double y) const |
double | value (double x, double y, int index) const |
~Function2Search () | |
Static Protected Member Functions | |
static double | highLimit (int i, double *axis, int nAxis) |
static double | lowLimit (int i, double *axis) |
Protected Attributes | |
AbstractFunction2 * | _function |
QList< Function2SearchMaximum > | _localMaxima |
Point2D | _pos |
bool | _relative |
Brief description of class still missing.
Full description of class still missing
Delete current function. To prevent automatic deletion, call takeFunction() before.
double QGpCoreTools::Function2Search::highLimit | ( | int | i, |
double * | axis, | ||
int | nAxis | ||
) | [inline, static, protected] |
References TRACE.
Referenced by QGpCoreTools::DirectionalSearch::globalMax(), and QGpCoreTools::GridSearch::globalMax().
{ TRACE; return i<nAxis-1 ? axis[i+1] : axis[nAxis-1]; }
Function2MaximaIterator QGpCoreTools::Function2Search::localMax | ( | int | nMax, |
double | absThres = 0.0 , |
||
double | relThres = 0.0 |
||
) |
Reimplemented in QGpCoreTools::GridSearch, and QGpCoreTools::DirectionalSearch.
References _localMaxima, and TRACE.
{ TRACE; qSort(_localMaxima); // filter the ensemble of maxima // With an absolute value for the maximum if(absThres>0.0) { int i=_localMaxima.count()-1; while(i>=0 && _localMaxima.at(i).value()<absThres) { _localMaxima.removeLast(); i--; } } // With a value for the maximum defined as a ratio of the global max if(relThres>0.0 && _localMaxima.count()>0) { absThres=_localMaxima.at(0).value()*relThres*0.01; int i=_localMaxima.count()-1; while(i>=0 && _localMaxima.at(i).value()<absThres) { _localMaxima.removeLast(); i--; } } // Remove all maxima exceeding nMax while(_localMaxima.count()>nMax) _localMaxima.removeLast(); return _localMaxima.begin(); }
Referenced by FKLoopTask::exportMax().
{return _localMaxima.end();}
double QGpCoreTools::Function2Search::lowLimit | ( | int | i, |
double * | axis | ||
) | [inline, static, protected] |
References TRACE.
Referenced by QGpCoreTools::DirectionalSearch::globalMax(), and QGpCoreTools::GridSearch::globalMax().
{ TRACE; return i>0 ? axis[i-1] : axis[0]; }
const Point2D& QGpCoreTools::Function2Search::pos | ( | ) | const [inline] |
{return _pos;}
Set current function. Ownership is transfered to this object. To get it back you must call takeFunction().
Reimplemented in QGpCoreTools::DirectionalSearch.
References _function, and TRACE.
Referenced by ArrayCore::KmaxSolver::KmaxSolver().
double QGpCoreTools::Function2Search::value | ( | double | x, |
double | y | ||
) | const [inline] |
Referenced by QGpCoreTools::IrregularGrid2DData::operator=().
double QGpCoreTools::Function2Search::value | ( | double | x, |
double | y, | ||
int | index | ||
) | const [inline] |
Referenced by LinearHRFKSearch::function(), T0GridSearch::function(), LinearFKSearch::function(), Function2Search(), QGpCoreTools::DirectionalSearch::globalMax(), QGpCoreTools::GridSearch::globalMax(), QGpCoreTools::DirectionalSearch::localMax(), QGpCoreTools::GridSearch::localMax(), LinearHRFKSearch::setFunction(), T0GridSearch::setFunction(), LinearFKSearch::setFunction(), setFunction(), QGpCoreTools::DirectionalSearch::setGrid(), QGpCoreTools::GridSearch::setGrid(), takeFunction(), and ~Function2Search().
QList<Function2SearchMaximum> QGpCoreTools::Function2Search::_localMaxima [protected] |
Referenced by QGpCoreTools::DirectionalSearch::localMax(), QGpCoreTools::GridSearch::localMax(), and localMax().
Point2D QGpCoreTools::Function2Search::_pos [protected] |
bool QGpCoreTools::Function2Search::_relative [protected] |
Referenced by Function2Search().