Fix malformed CUDA version macro check
[alexxy/gromacs.git] / include / names.h
1 /*
2  * This file is part of the GROMACS molecular simulation package.
3  *
4  * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
5  * Copyright (c) 2001-2004, The GROMACS development team,
6  * check out http://www.gromacs.org for more information.
7  * Copyright (c) 2012,2013, by the GROMACS development team, led by
8  * David van der Spoel, Berk Hess, Erik Lindahl, and including many
9  * others, as listed in the AUTHORS file in the top-level source
10  * directory and at http://www.gromacs.org.
11  *
12  * GROMACS is free software; you can redistribute it and/or
13  * modify it under the terms of the GNU Lesser General Public License
14  * as published by the Free Software Foundation; either version 2.1
15  * of the License, or (at your option) any later version.
16  *
17  * GROMACS is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
20  * Lesser General Public License for more details.
21  *
22  * You should have received a copy of the GNU Lesser General Public
23  * License along with GROMACS; if not, see
24  * http://www.gnu.org/licenses, or write to the Free Software Foundation,
25  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
26  *
27  * If you want to redistribute modifications to GROMACS, please
28  * consider that scientific software is very special. Version
29  * control is crucial - bugs must be traceable. We will be happy to
30  * consider code for inclusion in the official distribution, but
31  * derived work must not be called official GROMACS. Details are found
32  * in the README & COPYING files - if they are missing, get the
33  * official version at http://www.gromacs.org.
34  *
35  * To help us fund GROMACS development, we humbly ask that you cite
36  * the research papers on the package. Check out http://www.gromacs.org.
37  */
38
39 #ifndef _names_h
40 #define _names_h
41
42 #include "visibility.h"
43 #include "typedefs.h"
44
45 #ifdef __cplusplus
46 extern "C" {
47 #endif
48
49 /* All string arrays are NULL terminated, and therefore have an
50  * extra argument (the +1)
51  * these should correspond to names.c and include/types/enums.h
52  */
53 GMX_LIBGMX_EXPORT
54 extern const char *epbc_names[epbcNR+1];
55 GMX_LIBGMX_EXPORT
56 extern const char *etcoupl_names[etcNR+1];
57 GMX_LIBGMX_EXPORT
58 extern const char *epcoupl_names[epcNR+1];
59 GMX_LIBGMX_EXPORT
60 extern const char *epcoupltype_names[epctNR+1];
61 GMX_LIBGMX_EXPORT
62 extern const char *erefscaling_names[erscNR+1];
63 GMX_LIBGMX_EXPORT
64 extern const char *ecutscheme_names[ecutsNR+1];
65 GMX_LIBGMX_EXPORT
66 extern const char *ens_names[ensNR+1];
67 GMX_LIBGMX_EXPORT
68 extern const char *ei_names[eiNR+1];
69 GMX_LIBGMX_EXPORT
70 extern const char *yesno_names[BOOL_NR+1];
71 GMX_LIBGMX_EXPORT
72 extern const char *bool_names[BOOL_NR+1];
73 GMX_LIBGMX_EXPORT
74 extern const char *eintmod_names[eintmodNR+1];
75 GMX_LIBGMX_EXPORT
76 extern const char *eel_names[eelNR+1];
77 GMX_LIBGMX_EXPORT
78 extern const char *eewg_names[eewgNR+1];
79 GMX_LIBGMX_EXPORT
80 extern const char *evdw_names[evdwNR+1];
81 GMX_LIBGMX_EXPORT
82 extern const char *econstr_names[econtNR+1];
83 GMX_LIBGMX_EXPORT
84 extern const char *ptype_str[eptNR+1];
85 GMX_LIBGMX_EXPORT
86 extern const char *egrp_nm[egNR+1];
87 GMX_LIBGMX_EXPORT
88 extern const char *edisre_names[edrNR+1];
89 GMX_LIBGMX_EXPORT
90 extern const char *edisreweighting_names[edrwNR+1];
91 GMX_LIBGMX_EXPORT
92 extern const char *enbf_names[eNBF_NR+1];
93 GMX_LIBGMX_EXPORT
94 extern const char *ecomb_names[eCOMB_NR+1];
95 GMX_LIBGMX_EXPORT
96 extern const char *gtypes[egcNR+1];
97 GMX_LIBGMX_EXPORT
98 extern const char *esimtemp_names[esimtempNR+1];
99 GMX_LIBGMX_EXPORT
100 extern const char *efep_names[efepNR+1];
101 GMX_LIBGMX_EXPORT
102 extern const char *efpt_names[efptNR+1];
103 GMX_LIBGMX_EXPORT
104 extern const char *efpt_singular_names[efptNR+1];
105 GMX_LIBGMX_EXPORT
106 extern const char *elamstats_names[elamstatsNR+1];
107 GMX_LIBGMX_EXPORT
108 extern const char *elmcmove_names[elmcmoveNR+1];
109 GMX_LIBGMX_EXPORT
110 extern const char *elmceq_names[elmceqNR+1];
111 GMX_LIBGMX_EXPORT
112 extern const char *separate_dhdl_file_names[esepdhdlfileNR+1];
113 GMX_LIBGMX_EXPORT
114 extern const char *dhdl_derivatives_names[edhdlderivativesNR+1];
115 GMX_LIBGMX_EXPORT
116 extern const char *esol_names[esolNR+1];
117 GMX_LIBGMX_EXPORT
118 extern const char *edispc_names[edispcNR+1];
119 GMX_LIBGMX_EXPORT
120 extern const char *ecm_names[ecmNR+1];
121 GMX_LIBGMX_EXPORT
122 extern const char *eann_names[eannNR+1];
123 GMX_LIBGMX_EXPORT
124 extern const char *egb_names[egbNR+1];
125 GMX_LIBGMX_EXPORT
126 extern const char *eis_names[eisNR+1];
127 GMX_LIBGMX_EXPORT
128 extern const char *esa_names[esaNR+1];
129 GMX_LIBGMX_EXPORT
130 extern const char *ewt_names[ewtNR+1];
131 GMX_LIBGMX_EXPORT
132 extern const char *epull_names[epullNR+1];
133 GMX_LIBGMX_EXPORT
134 extern const char *epullg_names[epullgNR+1];
135 GMX_LIBGMX_EXPORT
136 extern const char *erotg_names[erotgNR+1];
137 extern const char *erotg_originnames[erotgNR+1];
138 GMX_LIBGMX_EXPORT
139 extern const char *erotg_fitnames[erotgFitNR+1];
140 GMX_LIBGMX_EXPORT
141 extern const char *eQMmethod_names[eQMmethodNR+1];
142 GMX_LIBGMX_EXPORT
143 extern const char *eQMbasis_names[eQMbasisNR+1];
144 GMX_LIBGMX_EXPORT
145 extern const char *eQMMMscheme_names[eQMMMschemeNR+1];
146 extern const char *eMultentOpt_names[eMultentOptNR+1];
147 GMX_LIBGMX_EXPORT
148 extern const char *eAdresstype_names[eAdressNR+1];
149 GMX_LIBGMX_EXPORT
150 extern const char *eAdressICtype_names[eAdressICNR+1];
151 GMX_LIBGMX_EXPORT
152 extern const char *eAdressSITEtype_names[eAdressSITENR+1];
153 GMX_LIBGMX_EXPORT
154 extern const char *gmx_nblist_geometry_names[GMX_NBLIST_GEOMETRY_NR+1];
155 extern const char *gmx_nbkernel_elec_names[GMX_NBKERNEL_ELEC_NR+1];
156 extern const char *gmx_nbkernel_vdw_names[GMX_NBKERNEL_VDW_NR+1];
157
158 #define UNDEFINED       "UNDEFINED"
159 #define ENUM_NAME(e, max, names)  ((((e) < 0) || ((e) >= (max))) ? UNDEFINED : (names)[e])
160
161 #define EBOOL(e)       ENUM_NAME(e, BOOL_NR, bool_names)
162 #define ECUTSCHEME(e)  ENUM_NAME(e, ecutsNR, ecutscheme_names)
163 #define ENS(e)         ENUM_NAME(e, ensNR, ens_names)
164 #define EI(e)          ENUM_NAME(e, eiNR, ei_names)
165 #define EPBC(e)        ENUM_NAME(e, epbcNR, epbc_names)
166 #define ETCOUPLTYPE(e) ENUM_NAME(e, etcNR, etcoupl_names)
167 #define EPCOUPLTYPE(e) ENUM_NAME(e, epcNR, epcoupl_names)
168 #define EPCOUPLTYPETYPE(e) ENUM_NAME(e, epctNR, epcoupltype_names)
169 #define EREFSCALINGTYPE(e) ENUM_NAME(e, erscNR, erefscaling_names)
170 #define EBLOCKS(e)     ENUM_NAME(e, ebNR, eblock_names)
171 #define EPARAM(e)      ENUM_NAME(e, epNR, eparam_names)
172 #define INTMODIFIER(e) ENUM_NAME(e, eintmodNR, eintmod_names)
173 #define EELTYPE(e)     ENUM_NAME(e, eelNR, eel_names)
174 #define EVDWTYPE(e)    ENUM_NAME(e, evdwNR, evdw_names)
175 #define ECONSTRTYPE(e) ENUM_NAME(e, econtNR, econstr_names)
176 #define EDISRETYPE(e)  ENUM_NAME(e, edrNR, edisre_names)
177 #define EDISREWEIGHTING(e)  ENUM_NAME(e, edrwNR, edisreweighting_names)
178 #define ENBFNAME(e)    ENUM_NAME(e, eNBF_NR, enbf_names)
179 #define ECOMBNAME(e)   ENUM_NAME(e, eCOMB_NR, ecomb_names)
180 #define ESIMTEMP(e)    ENUM_NAME(e, esimtempNR, esimtemp_names)
181 #define EFEPTYPE(e)    ENUM_NAME(e, efepNR, efep_names)
182 #define SEPDHDLFILETYPE(e) ENUM_NAME(e, esepdhdlfileNR, separate_dhdl_file_names)
183 #define DHDLDERIVATIVESTYPE(e) ENUM_NAME(e, edhdlderivativesNR, dhdl_derivatives_names)
184 #define ESOLTYPE(e)    ENUM_NAME(e, esolNR, esol_names)
185 #define ENLISTTYPE(e)  ENUM_NAME(e, enlistNR, enlist_names)
186 #define EDISPCORR(e)   ENUM_NAME(e, edispcNR, edispc_names)
187 #define ECOM(e)        ENUM_NAME(e, ecmNR, ecm_names)
188 #define EANNEAL(e)      ENUM_NAME(e, eannNR, eann_names)
189 #define EGBALGORITHM(e) ENUM_NAME(e, egbNR, egb_names)
190 #define ESAALGORITHM(e) ENUM_NAME(e, esaNR, esa_names)
191 #define EIMPLICITSOL(e) ENUM_NAME(e, eisNR, eis_names)
192 #define EWALLTYPE(e)   ENUM_NAME(e, ewtNR, ewt_names)
193 #define EPULLTYPE(e)   ENUM_NAME(e, epullNR, epull_names)
194 #define EPULLGEOM(e)   ENUM_NAME(e, epullgNR, epullg_names)
195 #define EROTGEOM(e)    ENUM_NAME(e, erotgNR, erotg_names)
196 #define EROTORIGIN(e)  ENUM_NAME(e, erotgOriginNR, erotg_originnames)
197 #define EROTFIT(e)     ENUM_NAME(e, erotgFitNR, erotg_fitnames)
198 #define EQMMETHOD(e)   ENUM_NAME(e, eQMmethodNR, eQMmethod_names)
199 #define EQMBASIS(e)    ENUM_NAME(e, eQMbasisNR, eQMbasis_names)
200 #define EQMMMSCHEME(e) ENUM_NAME(e, eQMMMschemeNR, eQMMMscheme_names)
201 #define EMULTENTOPT(e) ENUM_NAME(e, eMultentOptNR, eMultentOpt_names)
202 #define EADRESSTYPE(e) ENUM_NAME(e, eAdressNR, eAdresstype_names)
203 #define EADRESSICTYPE(e) ENUM_NAME(e, eAdressICNR, eAdressICtype_names)
204 #define EADRESSSITETYPE(e) ENUM_NAME(e, eAdressSITENR, eAdressSITEtype_names)
205
206 #ifdef __cplusplus
207 }
208 #endif
209
210 #endif  /* _names_h */