Partial commit of the project to remove all static variables.
[gromacs.git] / include / x86_sse.h
blob67b96dd56191f6c99c51c1046f2dde56803ad3ff
1 /*
2 * $Id$
3 *
4 * This source code is part of
5 *
6 * G R O M A C S
7 *
8 * GROningen MAchine for Chemical Simulations
9 *
10 * VERSION 3.1
11 * Copyright (c) 1991-2001, University of Groningen, The Netherlands
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
17 * If you want to redistribute modifications, please consider that
18 * scientific software is very special. Version control is crucial -
19 * bugs must be traceable. We will be happy to consider code for
20 * inclusion in the official distribution, but derived work must not
21 * be called official GROMACS. Details are found in the README & COPYING
22 * files - if they are missing, get the official version at www.gromacs.org.
24 * To help us fund GROMACS development, we humbly ask that you cite
25 * the papers on the package - you can find them in the top README file.
27 * For more info, check our website at http://www.gromacs.org
29 * And Hey:
30 * Getting the Right Output Means no Artefacts in Calculating Stuff
33 #ifndef _x86_sse_h
34 #define _x86_sse_h
36 #ifdef HAVE_CONFIG_H
37 #include <config.h>
38 #endif
40 #if (defined USE_X86_SSE_AND_3DNOW && !defined DOUBLE)
42 void checksse();
43 void vecinvsqrt_sse(float in[],float out[],int n);
44 void vecrecip_sse(float in[],float out[],int n);
46 void inl0100_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
47 float shiftvec[],float fshift[],int gid[],float pos[],
48 float faction[],int type[],int ntype,float nbfp[],
49 float Vnb[]);
50 void inl0110_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
51 float shiftvec[],float fshift[],int gid[],float pos[],
52 float faction[],int type[],int ntype,float nbfp[],
53 float Vnb[], int nsatoms[]);
54 void inl0300_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
55 float shiftvec[],float fshift[],int gid[],float pos[],
56 float faction[],int type[],int ntype,float nbfp[],
57 float Vnb[],float tabscale,float VFtab[]);
58 void inl0310_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
59 float shiftvec[],float fshift[],int gid[],float pos[],
60 float faction[],int type[],int ntype,float nbfp[],
61 float Vnb[],float tabscale,float VFtab[], int nsatoms[]);
62 void inl1000_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
63 float shiftvec[],float fshift[],int gid[],float pos[],
64 float faction[],float charge[],float facel,float Vc[]);
65 void inl1010_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
66 float shiftvec[],float fshift[],int gid[],float pos[],
67 float faction[],float charge[],float facel, float Vc[],
68 int nsatoms[]);
69 void inl1020_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
70 float shiftvec[],float fshift[],int gid[],float pos[],
71 float faction[],float charge[],float facel,float Vc[]);
72 void inl1030_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
73 float shiftvec[],float fshift[],int gid[],float pos[],
74 float faction[],float charge[],float facel,float Vc[]);
75 void inl1100_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
76 float shiftvec[],float fshift[],int gid[],float pos[],
77 float faction[],float charge[],float facel,float Vc[],
78 int type[],int ntype,float nbfp[],float Vnb[]);
79 void inl2000_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
80 float shiftvec[],float fshift[],int gid[],float pos[],
81 float faction[],float charge[],float facel,float Vc[],
82 float krf, float crf);
83 void inl2100_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
84 float shiftvec[],float fshift[],int gid[],float pos[],
85 float faction[],float charge[],float facel,float Vc[],
86 float krf, float crf, int type[],int ntype,
87 float nbfp[],float Vnb[]);
88 void inl1110_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
89 float shiftvec[],float fshift[],int gid[],float pos[],
90 float faction[],float charge[],float facel,float Vc[],
91 int type[],int ntype,float nbfp[],float Vnb[],
92 int nsatoms[]);
93 void inl1120_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
94 float shiftvec[],float fshift[],int gid[],float pos[],
95 float faction[],float charge[],float facel,float Vc[],
96 int type[],int ntype,float nbfp[],float Vnb[]);
97 void inl2020_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
98 float shiftvec[],float fshift[],int gid[],float pos[],
99 float faction[],float charge[],float facel,float Vc[],
100 float krf, float crf);
101 void inl2120_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
102 float shiftvec[],float fshift[],int gid[],float pos[],
103 float faction[],float charge[],float facel,float Vc[],
104 float krf, float crf, int type[],int ntype,
105 float nbfp[],float Vnb[]);
106 void inl1130_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
107 float shiftvec[],float fshift[],int gid[],float pos[],
108 float faction[],float charge[],float facel,float Vc[],
109 int type[],int ntype,float nbfp[],float Vnb[]);
110 void inl2030_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
111 float shiftvec[],float fshift[],int gid[],float pos[],
112 float faction[],float charge[],float facel,float Vc[],
113 float krf, float crf);
114 void inl2130_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
115 float shiftvec[],float fshift[],int gid[],float pos[],
116 float faction[],float charge[],float facel,float Vc[],
117 float krf, float crf, int type[],int ntype,
118 float nbfp[],float Vnb[]);
119 void inl3000_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
120 float shiftvec[],float fshift[],int gid[],float pos[],
121 float faction[],float charge[],float facel,float Vc[],
122 float tabscale,float VFtab[]);
123 void inl3010_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
124 float shiftvec[],float fshift[],int gid[],float pos[],
125 float faction[],float charge[],float facel,float Vc[],
126 float tabscale,float VFtab[], int nsatoms[]);
127 void inl3020_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
128 float shiftvec[],float fshift[],int gid[],float pos[],
129 float faction[],float charge[],float facel,float Vc[],
130 float tabscale,float VFtab[]);
131 void inl3030_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
132 float shiftvec[],float fshift[],int gid[],float pos[],
133 float faction[],float charge[],float facel,float Vc[],
134 float tabscale,float VFtab[]);
135 void inl3100_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
136 float shiftvec[],float fshift[],int gid[],float pos[],
137 float faction[],float charge[],float facel,float Vc[],
138 int type[],int ntype,float nbfp[],float Vnb[],
139 float tabscale, float VFtab[]);
140 void inl3110_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
141 float shiftvec[],float fshift[],int gid[],float pos[],
142 float faction[],float charge[],float facel,float Vc[],
143 int type[],int ntype,float nbfp[],float Vnb[],
144 float tabscale, float VFtab[], int nsatoms[]);
145 void inl3120_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
146 float shiftvec[],float fshift[],int gid[],float pos[],
147 float faction[],float charge[],float facel,float Vc[],
148 int type[],int ntype,float nbfp[],float Vnb[],
149 float tabscale, float VFtab[]);
150 void inl3130_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
151 float shiftvec[],float fshift[],int gid[],float pos[],
152 float faction[],float charge[],float facel,float Vc[],
153 int type[],int ntype,float nbfp[],float Vnb[],
154 float tabscale, float VFtab[]);
155 void inl3300_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
156 float shiftvec[],float fshift[],int gid[],float pos[],
157 float faction[],float charge[],float facel,float Vc[],
158 int type[],int ntype,float nbfp[],float Vnb[],
159 float tabscale,float VFtab[]);
160 void inl3310_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
161 float shiftvec[],float fshift[],int gid[],float pos[],
162 float faction[],float charge[],float facel,float Vc[],
163 int type[],int ntype,float nbfp[],float Vnb[],
164 float tabscale,float VFtab[], int nsatoms[]);
165 void inl3320_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
166 float shiftvec[],float fshift[],int gid[],float pos[],
167 float faction[],float charge[],float facel,float Vc[],
168 int type[],int ntype,float nbfp[],float Vnb[],
169 float tabscale,float VFtab[]);
170 void inl3330_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
171 float shiftvec[],float fshift[],int gid[],float pos[],
172 float faction[],float charge[],float facel,float Vc[],
173 int type[],int ntype,float nbfp[],float Vnb[],
174 float tabscale,float VFtab[]);
176 void mcinl0100_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
177 float shiftvec[],int gid[],float pos[],
178 int type[],int ntype,float nbfp[],
179 float Vnb[]);
180 void mcinl0110_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
181 float shiftvec[],int gid[],float pos[],
182 int type[],int ntype,float nbfp[],
183 float Vnb[], int nsatoms[]);
184 void mcinl0300_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
185 float shiftvec[],int gid[],float pos[],
186 int type[],int ntype,float nbfp[],
187 float Vnb[],float tabscale,float VFtab[]);
188 void mcinl0310_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
189 float shiftvec[],int gid[],float pos[],
190 int type[],int ntype,float nbfp[],
191 float Vnb[],float tabscale,float VFtab[], int nsatoms[]);
192 void mcinl1000_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
193 float shiftvec[],int gid[],float pos[],
194 float charge[],float facel,float Vc[]);
195 void mcinl1010_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
196 float shiftvec[],int gid[],float pos[],
197 float charge[],float facel, float Vc[],
198 int nsatoms[]);
199 void mcinl1020_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
200 float shiftvec[],int gid[],float pos[],
201 float charge[],float facel,float Vc[]);
202 void mcinl1030_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
203 float shiftvec[],int gid[],float pos[],
204 float charge[],float facel,float Vc[]);
205 void mcinl1100_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
206 float shiftvec[],int gid[],float pos[],
207 float charge[],float facel,float Vc[],
208 int type[],int ntype,float nbfp[],float Vnb[]);
209 void mcinl2000_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
210 float shiftvec[],int gid[],float pos[],
211 float charge[],float facel,float Vc[],
212 float krf, float crf);
213 void mcinl2100_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
214 float shiftvec[],int gid[],float pos[],
215 float charge[],float facel,float Vc[],
216 float krf, float crf, int type[],int ntype,
217 float nbfp[],float Vnb[]);
218 void mcinl1110_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
219 float shiftvec[],int gid[],float pos[],
220 float charge[],float facel,float Vc[],
221 int type[],int ntype,float nbfp[],float Vnb[],
222 int nsatoms[]);
223 void mcinl1120_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
224 float shiftvec[],int gid[],float pos[],
225 float charge[],float facel,float Vc[],
226 int type[],int ntype,float nbfp[],float Vnb[]);
227 void mcinl2020_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
228 float shiftvec[],int gid[],float pos[],
229 float charge[],float facel,float Vc[],
230 float krf, float crf);
231 void mcinl2120_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
232 float shiftvec[],int gid[],float pos[],
233 float charge[],float facel,float Vc[],
234 float krf, float crf, int type[],int ntype,
235 float nbfp[],float Vnb[]);
236 void mcinl1130_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
237 float shiftvec[],int gid[],float pos[],
238 float charge[],float facel,float Vc[],
239 int type[],int ntype,float nbfp[],float Vnb[]);
240 void mcinl2030_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
241 float shiftvec[],int gid[],float pos[],
242 float charge[],float facel,float Vc[],
243 float krf, float crf);
244 void mcinl2130_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
245 float shiftvec[],int gid[],float pos[],
246 float charge[],float facel,float Vc[],
247 float krf, float crf, int type[],int ntype,
248 float nbfp[],float Vnb[]);
249 void mcinl3000_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
250 float shiftvec[],int gid[],float pos[],
251 float charge[],float facel,float Vc[],
252 float tabscale,float VFtab[]);
253 void mcinl3010_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
254 float shiftvec[],int gid[],float pos[],
255 float charge[],float facel,float Vc[],
256 float tabscale,float VFtab[], int nsatoms[]);
257 void mcinl3020_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
258 float shiftvec[],int gid[],float pos[],
259 float charge[],float facel,float Vc[],
260 float tabscale,float VFtab[]);
261 void mcinl3030_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
262 float shiftvec[],int gid[],float pos[],
263 float charge[],float facel,float Vc[],
264 float tabscale,float VFtab[]);
265 void mcinl3100_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
266 float shiftvec[],int gid[],float pos[],
267 float charge[],float facel,float Vc[],
268 int type[],int ntype,float nbfp[],float Vnb[],
269 float tabscale, float VFtab[]);
270 void mcinl3110_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
271 float shiftvec[],int gid[],float pos[],
272 float charge[],float facel,float Vc[],
273 int type[],int ntype,float nbfp[],float Vnb[],
274 float tabscale, float VFtab[], int nsatoms[]);
275 void mcinl3120_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
276 float shiftvec[],int gid[],float pos[],
277 float charge[],float facel,float Vc[],
278 int type[],int ntype,float nbfp[],float Vnb[],
279 float tabscale, float VFtab[]);
280 void mcinl3130_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
281 float shiftvec[],int gid[],float pos[],
282 float charge[],float facel,float Vc[],
283 int type[],int ntype,float nbfp[],float Vnb[],
284 float tabscale, float VFtab[]);
285 void mcinl3300_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
286 float shiftvec[],int gid[],float pos[],
287 float charge[],float facel,float Vc[],
288 int type[],int ntype,float nbfp[],float Vnb[],
289 float tabscale,float VFtab[]);
290 void mcinl3310_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
291 float shiftvec[],int gid[],float pos[],
292 float charge[],float facel,float Vc[],
293 int type[],int ntype,float nbfp[],float Vnb[],
294 float tabscale,float VFtab[], int nsatoms[]);
295 void mcinl3320_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
296 float shiftvec[],int gid[],float pos[],
297 float charge[],float facel,float Vc[],
298 int type[],int ntype,float nbfp[],float Vnb[],
299 float tabscale,float VFtab[]);
300 void mcinl3330_sse(int nri,int iinr[],int jindex[],int jjnr[],int shift[],
301 float shiftvec[],int gid[],float pos[],
302 float charge[],float facel,float Vc[],
303 int type[],int ntype,float nbfp[],float Vnb[],
304 float tabscale,float VFtab[]);
306 #endif
307 #endif