OpendTect-6_4  6.4
Public Member Functions | Private Member Functions | Private Attributes | List of all members
ExtremeFinderND Class Reference

Finds the nearest local extreme position in ND's. Implementation of Powell's Quadratically Convergent Method. More...

Inheritance diagram for ExtremeFinderND:
[legend]

Public Member Functions

 ExtremeFinderND (const FloatMathFunctionND &, bool max, int itermax)
 
virtual ~ExtremeFinderND ()
 
template<class IDXABL >
void setStartPos (const IDXABL &sp)
 
int nextStep ()
 
int nrIter () const
 
float extremeVal () const
 
const float * extremePos () const
 
template<class IDXABL >
void extremePos (IDXABL &sp) const
 Sets the sp variable to the extreme position. More...
 
- Public Member Functions inherited from SequentialTask
 SequentialTask (const char *nm=0)
 
virtual ~SequentialTask ()
 
void setProgressMeter (ProgressMeter *)
 Must be called before execute() More...
 
ProgressMeterprogressMeter ()
 
const ProgressMeterprogressMeter () const
 
virtual int doStep ()
 
bool execute ()
 
- Public Member Functions inherited from Task
virtual ~Task ()
 
virtual int64_t nrDone () const
 
virtual int64_t totalNr () const
 
virtual uiString uiMessage () const
 will be message() again in 7.x More...
 
virtual uiString uiNrDoneText () const
 will be nrDoneText() in 7.x More...
 
virtual void enableWorkControl (bool=true)
 Must be called before execute() More...
 
bool workControlEnabled () const
 
virtual void controlWork (Control)
 
virtual Control getState () const
 
- Public Member Functions inherited from NamedObject
 NamedObject (const char *nm=0)
 
 NamedObject (const NamedObject *linkedto)
 
 NamedObject (const NamedObject &)
 
virtual ~NamedObject ()
 
void setLinkedTo (NamedObject *)
 
bool operator== (const NamedObject &oth) const
 
virtual const OD::Stringname () const
 
virtual const OD::StringannotName () const
 
virtual void setName (const char *)
 
void setCleanName (const char *)
 cleans string first More...
 
void deleteNotify (const CallBack &)
 
- Public Member Functions inherited from CallBacker
 CallBacker ()
 
 CallBacker (const CallBacker &)
 
virtual ~CallBacker ()
 
bool attachCB (NotifierAccess &, const CallBack &, bool onlyifnew=false)
 
bool attachCB (NotifierAccess *notif, const CallBack &cb, bool onlyifnew=false)
 
void detachCB (NotifierAccess &, const CallBack &)
 
void detachCB (NotifierAccess *notif, const CallBack &cb)
 
bool isNotifierAttached (NotifierAccess *) const
 Only for debugging purposes, don't use. More...
 

Private Member Functions

float linExtreme (float *)
 

Private Attributes

float * p_
 
ObjectSet< float > xi_
 
float ftol_
 
int n_
 
int iter_
 
float fret_
 
float * pt_
 
const bool max_
 
const int itermax_
 
const FloatMathFunctionNDfunc_
 

Additional Inherited Members

- Public Types inherited from Task
enum  Control { Run, Pause, Stop }
 
- Static Public Member Functions inherited from SequentialTask
static int ErrorOccurred ()
 
static int Finished ()
 
static int MoreToDo ()
 
static int WarningAvailable ()
 
- Static Public Member Functions inherited from Task
static uiString stdNrDoneText ()
 
static uiString uiStdNrDoneText ()
 
- Protected Member Functions inherited from Task
 Task (const char *nm=0)
 
virtual bool shouldContinue ()
 
- Protected Member Functions inherited from CallBacker
void detachAllNotifiers ()
 Call from the destructor of your inherited object. More...
 
- Protected Attributes inherited from SequentialTask
ProgressMeterprogressmeter_
 
int lastupdate_
 
- Protected Attributes inherited from Task
Control control_
 
Threads::ConditionVarworkcontrolcondvar_
 
- Protected Attributes inherited from NamedObject
BufferStringname_
 
NamedObjectlinkedto_
 
CallBackSetdelnotify_
 

Detailed Description

Finds the nearest local extreme position in ND's. Implementation of Powell's Quadratically Convergent Method.

Note
The implementation is not tested (yet) 030512.

Constructor & Destructor Documentation

ExtremeFinderND::ExtremeFinderND ( const FloatMathFunctionND ,
bool  max,
int  itermax 
)
Parameters
funcThe function to be searched
maxSpecifies wether a min or max should be searched for
itermaxThe maximum number of iterations
virtual ExtremeFinderND::~ExtremeFinderND ( )
virtual

Member Function Documentation

const float* ExtremeFinderND::extremePos ( ) const
inline
Returns
A pointer to the extreme positions
template<class IDXABL >
void ExtremeFinderND::extremePos ( IDXABL &  sp) const
inline

Sets the sp variable to the extreme position.

float ExtremeFinderND::extremeVal ( ) const
inline
Returns
The extreme value
float ExtremeFinderND::linExtreme ( float *  )
private
int ExtremeFinderND::nextStep ( )
virtual
Return values
MoreToDo()Not finished. Call me again.
Finished()Nothing more to do.
ErrorOccurred()Something went wrong.
Note
if function returns a value greater than cMoreToDo(), it should be interpreted as cMoreToDo().

Implements SequentialTask.

int ExtremeFinderND::nrIter ( ) const
Returns
The number of iterations
template<class IDXABL >
void ExtremeFinderND::setStartPos ( const IDXABL &  sp)
inline

Member Data Documentation

float ExtremeFinderND::fret_
private
float ExtremeFinderND::ftol_
private
const FloatMathFunctionND& ExtremeFinderND::func_
private
int ExtremeFinderND::iter_
private
const int ExtremeFinderND::itermax_
private
const bool ExtremeFinderND::max_
private
int ExtremeFinderND::n_
private
float* ExtremeFinderND::p_
private
float* ExtremeFinderND::pt_
private
ObjectSet<float> ExtremeFinderND::xi_
private

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B. V. 2019