;;; Lisplab, level3-fft-interface.lisp ;;; Fast Fourier transform interfaces. ;;; Copyright (C) 2009 Joern Inge Vestgaarden ;;; ;;; This program is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 2 of the License, or ;;; (at your option) any later version. ;;; ;;; This program is distributed in the hope that it will be useful, ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License along ;;; with this program; if not, write to the Free Software Foundation, Inc., ;;; 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. (in-package :lisplab) ;;;; Fourier stuff (defgeneric fft1 (x &key) (:documentation "Forward fast fourier transform on all columns")) (defgeneric fft1! (x &key) (:documentation "Forward fast fourier transform on all columns. Destructive")) (defgeneric ifft1 (x &key) (:documentation "Inverse fast fourier transform on all columns")) (defgeneric ifft1! (x &key) (:documentation "Inverse fast fourier transform on all columns. Destructive")) (defgeneric fft2 (x &key) (:documentation "Forward fast fourier transform on all rows and columns")) (defgeneric fft2! (x &key) (:documentation "Forward fast fourier transform on all rows and columns. Destructive")) (defgeneric ifft2 (x &key) (:documentation "Inverse fast fourier transform on all rows and columns")) (defgeneric ifft2! (x &key) (:documentation "Inverse fast fourier transform on all rows and columns. Destructive")) (defgeneric fft-shift (x) (:documentation "Restructuring of Brillouin zones")) (defgeneric ifft-shift (x) (:documentation "Inverse restructuring of Brillouin zones"))