NFFT Logo 3.2.2
fpt.h
00001 /*
00002  * Copyright (c) 2002, 2012 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 
00019 /* $Id: fpt.h 3775 2012-06-02 16:39:48Z keiner $ */
00020 
00021 #ifndef _FPT_H_
00022 #define _FPT_H_
00023 
00027 typedef struct fpt_step_
00028 {
00029   bool stable;                            
00032   int Ns;                                 
00033   int ts;                                 
00034   double **a11,**a12,**a21,**a22;         
00035   double *g;                              
00036 } fpt_step;
00037 
00041 typedef struct fpt_data_
00042 {
00043   fpt_step **steps;                       
00044   int k_start;                            
00045   double *alphaN;                         
00046   double *betaN;                          
00047   double *gammaN;                         
00048   double alpha_0;                         
00049   double beta_0;                          
00050   double gamma_m1;                        
00051   /* Data for direct transform. */        
00052   double *alpha;                          
00053   double *beta;                           
00054   double *gamma;                          
00055 } fpt_data;
00056 
00060 typedef struct fpt_set_s_
00061 {
00062   unsigned int flags;                     
00063   int M;                                  
00064   int N;                                  
00066   int t;                                  
00067   fpt_data *dpt;                          
00068   double **xcvecs;                        
00071   double *xc;                             
00072   double _Complex *temp;                          
00073   double _Complex *work;                          
00074   double _Complex *result;                        
00075   double _Complex *vec3;
00076   double _Complex *vec4;
00077   double _Complex *z;
00078   fftw_plan *plans_dct3;                  
00080   fftw_plan *plans_dct2;                  
00082   fftw_r2r_kind *kinds;                   
00084   fftw_r2r_kind *kindsr;                  
00087   int *lengths; 
00089   /* Data for slow transforms. */
00090   double *xc_slow;
00091 } fpt_set_s;
00092 
00093 #endif /*_FPT_H_*/

Generated on Fri Oct 12 2012 by Doxygen 1.8.0-20120409