fftw3/fftshift

Procs

proc circshift[T](t: Tensor[T]; shift: seq[int]): Tensor[T]
Generic Circshift
proc fftshift[T](t: Tensor[T]): Tensor[T]

Common fftshift function. Use Nim's openMP operator (||) for rank <= 3

For parallel implementation based on Weave, use fftshift_parallel in fftw3/fftshift_weave

Example:

import arraymancer
let input_tensor = randomTensor[float64](10, 10, 10, 10.0)
# output_tensor is the fftshift of input_tensor
var output_tensor = fftshift(input_tensor)
proc ifftshift[T](t: Tensor[T]): Tensor[T]

Common ifftshift function. Use Nim's openMP operator (||) for rank <= 3.

For parallel implementation based on Weave, use ifftshift_parallel in fftw3/fftshift_weave

Example:

import arraymancer
let input_tensor = randomTensor[float64](10, 10, 10, 10.0)
# output_tensor is the fftshift of input_tensor
var output_tensor = ifftshift(input_tensor)