ScaFaCoS  1.0.1
Scalable Fast Coulomb Solvers
fcs_p2nfft_p.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2011-2013 Michael Pippig
3  Copyright (C) 2011-2012 Rene Halver
4  Copyright (C) 2011 Sebastian Banert
5 
6  This file is part of ScaFaCoS.
7 
8  ScaFaCoS is free software: you can redistribute it and/or modify
9  it under the terms of the GNU Lesser Public License as published by
10  the Free Software Foundation, either version 3 of the License, or
11  (at your option) any later version.
12 
13  ScaFaCoS is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU Lesser Public License for more details.
17 
18  You should have received a copy of the GNU Lesser Public License
19  along with this program. If not, see <http://www.gnu.org/licenses/>.
20 */
21 
22 
23 
24 #ifndef FCS_P2NFFT_P_INCLUDED
25 #define FCS_P2NFFT_P_INCLUDED
26 
27 #include "fcs_definitions.h"
28 #include "fcs_result_p.h"
29 #include "fcs_interface_p.h"
30 
37 typedef struct fcs_p2nfft_parameters_t *fcs_p2nfft_parameters;
38 
39 /* Enable definition of multiple wrappers which point to the same internal function.
40  * We use this trick to get an P3M-compliant interface but also remain have our own nomenclature. */
41 #undef FCS_P2NFFT_INTERFACE_WITH_REDIRECTIONS
42 #define FCS_P2NFFT_INTERFACE_WITH_REDIRECTIONS 1
43 
44 /* clear macro definitions of headers (redefine as wrappers later) */
45 #undef FCS_P2NFFT_INTERFACE_WRAPPER_0
46 #undef FCS_P2NFFT_INTERFACE_WRAPPER_1
47 #undef FCS_P2NFFT_INTERFACE_WRAPPER_2
48 #undef FCS_P2NFFT_INTERFACE_WRAPPER_3
49 
50 /* define macros for definition of wrapper headers */
51 #define FCS_P2NFFT_INTERFACE_WRAPPER_0(NAME, INAME) \
52  FCSResult fcs_p2nfft_ ## NAME(FCS handle);
53 #define FCS_P2NFFT_INTERFACE_WRAPPER_1(NAME, INAME, TYPE1, ARG1) \
54  FCSResult fcs_p2nfft_ ## NAME(FCS handle, TYPE1 ARG1 );
55 #define FCS_P2NFFT_INTERFACE_WRAPPER_2(NAME, INAME, TYPE1, ARG1, TYPE2, ARG2) \
56  FCSResult fcs_p2nfft_ ## NAME(FCS handle, TYPE1 ARG1, TYPE2 ARG2);
57 #define FCS_P2NFFT_INTERFACE_WRAPPER_3(NAME, INAME, TYPE1, ARG1, TYPE2, ARG2, TYPE3, ARG3) \
58  FCSResult fcs_p2nfft_ ## NAME(FCS handle, TYPE1 ARG1, TYPE2 ARG2, TYPE3 ARG3);
59 
60 /************************************************************
61  * Getter and Setter for P2NFFT, PNFFT, PFFT Parameters
62  ************************************************************/
63 /* call macros that create the wrapper prototypes */
64 #include "fcs_p2nfft_wrappers.h"
65 
66 #endif
struct fcs_p2nfft_parameters_t * fcs_p2nfft_parameters
Definition: fcs_p2nfft_p.h:37
public interface definitions for the FCSResult-object that is used for handling the return state of t...
public interface definitions for the main solver-independent functionality of the ScaFaCoS library ...