OpendTect  6.6
variogrammodels.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*+
4 ________________________________________________________________________
5 
6  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7  Author: A. Huck & H.Huck
8  Date: 27-09-2011
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 
13 -*/
14 
15 #include <math.h>
16 
17 
18 inline void getVariogramModel( const char* typestr, float nugget, float sill,
19  float range, int size, float* in, float* out )
20 {
21  const FixedString type( typestr );
22  if ( type=="exponential" )
23  {
24  for ( int idx=0; idx<size; idx++ )
25  out[idx] = (sill-nugget)*(1-exp(-3*in[idx]/range))+nugget;
26  }
27  else if ( type=="gaussian" )
28  {
29  for ( int idx=0; idx<size; idx++ )
30  {
31  out[idx] = (sill-nugget)*
32  (1-exp(-3*((in[idx]*in[idx])/(range*range))))+
33  nugget;
34  }
35  }
36  else if ( type=="spherical" )
37  {
38  for ( int idx=0; idx<size; idx++ )
39  {
40  if ( in[idx] < range )
41  {
42  out[idx] = (sill-nugget)*(((3*in[idx])/(2*range))-
43  ((in[idx]*in[idx]*in[idx])/(2*range*range*range)))
44  +nugget;
45  }
46  else
47  out[idx] = sill;
48  }
49  }
50 }
51 
52 
FixedString
OD::String that holds an existing text string.
Definition: fixedstring.h:29
getVariogramModel
void getVariogramModel(const char *typestr, float nugget, float sill, float range, int size, float *in, float *out)
Definition: variogrammodels.h:18

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