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 + -
显示快捷键?