Blame view

stim/math/fft.h 655 Bytes
3a74ec6d   David Mayerich   added a new scala...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
  #ifndef STIM_FFT_H
  #define STIM_FFT_H
  
  namespace stim{
  
  	template<class T>
  	void circshift(T *out, const T *in, size_t xdim, size_t ydim, size_t xshift, size_t yshift){
  		size_t i, j, ii, jj;
  		for (i =0; i < xdim; i++) {
  			ii = (i + xshift) % xdim;
  			for (j = 0; j < ydim; j++) {
  				jj = (j + yshift) % ydim;
  				out[ii * ydim + jj] = in[i * ydim + j];
  			}
  		}
  	}
  
  	template<typename T>
  	void cpu_fftshift(T* out, T* in, size_t xdim, size_t ydim){
  		circshift(out, in, xdim, ydim, xdim/2, ydim/2);
  	}
  
  	template<typename T>
  	void cpu_ifftshift(T* out, T* in, size_t xdim, size_t ydim){
  		circshift(out, in, xdim, ydim, xdim/2, ydim/2);
  	}
  
  
  }
  
  #endif