All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Public Member Functions | Static Protected Member Functions | Protected Attributes
QGpCoreTools::Function2Search Class Reference

Brief description of class still missing. More...

#include <Function2Search.h>

Inheritance diagram for QGpCoreTools::Function2Search:
QGpCoreTools::ConcentricSearch QGpCoreTools::DirectionalSearch QGpCoreTools::GridSearch ArrayCore::KmaxSolver LinearFKSearch ArrayCore::FKGridSearch T0GridSearch LinearHRFKSearch ArrayCore::HRFKGridSearch

List of all members.

Public Member Functions

 Function2Search ()
Function2MaximaIterator localMax (int nMax, double absThres=0.0, double relThres=0.0)
Function2MaximaIterator localMaxEnd ()
const Point2Dpos () const
void setFunction (AbstractFunction2 *f)
AbstractFunction2takeFunction ()
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

Detailed Description

Brief description of class still missing.

Full description of class still missing


Constructor & Destructor Documentation

Description of constructor still missing

References _function, _relative, and TRACE.

{
  TRACE;
  _relative=true;
  _function=0;
}

Delete current function. To prevent automatic deletion, call takeFunction() before.

References _function, and TRACE.

{
  TRACE;
  delete _function;
}

Member Function Documentation

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

{
  TRACE;
  delete _function;
  _function=f;
}

Take ownership of the function object

References _function, and TRACE.

Referenced by ArrayCore::KmaxSolver::~KmaxSolver().

{
  TRACE;
  AbstractFunction2 * f=_function;
  _function=0;
  return f;
}
double QGpCoreTools::Function2Search::value ( double  x,
double  y 
) const [inline]
double QGpCoreTools::Function2Search::value ( double  x,
double  y,
int  index 
) const [inline]
{return _function->value(x,y, index);}

Member Data Documentation

Referenced by Function2Search().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines