logplus/BaseFun/include/CalcMethod.h
2025-10-29 17:23:30 +08:00

62 lines
5.1 KiB
C++

#pragma once
#include "BaseFun.h"
#include <complex>
using namespace std;
class BASEFUN_EXPORT CalcMethod
{
public:
CalcMethod(void);
~CalcMethod(void);
public:
//\/\/\/\/\/\/\/\/\/\/\/\\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
void static stl_dt(float t,float de,int ifmin,int ifmax,float dfinterval,float rb,float R_TOOL,float DEN_BORE_FLUID, float VIS, float POR,float dkb,float dkbf,float PERM,float vbf,float VS,float FMST,float SPACEE,complex<float> kew[512],float FWFSYN[1024],complex<float>CFDWV0[1024],float dtf[3]);
float static prr_N(float wave_R[8][1024],float DT_INTERVAL,float TIME_L,float SPACE_RLEV,float time,float dt,int MMM);
complex<float> static DET(float vp, float vs,float vf,float den,float R, float w ,int IONLY);
void static CFB(complex<float> Z, complex<float> wi[2], complex<float> wk[2], int IONLY);
int static amp(float x[1024], int nl, float xr[1024],int i0);
void static fft842(int INN, int N, float *X, float *Y);
void static r2tx(int NTHPO, float *CR0, float *CI0);
void static r4tx(int NTHPO, float *CR0, float *CI0);
void static r8tx(int NXTLT,int NTHPO,int LENGT,float *CR0,float *CI0);
void static wavelet( float INTA[1024],float ww[1024],int IP,int ipoint);
void static DWT(float vp[7][1024],float B[7][1024],int M,int N,float H[4],float C1[8],float G[2]);
void static RECON_DWT(float AA[7][1024],float B[7][1024], int M,int N,float H[4],float C1[8],float K1[6]);
complex<float> static GetRootMonteCarlo(complex<float> k0,float vp,float vs,float vf,float denf,float den,float R,float w,int n,float MTOOL,float R_TOOL,float df);
float static rnd(float* r);
float static Func(float x,float y ,float vp,float vs,float vf,float denf,float den,float R,float w,int n,float MTOOL,float R_TOOL);
float static FuncD(float x,float y ,float vp,float vs,float vf,float denf,float den,float R,float w,int n,float MTOOL,float R_TOOL);
float static Func_M11(float x,float y ,float vp,float vs,float vf,float denf,float den,float R,float w,int n,float MTOOL,float R_TOOL);
float static Func_M21(float x,float y ,float vp,float vs,float vf,float denf,float den,float R,float w,int n,float MTOOL,float R_TOOL);
float static Get_EW(float k0,float vp,float vs,float vf,float denf,float den,float R,float w,int n,float MTOOL,float R_TOOL,float df);
complex<float> static Ibessel(int n,complex<float> x);
complex<float> static Kbessel(int n,complex<float> x);
inline bool static doubleEqual(float lhs, float rhs);
int static reversion(int vp[4]);
int static reversion3(int vp[3]);
float static TransformativeIntegerBessel1stFunction(int n,float x);
float static TransformativeIntegerBessel2ndFunction(int n, float x);
void static waveseparate( complex<float> h[3],float s[3],float SPACE_INTERVAL,float w,complex<float> W[8]);
void static waveseparate2( complex<float> h[2],float s[2],float SPACE_INTERVAL,float w,complex<float> W[8]);
void static WAVEseparate( float wf[8][1024],float hwf1[1024],float hwf2[1024],float hwf3[1024],float dtst,float dfinterval,float SPACE_INTERVAL,int NSAMPLE,float fmin,float fmax);
void static WAVEseparate2( float wf[8][1024],float hwf1[1024],float hwf2[1024],float dtst,float dfinterval,float SPACE_INTERVAL,int NSAMPLE,int iflag,float fmin,float fmax);
void static waveseparate3(complex<float> h[3],float s[3],float SPACE_INTERVAL,float w,complex<float> W[8]);
void static setrootQR(complex<float> R[8][3],complex<float> h[],complex<float> Q[8][8],complex<float> B[]);
void static splitCQR(complex<float> Z[8][3],complex<float> Q[8][8]);
void static recursion(complex<float> Z[8][3],int n,complex<float> Q[8][8]);
void static splitC3QR(complex<float> z[3][3],complex<float> h[3][3]);
void static wavesp2(complex<float> h[2],float s[2],float d,float w,complex<float> W[8]);
void static setrootQR2(complex<float> Z[8][2],complex<float> Q[8][8], complex<float> h[2],complex<float> W[8]);
void static splitQR2(complex<float> Z[8][2],complex<float> Q[8][8]);
float static Func1(float x,float y ,float Vpv,float Vsv,float Vsh,float vf,float denf,
float den,float R,float w,int n,float MTOOL,float R_TOOL);
complex<float> static GetRootMonteCarlo1(float Vpv,float Vsv,float Vsh,float vf,float denf,float den,float R,float w,int n,float MTOOL,float R_TOOL);
complex<float> static xianjie(float vp,float vs,float vf,float denf,float den,float R,float w,int n,float MTOOL,float R_TOOL);
complex<float> static Funcxianjie(float x,float y ,float vp,float vs,float vf,float denf,float den,float R,float w,int n,float MTOOL,float R_TOOL);
complex<float> static interposek(float x,float y ,float vp,float vs,float vf,float denf,float den,float R,float w,int n,float MTOOL,float R_TOOL);
complex<float> static interposeW(float x,float y ,float vp,float vs,float vf,float denf,float den,float R,float w,int n,float MTOOL,float R_TOOL,float df);
void static G_L(float r,float r_,float k,float w,float denf,float gl[2][2]);
void static MM_(float M[2][2],float M_[2][2]);
void static M_M(float M1[2][2],float M2[2][2],float M[2][2]);
complex<float> static initialvalue(float x,float y ,float vp,float vs,float vf,float denf,float den,float R,float w,int n,float MTOOL,float R_TOOL,float df);
};