OpendTect  6.3
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 uiString message () const
 
virtual uiString nrDoneText () const
 
virtual int64_t nrDone () const
 
virtual int64_t totalNr () const
 
virtual uiRetVal errorWithDetails () const
 
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 NamedCallBacker
 NamedCallBacker (const char *nm=0)
 
 NamedCallBacker (const NamedCallBacker &)
 
bool operator== (const NamedCallBacker &oth) const
 
bool operator== (const NamedObject &oth) const
 
virtual Notifier< NamedCallBacker > & objectToBeDeleted () const
 
- Public Member Functions inherited from CallBacker
 CallBacker ()
 
 CallBacker (const CallBacker &)
 
virtual ~CallBacker ()
 
bool attachCB (const NotifierAccess &, const CallBack &, bool onlyifnew=false) const
 
bool attachCB (const NotifierAccess *notif, const CallBack &cb, bool onlyifnew=false) const
 
void detachCB (const NotifierAccess &, const CallBack &) const
 
void detachCB (const NotifierAccess *notif, const CallBack &cb) const
 
bool isNotifierAttached (const NotifierAccess *) const
 Only for debugging purposes, don't use. More...
 
virtual bool isCapsule () const
 
void stopReceivingNotifications () const
 
- Public Member Functions inherited from NamedObject
 NamedObject (const char *nm=0)
 
 NamedObject (const NamedObject &oth)
 
virtual ~NamedObject ()
 
NamedObjectoperator= (const NamedObject &)
 
bool operator== (const NamedObject &oth) const
 
virtual const OD::Stringname () const
 
virtual BufferString getName () const
 
virtual void setName (const char *nm)
 
bool getNameFromPar (const IOPar &)
 
void putNameInPar (IOPar &) const
 

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 stdMessage ()
 
static uiString stdNrDoneText ()
 
- Static Public Member Functions inherited from CallBacker
static void createReceiverForCurrentThread ()
 
static void removeReceiverForCurrentThread ()
 
- Protected Member Functions inherited from Task
 Task (const char *nm=0)
 
virtual bool shouldContinue ()
 
- Protected Member Functions inherited from NamedCallBacker
void sendDelNotif () const
 
- Protected Member Functions inherited from CallBacker
void detachAllNotifiers () const
 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 NamedCallBacker
Notifier< NamedCallBackerdelnotif_
 
Threads::Atomic< bool > delalreadytriggered_
 
- Protected Attributes inherited from NamedObject
BufferString name_
 

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. 2017