OpendTect 8.0
Loading...
Searching...
No Matches
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...

#include <extremefinder.h>

Inheritance diagram for ExtremeFinderND:
[legend]

Public Member Functions

 ExtremeFinderND (const FloatMathFunctionND &func, bool max, int itermax)
 
virtual ~ExtremeFinderND ()
 
const float * extremePos () const
 
template<class IDXABL >
void extremePos (IDXABL &sp) const
 Sets the sp variable to the extreme position.
 
float extremeVal () const
 
int nextStep () override
 
int nrIter () const
 
template<class IDXABL >
void setStartPos (const IDXABL &sp)
 
- Public Member Functions inherited from SequentialTask
 SequentialTask (const char *nm=nullptr)
 
virtual ~SequentialTask ()
 
virtual int doStep ()
 
bool execute () override
 
- Public Member Functions inherited from ReportingTask
 ReportingTask (const ReportingTask &)=delete
 
virtual ~ReportingTask ()
 
void getProgress (const ReportingTask &)
 
ReportingTaskoperator= (const ReportingTask &)=delete
 
void setSimpleMeter (bool yn, int repperc)
 
int simpleMeterStep () const
 
bool useSimpleMeter () const
 
- Public Member Functions inherited from Task
 Task (const Task &)=delete
 
virtual ~Task ()
 
virtual void controlWork (Control)
 
virtual void enableWorkControl (bool=true)
 Must be called before execute()
 
virtual uiRetVal errorWithDetails () const
 
virtual Control getState () const
 
virtual od_int64 nrDone () const
 
Taskoperator= (const Task &)=delete
 
virtual od_int64 totalNr () const
 
virtual uiString uiMessage () const
 
virtual uiString uiNrDoneText () const
 
bool workControlEnabled () const
 
- Public Member Functions inherited from NamedCallBacker
 NamedCallBacker (const char *nm=nullptr)
 
 NamedCallBacker (const NamedCallBacker &)=delete
 
 ~NamedCallBacker ()
 
virtual Notifier< NamedCallBacker > & objectToBeDeleted () const
 
NamedCallBackeroperator= (const NamedCallBacker &)=delete
 
bool operator== (const NamedCallBacker &oth) const
 
bool operator== (const NamedObject &oth) 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 detachAllNotifiers () const
 Call from the destructor of your inherited object.
 
void detachCB (const NotifierAccess &, const CallBack &) const
 
void detachCB (const NotifierAccess *notif, const CallBack &cb) const
 
virtual bool isCapsule () const
 
bool isNotifierAttached (const NotifierAccess *) const
 Only for debugging purposes, don't use.
 
CallBackeroperator= (const CallBacker &)=delete
 
void stopReceivingNotifications () const
 
virtual CallBackertrueCaller ()
 
- Public Member Functions inherited from NamedObject
 NamedObject (const char *nm=nullptr)
 
 NamedObject (const NamedObject &oth)
 
virtual ~NamedObject ()
 
virtual BufferString getName () const
 
bool getNameFromPar (const IOPar &)
 
const name_typename () const override
 
NamedObjectoperator= (const NamedObject &)
 
bool operator== (const NamedObject &oth) const
 
virtual void setName (const char *nm)
 
- Public Member Functions inherited from ObjectWithName
virtual ~ObjectWithName ()
 
bool hasName (const char *nm) const
 
bool hasName (const name_type &nm) const
 
void putNameInPar (IOPar &) const
 

Private Member Functions

float linExtreme (float *)
 

Private Attributes

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

Additional Inherited Members

- Public Types inherited from Task
enum  Control { Run , Pause , Stop }
 
- Public Types inherited from ObjectWithName
typedef OD::String name_type
 
- 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 ReportingTask
static PtrMan< ProgressMetergetTextProgressMeter (od_ostream &, const IOPar *iop=nullptr)
 
static bool needSimpleLogging (const IOPar &)
 
static const char * sKeySimpleLogging ()
 
static const char * sKeySimpleLoggingStep ()
 
- Static Public Member Functions inherited from Task
static uiString uiStdNrDoneText ()
 
- Static Public Member Functions inherited from CallBacker
static void createReceiverForCurrentThread ()
 
static void removeReceiverForCurrentThread ()
 
- Public Attributes inherited from ReportingTask
Notifier< ReportingTaskprogressUpdated
 
- Protected Member Functions inherited from SequentialTask
virtual bool doFinish (bool success, od_ostream *=nullptr)
 
virtual bool doPrepare (od_ostream *=nullptr)
 
- Protected Member Functions inherited from ReportingTask
 ReportingTask (const char *nm=nullptr)
 
void incrementProgress ()
 
ProgressMeterprogressMeter () const
 
void reportProgressFinished ()
 
void reportProgressStarted ()
 
void resetProgress ()
 
void setProgressMeter (ProgressMeter *) override
 Must be called before execute()
 
void updateProgressMeter (bool forced=false, od_int64 *totalnr=0)
 
void updateReportedName ()
 
- Protected Member Functions inherited from Task
 Task (const char *nm=nullptr)
 
virtual bool shouldContinue ()
 
- Protected Member Functions inherited from NamedCallBacker
void sendDelNotif () const
 
- Protected Attributes inherited from Task
Control control_ = Task::Run
 
Threads::ConditionVarworkcontrolcondvar_ = nullptr
 
- Protected Attributes inherited from NamedCallBacker
Threads::Atomic< bool > delalreadytriggered_
 
Notifier< NamedCallBackerdelnotif_
 
- 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::ExtremeFinderND ( const FloatMathFunctionND & func,
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

◆ ~ExtremeFinderND()

virtual ExtremeFinderND::~ExtremeFinderND ( )
virtual

Member Function Documentation

◆ extremePos() [1/2]

const float * ExtremeFinderND::extremePos ( ) const
inline
Returns
A pointer to the extreme positions

◆ extremePos() [2/2]

template<class IDXABL >
void ExtremeFinderND::extremePos ( IDXABL & sp) const
inline

Sets the sp variable to the extreme position.

◆ extremeVal()

float ExtremeFinderND::extremeVal ( ) const
inline
Returns
The extreme value

◆ linExtreme()

float ExtremeFinderND::linExtreme ( float * )
private

◆ nextStep()

int ExtremeFinderND::nextStep ( )
overridevirtual
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.

◆ nrIter()

int ExtremeFinderND::nrIter ( ) const
Returns
The number of iterations

◆ setStartPos()

template<class IDXABL >
void ExtremeFinderND::setStartPos ( const IDXABL & sp)
inline

Member Data Documentation

◆ fret_

float ExtremeFinderND::fret_
private

◆ ftol_

float ExtremeFinderND::ftol_
private

◆ func_

const FloatMathFunctionND& ExtremeFinderND::func_
private

◆ iter_

int ExtremeFinderND::iter_
private

◆ itermax_

const int ExtremeFinderND::itermax_
private

◆ max_

const bool ExtremeFinderND::max_
private

◆ n_

int ExtremeFinderND::n_
private

◆ p_

float* ExtremeFinderND::p_
private

◆ pt_

float* ExtremeFinderND::pt_
private

◆ xi_

ObjectSet<float> ExtremeFinderND::xi_
private

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