Doxygen Source Code Documentation
Haar.c File Reference
Go to the source code of this file.
| Functions | |
| void | Haar_ip_FFWT_1d (int n, float *s) | 
| void | Haar_ip_IFWT_1d (int n, float *s) | 
| void | Haar_forward_pass_1d (int n, float *s) | 
| void | Haar_forward_FWT_1d (int n, float *s) | 
| void | Haar_inverse_pass_1d (int n, float *s) | 
| void | Haar_inverse_FWT_1d (int n, float *s) | 
| void | Haar_forward_pass_2d (int n, float **s) | 
| void | Haar_forward_FWT_2d (int n, float **s) | 
| void | Haar_inverse_pass_2d (int n, float **s) | 
| void | Haar_inverse_FWT_2d (int n, float **s) | 
Function Documentation
| 
 | ||||||||||||
| 
 Definition at line 139 of file Haar.c. References Haar_forward_pass_1d(), and powerof2(). Referenced by wavelet_analysis(). 
 00140 {
00141   int m;
00142   int npts;
00143 
00144   npts = powerof2 (n);
00145 
00146   for (m = n-1;  m >= 0;  m--)
00147     {
00148       Haar_forward_pass_1d (m+1, s);
00149       /*
00150       ts_print (npts, s);
00151       */
00152     }
00153 }
 | 
| 
 | ||||||||||||
| 
 Definition at line 246 of file Haar.c. References Haar_forward_pass_2d(), and powerof2(). 
 00247 {
00248   int m;
00249   int npts;
00250 
00251   npts = powerof2 (n);
00252 
00253   for (m = n-1;  m >= 0;  m--)
00254     {
00255       Haar_forward_pass_2d (m+1, s);
00256     }
00257 }
 | 
| 
 | ||||||||||||
| 
 Definition at line 106 of file Haar.c. References a, c, free, i, malloc, and powerof2(). Referenced by Haar_forward_FWT_1d(), and Haar_forward_pass_2d(). 
 00107 {
00108   int i;
00109   int npts;
00110   float * a = NULL;
00111   float * c = NULL;
00112 
00113   npts = powerof2 (n);
00114   a = (float *) malloc (sizeof(float) * npts/2);
00115   c = (float *) malloc (sizeof(float) * npts/2);
00116   
00117   for (i = 0;  i < npts/2;  i++)
00118     {
00119       a[i] = (s[2*i] + s[2*i+1]) / 2.0;
00120       c[i] = (s[2*i] - s[2*i+1]) / 2.0;
00121     }
00122 
00123   for (i = 0;  i < npts/2;  i++)
00124     {
00125       s[i] = a[i];
00126       s[i + npts/2] = c[i];
00127     }
00128 
00129   free (a);   a = NULL;
00130   free (c);   c = NULL;
00131 }
 | 
| 
 | ||||||||||||
| 
 Definition at line 212 of file Haar.c. References c, free, Haar_forward_pass_1d(), i, malloc, and powerof2(). Referenced by Haar_forward_FWT_2d(). 
 00213 {
00214   int i, j;
00215   int npts;
00216   float * c = NULL;
00217 
00218 
00219   npts = powerof2 (n);
00220 
00221   for (i = 0;  i < npts;  i++)
00222     {
00223       Haar_forward_pass_1d (n, s[i]);
00224     }
00225 
00226   c = (float *) malloc (sizeof(float) * npts);
00227 
00228   for (j = 0;  j < npts;  j++)
00229     {
00230       for (i = 0;  i < npts;  i++)
00231         c[i] = s[i][j];
00232       Haar_forward_pass_1d (n, c);
00233       for (i = 0;  i < npts;  i++)
00234         s[i][j] = c[i];
00235     }
00236 
00237   free (c);   c = NULL;
00238 }
 | 
| 
 | ||||||||||||
| 
 Definition at line 190 of file Haar.c. References Haar_inverse_pass_1d(), and powerof2(). Referenced by wavelet_analysis(). 
 00191 {
00192   int m;
00193   int npts;
00194 
00195   npts = powerof2 (n);
00196 
00197   for (m = 1;  m <=n;  m++)
00198     {
00199       Haar_inverse_pass_1d (m, s);
00200       /*
00201       ts_print (npts, s);
00202       */
00203     }
00204 }
 | 
