NFFT  3.3.1
kernels.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2002, 2016 Jens Keiner, Stefan Kunis, Daniel Potts
00003  *
00004  * This program is free software; you can redistribute it and/or modify it under
00005  * the terms of the GNU General Public License as published by the Free Software
00006  * Foundation; either version 2 of the License, or (at your option) any later
00007  * version.
00008  *
00009  * This program is distributed in the hope that it will be useful, but WITHOUT
00010  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
00011  * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
00012  * details.
00013  *
00014  * You should have received a copy of the GNU General Public License along with
00015  * this program; if not, write to the Free Software Foundation, Inc., 51
00016  * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00017  */
00018 
00022 #ifndef KERNELS_H
00023 #define KERNELS_H
00024 
00025 #include "config.h"
00026 
00027 #ifdef HAVE_COMPLEX_H
00028 #include <complex.h>
00029 #endif
00030 
00031 #include "nfft3.h"
00032 #include "infft.h"
00033 
00034 #ifdef __cplusplus
00035 extern "C"
00036 {
00037 #endif /* __cplusplus */
00038 
00044 C gaussian(R x, int der, const R *param);              /* K(x)=exp(-x^2/c^2) */
00045 C multiquadric(R x, int der, const R *param);          /* K(x)=sqrt(x^2+c^2) */
00046 C inverse_multiquadric(R x, int der, const R *param);  /* K(x)=1/sqrt(x^2+c^2) */
00047 C logarithm(R x, int der, const R *param);             /* K(x)=log |x| */
00048 C thinplate_spline(R x, int der, const R *param);      /* K(x) = x^2 log |x| */
00049 C one_over_square(R x, int der, const R *param);       /* K(x) = 1/x^2 */
00050 C one_over_modulus(R x, int der, const R *param);      /* K(x) = 1/|x| */
00051 C one_over_x(R x, int der, const R *param);            /* K(x) = 1/x */
00052 C inverse_multiquadric3(R x, int der, const R *param); /* K(x) = 1/sqrt(x^2+c^2)^3 */
00053 C sinc_kernel(R x, int der, const R *param);           /* K(x) = sin(cx)/x */
00054 C cosc(R x, int der, const R *param);                  /* K(x) = cos(cx)/x */
00055 C kcot(R x, int der, const R *param);                   /* K(x) = cot(cx) */
00056 C one_over_cube(R x, int der, const R *param);                /* K(x) = 1/x^3 */
00057 /* \} */
00058 
00059 #ifdef __cplusplus
00060 }  /* extern "C" */
00061 #endif /* __cplusplus */
00062 
00063 #endif
00064 /* kernels.h */