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().