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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
|
/*
* Copyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts
*
* 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.
*/
/** @defgroup nsfft NSFFT - Nonequispaced sparse FFT
* Direct and fast computation of the nonequispaced FFT on the hyperbolic
* cross.
* @{
*/
/*! \struct nsfft_plan
* Structure for a NFFT plan
*/
/*! \fn void nsfft_direct_trafo(nsfft_plan *ths)
* Executes an NSDFT, computes for \f$j=0,\dots,M-1\f$:
* \f[
* f_j = \sum_{k\in H_N^d}\hat f_k {\rm e}^{-2\pi{\rm\scriptsize i}k x_j}
* \f]
*
* \arg ths The pointer to a nsfft plan
*
* \author Markus Fenn, Stefan Kunis
*/
/*! \fn void nsfft_direct_adjoint(nsfft_plan *ths)
* Executes an adjoint NSFFT, computes for \f$k\in H_N^d\f$:
* \f[
* \hat f_k = \sum_{j=0,\dots,M-1} f_j {\rm e}^{+2\pi{\rm\scriptsize i}k x_j}
* \f]
*
* \arg ths The pointer to a nsfft plan
*
* \author Stefan Kunis
*/
/*! \fn void nsfft_trafo(nsfft_plan *ths)
* Executes an NSFFT, computes \b fast and \b approximate for
* \f$j=0,\dots,M-1\f$:
* \f[
* f_j = \sum_{k\in H_N^d}\hat f_k {\rm e}^{-2\pi{\rm\scriptsize i}k x_j}
* \f]
*
* \arg ths The pointer to a nsfft plan
*
* \author Markus Fenn, Stefan Kunis
*/
/*! \fn void nsfft_adjoint(nsfft_plan *ths)
* Executes an adjoint NSFFT, computes \b fast and \b approximate for
* \f$k\in H_N^d\f$:
* \f[
* \hat f_k = \sum_{j=0,\dots,M-1} f_j {\rm e}^{+2\pi{\rm\scriptsize i}k x_j}
* \f]
*
* \arg ths The pointer to a nsfft plan
*
* \author Stefan Kunis
*/
/*! \fn void nsfft_cp(nsfft_plan *ths, nfft_plan *ths_nfft)
* Copy coefficients from nsfft plan to a nfft plan.
*
* \arg ths Pointers to a nsfft plan and to a nfft plan
*
* \author Markus Fenn, Stefan Kunis
*/
/*! \fn void nsfft_init_random_nodes_coeffs(nsfft_plan *ths)
* Initialisation of pseudo random nodes and coefficients.
*
* \arg ths The pointer to a nsfft plan
*
* \author Markus Fenn, Stefan Kunis
*/
/*! \fn void nsfft_init(nsfft_plan *ths, int d, int J, int M, int m, unsigned flags)
* Initialisation of a transform plan.
*
* \arg ths The pointer to a nsfft plan
* \arg d The dimension
* \arg J The problem size
* \arg M The number of nodes
* \arg m nfft cut-off parameter
* \arg flags
*
* \author Markus Fenn, Stefan Kunis
*/
/*! \fn void nsfft_finalize(nsfft_plan *ths)
* Destroys a transform plan.
*
* \arg ths The pointer to a nsfft plan
*
* \author Markus Fenn, Stefan Kunis
*/
/*! \def NSDFT
* If this flag is set, the member \ref index_sparse_to_full is (de)allocated
* and initialised for the use in the routine \ref nsfft_direct_trafo and
* \ref nsdft_adjoint.
*
* \see nsfft_init
* \author Stefan Kunis
*/
/** @}
*/
|