OpendTect-6_4  6.4
Functions
genericnumer.h File Reference
Include dependency graph for genericnumer.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

template<class A , class B , class C >
void GenericConvolve (int lx, int ifx, const A &x, int ly, int ify, const B &y, int lz, int ifz, C &z)
 
template<class A , class B , class C >
void GenericConvolveNoUdf (int lx, int ifx, const A &x, int ly, int ify, const B &y, int lz, int ifz, C &z)
 
template<class A , class B >
float similarity (const A &a, const B &b, int sz, bool normalize=false, int firstposa=0, int firstposb=0)
 
float similarity (const FloatMathFunction &, const FloatMathFunction &, float x1, float x2, float dist, int sz, bool normalize)
 
float semblance (const ObjectSet< float > &signals, const Interval< int > &)
 
float semblance (const ObjectSet< float > &signals, int signalsize, const TypeSet< float > &signalstarts, const Interval< int > &gate)
 
double LanczosKernel (int size, double x)
 
bool findValue (const FloatMathFunction &, float x1, float x2, float &res, float targetval=0, float tol=1e-5)
 
float findValueInAperture (const FloatMathFunction &, float startx, const Interval< float > &aperture, float dx, float target=0, float tol=1e-5)
 
float findExtreme (const FloatMathFunction &, bool minima, float x1, float x2, float tol=1e-5)
 
template<class A , class B >
void reSample (const FloatMathFunction &input, const A &samplevals, B &output, int nrsamples)
 
template<class A , class B , class C >
void genericCrossCorrelation (int lx, int ifx, const A &x, int ly, int ify, const B &y, int lz, int ifz, C &z)
 
template<class A >
void reverseArray (A *in, int sz, A *out=0)
 

Function Documentation

float findExtreme ( const FloatMathFunction ,
bool  minima,
float  x1,
float  x2,
float  tol = 1e-5 
)

findExtreme - finds a functions minimal or maximum value (specified by bool minima) within the values x1 and x2. f((x1+x2)/2) should be less than f(x1) and f(x2). If no minima can be found, mUdf(float) is returned;

bool findValue ( const FloatMathFunction ,
float  x1,
float  x2,
float &  res,
float  targetval = 0,
float  tol = 1e-5 
)

uses parabolic search for the position where a function gets

a specific value. The target value must be in the interval f(x1) and f(x2). There is no use to have a tolerance lower than the square root of the system's float-precision.

float findValueInAperture ( const FloatMathFunction ,
float  startx,
const Interval< float > &  aperture,
float  dx,
float  target = 0,
float  tol = 1e-5 
)

findValueInAperture is similar to findValue, with the difference that

findValueInAperture searches the solution that is closest to the startx. If no solution is found, startx is returned. The parameter dx specifies how big intervals should be used when searching for a solution. When a solution is found in an interval, a high precision search is started in that interval.

template<class A , class B , class C >
void GenericConvolve ( int  lx,
int  ifx,
const A &  x,
int  ly,
int  ify,
const B &  y,
int  lz,
int  ifz,
C &  z 
)
inline

Compute z = x convolved with y; i.e.,

       ifx+lx-1
z[i] =   sum    x[j]*y[i-j]  ;  i = ifz,...,ifz+lz-1
        j=ifx
template<class A , class B , class C >
void GenericConvolveNoUdf ( int  lx,
int  ifx,
const A &  x,
int  ly,
int  ify,
const B &  y,
int  lz,
int  ifz,
C &  z 
)
inline
template<class A , class B , class C >
void genericCrossCorrelation ( int  lx,
int  ifx,
const A &  x,
int  ly,
int  ify,
const B &  y,
int  lz,
int  ifz,
C &  z 
)
inline

Compute z = x cross-correlated with y; i.e.,

       ifx+lx-1

z[i] = sum x[j]*y[i+j] ; i = ifz,...,ifz+lz-1 j=ifx

Cross correlation will be performed using GenericConvolve function, here is the method used: 1) reverse the samples in the x array ->copy them to a temporary array, 2) use the temporary array to call function GenericConvolve() with ifx set to 1-ifx-lx.

double LanczosKernel ( int  size,
double  x 
)
template<class A , class B >
void reSample ( const FloatMathFunction input,
const A &  samplevals,
B &  output,
int  nrsamples 
)
inline
template<class A >
void reverseArray ( A *  in,
int  sz,
A *  out = 0 
)
inline
float semblance ( const ObjectSet< float > &  signals,
const Interval< int > &   
)
float semblance ( const ObjectSet< float > &  signals,
int  signalsize,
const TypeSet< float > &  signalstarts,
const Interval< int > &  gate 
)
template<class A , class B >
float similarity ( const A &  a,
const B &  b,
int  sz,
bool  normalize = false,
int  firstposa = 0,
int  firstposb = 0 
)
inline

similarity is the hyperspace distance between two vectors divided by

the sum of the lengths

float similarity ( const FloatMathFunction ,
const FloatMathFunction ,
float  x1,
float  x2,
float  dist,
int  sz,
bool  normalize 
)

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