| 
 | ||||||||||||
| 
 Definition at line 299 of file Haar.c. References Haar_inverse_pass_2d(), and powerof2(). 
 00300 {
00301   int m;
00302   int npts;
00303 
00304   npts = powerof2 (n);
00305 
00306   for (m = 1;  m <= n;  m++)
00307     {
00308       Haar_inverse_pass_2d (m, s);
00309     }
00310 }
 | 
| 
 | ||||||||||||
| 
 Definition at line 161 of file Haar.c. References free, i, malloc, powerof2(), and r. Referenced by Haar_inverse_FWT_1d(), and Haar_inverse_pass_2d(). 
 00162 {
00163   int i;
00164   int npts;
00165   float * r = NULL;
00166 
00167   npts = powerof2 (n);
00168   r = (float *) malloc (sizeof(float) * npts);
00169   
00170   for (i = 0;  i < npts/2;  i++)
00171     {
00172       r[2*i]   = s[i] + s[i + npts/2];
00173       r[2*i+1] = s[i] - s[i + npts/2]; 
00174     }
00175 
00176   for (i = 0;  i < npts;  i++)
00177     {
00178       s[i] = r[i];
00179     }
00180 
00181   free (r);   r = NULL;
00182 }
 | 
| 
 | ||||||||||||
| 
 Definition at line 265 of file Haar.c. References c, free, Haar_inverse_pass_1d(), i, malloc, and powerof2(). Referenced by Haar_inverse_FWT_2d(). 
 00266 {
00267   int i, j;
00268   int npts;
00269   float * c = NULL;
00270 
00271 
00272   npts = powerof2 (n);
00273 
00274   for (i = 0;  i < npts;  i++)
00275     {
00276       Haar_inverse_pass_1d (n, s[i]);
00277     }
00278 
00279   c = (float *) malloc (sizeof(float) * npts);
00280 
00281   for (j = 0;  j < npts;  j++)
00282     {
00283       for (i = 0;  i < npts;  i++)
00284         c[i] = s[i][j];
00285       Haar_inverse_pass_1d (n, c);
00286       for (i = 0;  i < npts;  i++)
00287         s[i][j] = c[i];
00288     }
00289 
00290   free (c);   c = NULL;
00291 }
 | 
| 
 | ||||||||||||
| 
 Definition at line 22 of file Haar.c. References a, c, i, l, and powerof2(). 
 00023 {
00024   float a;
00025   float c;
00026   int i;
00027   int j;
00028   int k;
00029   int l;
00030   int m;
00031 
00032 
00033   i = 1;
00034   j = 2;
00035   m = powerof2 (n);
00036 
00037   for (l = n-1;  l >= 0;  l--)
00038     {
00039       printf ("l = %d \n", l);
00040       m /= 2;
00041 
00042       for (k = 0;  k < m;  k++)
00043         {
00044           a = (s[j*k] + s[j*k+i]) / 2.0;
00045           c = (s[j*k] - s[j*k+i]) / 2.0;
00046           s[j*k] = a;
00047           s[j*k+i] = c;
00048         }
00049       
00050       i *= 2;
00051       j *= 2;
00052       /*
00053       ts_print (powerof2(n), s);
00054       */
00055     }
00056 }
 | 
| 
 | ||||||||||||
| 
 Definition at line 64 of file Haar.c. References i, l, and powerof2(). 
 00065 {
00066   float a0;
00067   float a1;
00068   int i;
00069   int j;
00070   int k;
00071   int l;
00072   int m;
00073 
00074 
00075   i = powerof2 (n-1);
00076   j = 2*i;
00077   m = 1;
00078 
00079   for (l = 1;  l <= n;  l++)
00080     {
00081       printf ("l = %d \n", l);
00082 
00083       for (k = 0;  k < m;  k++)
00084         {
00085           a0 = s[j*k] + s[j*k+i];
00086           a1 = s[j*k] - s[j*k+i];
00087           s[j*k] = a0;
00088           s[j*k+i] = a1;
00089         }
00090       
00091       i /= 2;
00092       j /= 2;
00093       m *= 2;
00094       /*
00095       ts_print (powerof2(n), s);
00096       */
00097     }
00098 }
 | 
 
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
 
 
 
 
       
	   
	   
	   
	  