cwp.h

来自「该程序是用vc开发的对动态数组进行管理的DLL」· C头文件 代码 · 共 605 行 · 第 1/2 页

H
605
字号
/* general signal processing */void		conv (int lx, int ifx, float *x, int ly, int ify, float *y,	int lz, int ifz, float *z);void		xcor (int lx, int ifx, float *x, int ly, int ify, float *y ,	int lz, int ifz, float *z);void		hilbert (int n, float x[], float y[]);void		antialias (float frac, int phase, int n, float p[], float q[]);/* Abel transformer */void		*abelalloc (int n);void		abelfree (void *at);void		abel (void *at, float f[], float g[]);/* Hankel transformer */void		*hankelalloc (int nfft);void		hankelfree (void *ht);void		hankel0 (void *ht, float f[], float h[]);void		hankel1 (void *ht, float f[], float h[]);/* sorting and searching */void		hpsort (int n, float a[]);void		qksort (int n, float a[]);void		qkfind (int m, int n, float a[]);void		qkisort (int n, float a[], int i[]);void		qkifind (int m, int n, float a[], int i[]);/* statistics */float		quest (float p, int n, float x[]);void		*questalloc (float p, int n, float x[]);float		questupdate (void *q, int n, float x[]);void		questfree (void *q);/* PC byte swapping */void		swap_short_2(short *tni2);void		swap_u_short_2(unsigned short *tni2);void		swap_int_4(int *tni4);void		swap_u_int_4(unsigned int *tni4);void		swap_long_4(long *tni4);void		swap_u_long_4(unsigned long *tni4);void		swap_float_4(float *tnf4);void		swap_double_8(double *tndd8);/* Prime Factor FFTs */int			npfa (int nmin);int			npfao (int nmin, int nmax);int			npfar (int nmin);int			npfaro (int nmin, int nmax);void		pfacc (int isign, int n, fcomplex z[]);void		pfarc (int isign, int n, float rz[], fcomplex cz[]);void		pfacr (int isign, int n, fcomplex cz[], float rz[]);void		pfa2cc (int isign, int idim, int n1, int n2, fcomplex z[]);void		pfa2rc (int isign, int idim, int n1, int n2, float rz[], fcomplex cz[]);void		pfa2cr (int isign, int idim, int n1, int n2, fcomplex cz[], float rz[]);void		pfamcc (int isign, int n, int nt, int k, int kt, fcomplex z[]);/* Prime Factor FFTs (double version)*/int			npfa_d (int nmin);int			npfao_d (int nmin, int nmax);int			npfar_d (int nmin);int			npfaro_d (int nmin, int nmax);void		pfacc_d (int isign, int n, dcomplex z[]);void		pfacr_d (int isign, int n, dcomplex cz[], double rz[]);void		pfarc_d (int isign, int n, double rz[], dcomplex cz[]);void		pfamcc_d (int isign, int n, int nt, int k, int kt, dcomplex z[]);void		pfa2cc_d (int isign, int idim, int n1, int n2, dcomplex z[]);void		pfa2cr_d (int isign, int idim, int n1, int n2, dcomplex cz[],double rz[]);void		pfa2rc_d (int isign, int idim, int n1, int n2, double rz[],dcomplex cz[]);/* BLAS (Basic Linear Algebra Subroutines adapted from LINPACK FORTRAN) */int			isamax (int n, float *sx, int incx);float		sasum (int n, float *sx, int incx);void		saxpy (int n, float sa, float *sx, int incx, float *sy, int incy);void		scopy (int n, float *sx, int incx, float *sy, int incy);float		sdot (int n, float *sx, int incx, float *sy, int incy);float		snrm2 (int n, float *sx, int incx);void		sscal (int n, float sa, float *sx, int incx);void		sswap (int n, float *sx, int incx, float *sy, int incy);int			idamax (int n, double *sx, int incx);double		dasum (int n, double *sx, int incx);void		daxpy (int n, double sa, double *sx, int incx, double *sy, int incy);void		dcopy (int n, double *sx, int incx, double *sy, int incy);double		ddot (int n, double *sx, int incx, double *sy, int incy);double		dnrm2 (int n, double *sx, int incx);void		dscal (int n, double sa, double *sx, int incx);void		dswap (int n, double *sx, int incx, double *sy, int incy);/* LINPACK functions (adapted from LINPACK FORTRAN) */void		sgeco (float **a, int n, int *ipvt, float *rcond, float *z);void		sgefa (float **a, int n, int *ipvt, int *info);void		sgesl (float **a, int n, int *ipvt, float *b, int job);void		sqrdc (float **x, int n, int p, float *qraux, int *jpvt,				float *work, int job);void		sqrsl (float **x, int n, int k, float *qraux,				float *y, float *qy, float *qty,				float *b, float *rsd, float *xb, int job, int *info);void		sqrst (float **x, int n, int p, float *y, float tol,				float *b, float *rsd, int *k,				int *jpvt, float *qraux, float *work);void		dgeco (double **a, int n, int *ipvt, double *rcond, double *z);void		dgefa (double **a, int n, int *ipvt, int *info);void		dgesl (double **a, int n, int *ipvt, double *b, int job);/* other linear system solvers */void		stoepd (int n, double r[], double g[], double f[], double a[]);void		stoepf (int n, float r[], float g[], float f[], float a[]);void		vanded (int n, double v[], double b[], double x[]);void		vandef (int n, float v[], float b[], float x[]);void		tridif (int n, float a[], float b[], float c[], float r[], float u[]);void		tridid (int n, double a[], double b[], double c[], double r[], double u[]);void		tripd (float *d, float *e, float *b, int n);void		tripp (int n, float *d, float *e, float *c, float *b);/* root finding */int			mnewt (int maxiter, float ftol, float dxtol, int n, float *x, void *aux,				void (*fdfdx)(int n, float *x, float *f, float **dfdx, void *aux));/* transform rectangular => polar and polar => to rectangular coordinates */void		recttopolar ( int nx, float dx, float fx, int ny, float dy,				float fy, float **p, int na, float da, float fa, int nr, float dr,				float fr, float **q);void		polartorect ( int na, float da, float fa, int nr, float dr,				float fr, float **q, int nx, float dx, float fx, int ny, float dy,				float fy, float **p);/* graphics utilities */void		rfwtva (int n, float z[], float zmin, float zmax, float zbase,				int yzmin, int yzmax, int xfirst, int xlast,				int wiggle, int nbpr, unsigned char *bits, int endian);void		rfwtvaint (int n, float z[], float zmin, float zmax, float zbase,				int yzmin, int yzmax, int xfirst, int xlast,				int wiggle, int nbpr, unsigned char *bits, int endian);void		scaxis (float x1, float x2, int *nxnum, float *dxnum, float *fxnum);int			yclip (int nx, float dx, float fx, float y[], float ymin, float ymax,float xc[], float yc[]);/* special functions */float		airya (float x);float		airyb (float x);float		airyap (float x);float		airybp (float x);/* timers *//*---------float cpusec (void);float cputime (void);float wallsec (void);float walltime (void);-----------*//* pseudo-random numbers */float		franuni (void);void		sranuni (int seed);float		frannor (void);void		srannor (int seed);/* Ax=b routines */void		LU_decomposition (int nrows, float **matrix, int *index, float *d);void		backward_substitution (int nrows, float **matrix, int *index, float *b);void		inverse_matrix (int nrows, float **matrix);void		inverse_matrix_multiply (int nrows1, float **matrix1, int ncols2,int nrows2, float **matrix2, float **out_matrix);/* singular value decomposition routines */void		compute_svd(float **a, int m, int n, float w[], float **v);void		svd_backsubstitute(float **u, float w[], float **v,int m, int n, float b[], float x[]);/* waveforms */void		ricker1_wavelet (int nt, float dt, float fpeak, float *wavelet);void		ricker2_wavelet (int hlw, float dt, float period, float ampl, 				float distort, float *wavelet);void		akb_wavelet (int nt, float dt, float fpeak, float *wavelet);void		spike_wavelet (int nt, int tindex, float *wavelet);void		unit_wavelet (int nt, float *wavelet);void		zero_wavelet (int nt, float *wavelet);/* miscellaneous */void		pp1d (FILE *fp, char *title, int lx, int ifx, float x[]);void		pplot1 (FILE *fp, char *title, int nx, float ax[]);char		*temporary_filename(char *prefix);void		zasc (char *ainput, char *aoutput, int nchar);void		zebc (char *ainput, char *aoutput, int nchar);void		IBMFLT(float *in, float *out, int *nwds, int *idirec);dcomplex	*alloc1dcomplex (size_t n1);dcomplex	*realloc1dcomplex (dcomplex *v, size_t n1);dcomplex	**alloc2dcomplex (size_t n1, size_t n2);dcomplex	***alloc3dcomplex (size_t n1, size_t n2, size_t n3);void		free1dcomplex (dcomplex *p);void		free2dcomplex (dcomplex **p);void		free3dcomplex (dcomplex ***p);dcomplex	*alloc1dcomplex (size_t n1);dcomplex	*realloc1dcomplex (dcomplex *v, size_t n1);dcomplex	**alloc2dcomplex (size_t n1, size_t n2);dcomplex	***alloc3dcomplex (size_t n1, size_t n2, size_t n3);void		free1dcomplex (dcomplex *p);void		free2dcomplex (dcomplex **p);void		free3dcomplex (dcomplex ***p);/* Prime Factor FFTs (double version)*/int			npfa_d (int nmin);int			npfao_d (int nmin, int nmax);int			npfar_d (int nmin);int			npfaro_d (int nmin, int nmax);void		pfacc_d (int isign, int n, dcomplex z[]);void		pfacr_d (int isign, int n, dcomplex cz[], double rz[]);void		pfarc_d (int isign, int n, double rz[], dcomplex cz[]);void		pfamcc_d (int isign, int n, int nt, int k, int kt, dcomplex z[]);void		pfa2cc_d (int isign, int idim, int n1, int n2, dcomplex z[]);void		pfa2cr_d (int isign, int idim, int n1, int n2, dcomplex cz[],				double rz[]);void		pfa2rc_d (int isign, int idim, int n1, int n2, double rz[],dcomplex cz[]);/* string manipulation */char		*cwp_strdup(char *str);
void		strchop(char *s, char *t);/* if off_t, fseeko, and ftello not defined *//* redefine these items back to the int, fseek, ftell */#ifndef		ftello#define		ftello ftell#endif#ifndef		fseeko#define		fseeko fseek#endif/*--------------------------------------------------------------------*\  Redefine things to get largefile support for Solaris 5.6 to work  properly.  Sun didn't get this *quite* correct.  Reginald H. Beardsley                            rhb@acm.org\*--------------------------------------------------------------------*/#ifdef		_LARGEFILE64_SOURCE	/* if the largefile source flag is set */#define		open  open64#define		creat creat64#define		lseek lseek64#undef		off_t#define		off_t long long#define		fstat fstat64#define		stat  stat64#undef		fseeko#define		fseeko fseeko64#undef		ftello#define		ftello ftello64#define		fopen  fopen64#define		freopen freopen64#endif	/* end of largefile flag block *//* exit function */int			CWP_Exit();extern char ascToebc[256];extern char ebcToasc[256];extern char ascToebc500[256];extern char ebc500Toasc[256];char		EBCToASC(char i);void		ConvEBCToASC(char *ebc3200);void		swapXSegybhead(XSegybhead *head);void		swapXSegyhead(XSegyhead * head);void		swap2(void *);void		swap4(void *);void		swap8(void *);void		swap2Arr(void *arr,int len);void		swap4Arr(void *arr,int len);void		swap8Arr(void *arr,int len);double  	aver_d(double *tmp,int M);float  	    aver_f(float *tmp,int M);float     	max_f(float *tmp,int M);float   	min_f(float *tmp,int M);float       liner_value(float x1,float y1,float x2,float y2,float x3);#ifdef __cplusplus /* if C++, end external linkage specification */}#endif#endif /* CWP_H */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?