-
Notifications
You must be signed in to change notification settings - Fork 0
/
lh_mp.h
107 lines (85 loc) · 4.31 KB
/
lh_mp.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/* This file is automatically generated. DO NOT EDIT! */
#ifndef _lh_mp_h
#define _lh_mp_h
int lh_index_max( float *a /* input array */,
int n /* length */);
/*< return the index with max value >*/
int lh_index_maxabs(float *a /* input array */,
int n /* length */);
/*< return the index with max value >*/
float lh_float_iproduct( float *a /* The array A[n] */,
float *b /* The array B[n] */,
int n /* The dimension */);
/*< Return the inner product of <a,b> >*/
int lh_max_abs( float *a /* The array */,
int n /* The dimension */ );
/*< Return the axes of number in array with maximum absolute value >*/
float lh_butterworth_filter( float frequency /* Frequency coefficient */,
float cut_frequency /* Cut frequency */,
int step /* The step of the filter */);
/*< Butterworth Filter >*/
void lh_cross_correlation_ft( float *x /* Array x[i] */,
int nx /* Dimention of x */,
float *y /* Array y[i] */,
int ny /* Dimension of y */,
float *cross /* Cross correlation cross<x,y> */,
int nc /* Dimension of cross */);
/*< Cross correlation of x and y, CROSS<X,Y> >*/
void lh_wave_estimation( float ****profile /* Input profile */,
int ny /* Number of Offset in crossline direction */,
int nx /* Number of Offset in inline direction */,
int nsita /* Number of angle in gather */,
int nt /* Number of Time Point */,
float *wavelet_estimated /* Output wavelet with length=nt */,
int fft_length /* The length of the fft and the return wavelet */);
/*< Using Profile to estimate the wavelet based on white-noise assumption >*/
void lh_mp_rvf_inputwave( float ****data /* 4D Input data[NY][NX][NSITA][NT]*/,
int ny /* Input parameter, NY */,
int nx /* Input parameter, NX */,
int nsita /* Input parameter, NSITA */,
int nt /* Input parameter, NT */,
float dt /* Input parameter, DT */,
float k_start /* Scan parameter, start slope */,
float k_end /* Scan parameter, end slope */,
int nk /* Scan parameter, Number of scan slope */,
float intercept /* Scan parameter, value of intercept */,
int nevent /* Scan parameter, Number of events */,
int nfft /* Derived from NT,nfft>=nt */,
float *****rvf /* Output data, rvf[NY][NX][NSITA][NW][NT] */,
float ****error /* Output data, error[NY][NX][NSITA][NT] */,
float *wavelet /* Input data, wavelet[NFFT] */);
/*< Reflectivity versus Frequency extraction from seismic trace >*/
void lh_mp_rvf_inputwave_ref( float ****data /* 4D Input data[NY][NX][NSITA][NT]*/,
float ****ref /* 4D Input ref[NY][NX][NSITA][NT]*/,
int ny /* Input parameter, NY */,
int nx /* Input parameter, NX */,
int nsita /* Input parameter, NSITA */,
int nt /* Input parameter, NT */,
float dt /* Input parameter, DT */,
float ave_fre /* Input parameter, Average Frequency */,
float k_start /* Scan parameter, start slope */,
float k_end /* Scan parameter, end slope */,
int nk /* Scan parameter, Number of scan slope */,
float intercept /* Scan parameter, value of intercept */,
int nfft /* Derived from NT,nfft>=nt */,
float *****rvf /* Output data, rvf[NY][NX][NSITA][NW][NT] */,
float ****error /* Output data, error[NY][NX][NSITA][NT] */,
float *wavelet /* Input data, wavelet[NFFT] */);
/*< Reflectivity versus Frequency extraction from seismic trace >*/
void lh_mp_rvf_outputwave( float ****data /* 4D Input data[NY][NX][NSITA][NT]*/,
int ny /* Input parameter, NY */,
int nx /* Input parameter, NX */,
int nsita /* Input parameter, NSITA */,
int nt /* Input parameter, NT */,
float dt /* Input parameter, DT */,
float k_start /* Scan parameter, start slope */,
float k_end /* Scan parameter, end slope */,
int nk /* Scan parameter, Number of scan slope */,
float intercept /* Scan parameter, value of intercept */,
int nevent /* Scan parameter, Number of events */,
int nfft /* Derived from NT,nfft>=nt */,
float *****rvf /* Output data, rvf[NY][NX][NSITA][NW][NT] */,
float ****error /* Output data, error[NY][NX][NSITA][NT] */,
float *wavelet /* Input data, wavelet[NFFT] */);
/*< Reflectivity versus Frequency extraction from seismic trace >*/
#endif