OpendTect 8.0
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Convolver2D< T > Class Template Reference

Convolves (or correlates) two 2D signals. More...

#include <convolve2d.h>

Inheritance diagram for Convolver2D< T >:
[legend]

Public Member Functions

 Convolver2D ()
 
 ~Convolver2D ()
 
 ~Convolver2D ()
 
const Array2D< T > * getX () const
 
const Array2D< T > * getY () const
 
od_int64 nrIterations () const
 
od_int64 nrIterations () const override
 
void setCorrelate (bool yn)
 
void setNormalize (bool n)
 
void setX (const Array2D< T > &, bool hasudfs)
 
void setY (const Array2D< T > &, bool hasudfs)
 
void setZ (Array2D< T > &z)
 
- Public Member Functions inherited from ParallelTask
virtual ~ParallelTask ()
 
void doParallel (bool yn)
 
bool execute () override
 
virtual bool executeParallel (bool parallel)
 
od_int64 nrDone () const override
 May be -1, i.e. class does not report nrdone.
 
od_int64 totalNr () const 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
 
Taskoperator= (const Task &)=delete
 
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
 

Protected Member Functions

bool doNonFFTWork (od_int64, od_int64, int)
 
bool doPrepare (int) override
 
bool doWork (od_int64 start, od_int64 stop, int)
 
bool doWork (od_int64, od_int64, int) override
 
bool shouldFFT () const
 
bool shouldFFT () const
 
- Protected Member Functions inherited from ParallelTask
 ParallelTask (const char *nm=0)
 
void addToNrDone (od_int64 increment)
 
od_int64 calculateThreadSize (od_int64 totalnr, int nrthreads, int thread) const
 
virtual int maxNrThreads () const
 
virtual int minThreadSize () const
 
void quickAddToNrDone (od_int64 loopidx)
 
void resetNrDone ()
 
virtual bool stopAllOnFailure () const
 
- 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

bool correlate_
 
Fourier::CCfft_
 
bool normalize_
 
bool updatexf_
 
bool updateyf_
 
const Array2D< T > * x_
 
float_complex * xf_
 
bool xhasudfs_
 
const Array2D< T > * y_
 
float_complex * yf_
 
bool yhasudfs_
 
Array2D< T > * z_
 
float_complex * zf_
 
- 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_
 

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 ParallelTask
static uiString sPosFinished ()
 
static uiString sTrcFinished ()
 
- 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
 

Detailed Description

template<class T>
class Convolver2D< T >

Convolves (or correlates) two 2D signals.

Constructor & Destructor Documentation

◆ Convolver2D()

template<class T >
Convolver2D< T >::Convolver2D ( )
inline

◆ ~Convolver2D() [1/2]

template<class T >
Convolver2D< T >::~Convolver2D ( )

◆ ~Convolver2D() [2/2]

Convolver2D< float >::~Convolver2D ( )

Member Function Documentation

◆ doNonFFTWork()

template<class T >
bool Convolver2D< T >::doNonFFTWork ( od_int64 start,
od_int64 stop,
int  )
inlineprotected

◆ doPrepare()

template<class T >
bool Convolver2D< T >::doPrepare ( int nrthreads)
overrideprotectedvirtual

Called once, before any doWork is called.

Reimplemented from ParallelTask.

◆ doWork() [1/2]

bool Convolver2D< float >::doWork ( od_int64 start,
od_int64 stop,
int threadidx )
protectedvirtual

The functions that does the job. The function will be called with all intervals from 0 to ParallelTask::nrIterations()-1. The function must be designed to be able to run in parallel.

Parameters
startfirst index
stoplast index
threadidxgives an identifier (between 0 and nr of threads -1) that is unique to each call to doWork.

Implements ParallelTask.

◆ doWork() [2/2]

template<class T >
bool Convolver2D< T >::doWork ( od_int64 start,
od_int64 stop,
int threadidx )
inlineoverrideprotectedvirtual

The functions that does the job. The function will be called with all intervals from 0 to ParallelTask::nrIterations()-1. The function must be designed to be able to run in parallel.

Parameters
startfirst index
stoplast index
threadidxgives an identifier (between 0 and nr of threads -1) that is unique to each call to doWork.

Implements ParallelTask.

◆ getX()

template<class T >
const Array2D< T > * Convolver2D< T >::getX ( ) const
inline

◆ getY()

template<class T >
const Array2D< T > * Convolver2D< T >::getY ( ) const
inline

◆ nrIterations() [1/2]

od_int64 Convolver2D< float >::nrIterations ( ) const
inlinevirtual
Returns
the number of times the process should be run.

Implements ParallelTask.

◆ nrIterations() [2/2]

template<class T >
od_int64 Convolver2D< T >::nrIterations ( ) const
inlineoverridevirtual
Returns
the number of times the process should be run.

Implements ParallelTask.

◆ setCorrelate()

template<class T >
void Convolver2D< T >::setCorrelate ( bool yn)
inline

If true, the convolution will be replaced by a correllation.

◆ setNormalize()

template<class T >
void Convolver2D< T >::setNormalize ( bool n)
inline

If true, the sum will be divided by the sum of Y.

◆ setX()

template<class T >
void Convolver2D< T >::setX ( const Array2D< T > & x,
bool hasudfs )
inline

◆ setY()

template<class T >
void Convolver2D< T >::setY ( const Array2D< T > & y,
bool hasudfs )
inline

◆ setZ()

template<class T >
void Convolver2D< T >::setZ ( Array2D< T > & z)
inline

◆ shouldFFT() [1/2]

template<class T >
bool Convolver2D< T >::shouldFFT ( ) const
inlineprotected

◆ shouldFFT() [2/2]

bool Convolver2D< float >::shouldFFT ( ) const
inlineprotected

Member Data Documentation

◆ correlate_

template<class T >
bool Convolver2D< T >::correlate_
protected

◆ fft_

template<class T >
Fourier::CC* Convolver2D< T >::fft_
protected

◆ normalize_

template<class T >
bool Convolver2D< T >::normalize_
protected

◆ updatexf_

template<class T >
bool Convolver2D< T >::updatexf_
protected

◆ updateyf_

template<class T >
bool Convolver2D< T >::updateyf_
protected

◆ x_

template<class T >
const Array2D<T>* Convolver2D< T >::x_
protected

◆ xf_

template<class T >
float_complex* Convolver2D< T >::xf_
protected

◆ xhasudfs_

template<class T >
bool Convolver2D< T >::xhasudfs_
protected

◆ y_

template<class T >
const Array2D<T>* Convolver2D< T >::y_
protected

◆ yf_

template<class T >
float_complex* Convolver2D< T >::yf_
protected

◆ yhasudfs_

template<class T >
bool Convolver2D< T >::yhasudfs_
protected

◆ z_

template<class T >
Array2D<T>* Convolver2D< T >::z_
protected

◆ zf_

template<class T >
float_complex* Convolver2D< T >::zf_
protected

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