Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

include/util.h

00001 
00005 #ifndef utils_h_inc
00006 #define utils_h_inc
00007 
00008 #include <complex.h>
00009 
00012 #define SWAPC(x,y) {complex* temp; temp=(x); (x)=(y); (y)=temp;}
00013 #define SWAP_double(x,y) {double* temp; temp=(x); (x)=(y); (y)=temp;}
00014 #define SWAP_complex(x,y) {complex* temp; temp=(x); (x)=(y); (y)=temp;}
00015 #define PI 3.1415926535897932384
00016 #define MAX(a,b) ((a)>(b)? (a) : (b))
00017 #define MIN(a,b) ((a)<(b)? (a) : (b))
00018 
00028 double second();
00029 
00032 int next_power_of_2(int N);
00033 
00034 void next_power_of_2_exp(int N, int *N2, int *t);
00035 
00038 int nfft_prod_int(int *vec, int d);
00039 int nfct_prod_int(int *vec, int d);
00040 
00043 int nfst_prod_minus_a_int(int *vec, int a, int d);
00044 
00047 int nfft_plain_loop(int *idx,int *N,int d);
00048 
00051 double nfft_prod_real(double *vec,int d);
00052 
00064 double sinc(double x);
00065 
00068 double bspline_old(int k,double x,double *A);
00069 
00073 double bspline(int k, double x, double *scratch);
00074 
00079 double i0(double x);
00080 
00091 double dot_complex(complex* x, int n);
00092 double dot_double( double*  x, int n);
00093 
00096 double dot_w_complex(complex* x, double* w, int n);
00097 double dot_w_double( double*  x, double* w, int n);
00098 
00102 double dot_w_w2_complex(complex* x, double* w, double* w2, int n);
00103 
00107 double dot_w2_complex(complex* x, double* w2, int n);
00108 
00111 void cp_complex(complex* x, complex* y, int n);
00112 void cp_double( double*  x, double*  y, int n);
00113 
00116 void cp_a_complex(complex* x, double a, complex* y, int n);
00117 
00120 void cp_w_complex(complex* x, double* w, complex* y, int n);
00121 void cp_w_double( double*  x, double* w, double*  y, int n);
00122 
00125 void upd_axpy_complex(complex* x, double a, complex* y, int n);
00126 void upd_axpy_double( double*  x, double a, double*  y, int n);
00127 
00130 void upd_xpay_complex(complex* x, double a, complex* y, int n);
00131 void upd_xpay_double( double*  x, double a, double*  y, int n);
00132 
00135 void upd_axpby_complex(complex* x, double a, complex* y, double b, int n);
00136 void upd_axpby_double(  double* x, double a, double*  y, double b, int n);
00137 
00140 void upd_xpawy_complex(complex* x, double a, double* w, complex* y, int n);
00141 void upd_xpawy_double( double*  x, double a, double* w, double*  y, int n);
00142 
00145 void upd_axpwy_complex(complex* x, double a, double* w, complex* y, int n);
00146 void upd_axpwy_double( double*  x, double a, double* w, double*  y, int n);
00147 
00150 void fftshift_complex(complex *x, int d, int* N);
00151 
00154 double error_l_infty_complex(complex *x, complex *y, int n);
00155 
00158 double error_l_infty_double(double *x, double *y, int n);
00159 
00162 double error_l_infty_1_complex(complex *x, complex *y, int n, complex *z,
00163                                int m);
00164 
00167 double error_l_infty_1_double(double *x, double *y, int n, double *z,
00168                                int m);
00169 
00172 double error_l_2_complex(complex *x, complex *y, int n);
00173 
00176 double error_l_2_double(double *x, double *y, int n);
00177 
00178 
00179 void vpr_int(int *x, int n, char *text);
00180 
00181 void vpr_double(double *x, int n, char *text);
00182 
00183 void vpr_complex(complex *x, int n, char *text);
00184 
00185 void vrand_unit_complex(complex *x, int n);
00186 
00187 void vrand_shifted_unit_double(double *x, int n);
00199 void voronoi_weights_1d(double *w, double *x, int M);
00200 
00204 double modified_fejer(int N,int kk);
00205 
00208 double modified_jackson2(int N,int kk);
00209 
00212 double modified_jackson4(int N,int kk);
00213 
00216 double modified_sobolev(double mu,int kk);
00217 
00220 double modified_multiquadric(double mu,double c,int kk);
00221 
00222 #ifdef HAVE_MALLINFO
00223 #define HAVE_TOTAL_USED_MEMORY
00224 
00227 int total_used_memory();
00228 #endif
00229 
00231 #endif

Generated on Wed May 10 20:39:39 2006 for NFFT by  doxygen 1.4.4