4 * This source code is part of
8 * GROningen MAchine for Chemical Simulations
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
30 * Getting the Right Output Means no Artefacts in Calculating Stuff
40 #if (defined USE_X86_SSE_AND_3DNOW && !defined DOUBLE)
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
[],
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
[],
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
[],
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
[],
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
[],
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
[],
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
[]);