4 * This source code is part of
8 * GROningen MAchine for Chemical Simulations
11 * Written by David van der Spoel, Erik Lindahl, Berk Hess, and others.
12 * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
13 * Copyright (c) 2001-2004, The GROMACS development team,
14 * check out http://www.gromacs.org for more information.
16 * This program is free software; you can redistribute it and/or
17 * modify it under the terms of the GNU General Public License
18 * as published by the Free Software Foundation; either version 2
19 * of the License, or (at your option) any later version.
21 * If you want to redistribute modifications, please consider that
22 * scientific software is very special. Version control is crucial -
23 * bugs must be traceable. We will be happy to consider code for
24 * inclusion in the official distribution, but derived work must not
25 * be called official GROMACS. Details are found in the README & COPYING
26 * files - if they are missing, get the official version at www.gromacs.org.
28 * To help us fund GROMACS development, we humbly ask that you cite
29 * the papers on the package - you can find them in the top README file.
31 * For more info, check our website at http://www.gromacs.org
34 * Gromacs Runs On Most of All Computer Systems
44 #if (defined USE_X86_SSE2 && defined DOUBLE)
47 void vecinvsqrt_sse2(double in
[],double out
[],int n
);
48 void vecrecip_sse2(double in
[],double out
[],int n
);
50 void inl0100_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
51 double shiftvec
[],double fshift
[],int gid
[],double pos
[],
52 double faction
[],int type
[],int ntype
,double nbfp
[],
54 void inl0300_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
55 double shiftvec
[],double fshift
[],int gid
[],double pos
[],
56 double faction
[],int type
[],int ntype
,double nbfp
[],
57 double Vnb
[],double tabscale
,double VFtab
[]);
58 void inl1000_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
59 double shiftvec
[],double fshift
[],int gid
[],double pos
[],
60 double faction
[],double charge
[],double facel
,double Vc
[]);
61 void inl1020_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
62 double shiftvec
[],double fshift
[],int gid
[],double pos
[],
63 double faction
[],double charge
[],double facel
,double Vc
[]);
64 void inl1030_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
65 double shiftvec
[],double fshift
[],int gid
[],double pos
[],
66 double faction
[],double charge
[],double facel
,double Vc
[]);
67 void inl1100_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
68 double shiftvec
[],double fshift
[],int gid
[],double pos
[],
69 double faction
[],double charge
[],double facel
,double Vc
[],
70 int type
[],int ntype
,double nbfp
[],double Vnb
[]);
71 void inl2000_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
72 double shiftvec
[],double fshift
[],int gid
[],double pos
[],
73 double faction
[],double charge
[],double facel
,double Vc
[],
74 double krf
, double crf
);
75 void inl2100_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
76 double shiftvec
[],double fshift
[],int gid
[],double pos
[],
77 double faction
[],double charge
[],double facel
,double Vc
[],
78 double krf
, double crf
, int type
[],int ntype
,
79 double nbfp
[],double Vnb
[]);
80 void inl1120_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
81 double shiftvec
[],double fshift
[],int gid
[],double pos
[],
82 double faction
[],double charge
[],double facel
,double Vc
[],
83 int type
[],int ntype
,double nbfp
[],double Vnb
[]);
84 void inl2020_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
85 double shiftvec
[],double fshift
[],int gid
[],double pos
[],
86 double faction
[],double charge
[],double facel
,double Vc
[],
87 double krf
, double crf
);
88 void inl2120_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
89 double shiftvec
[],double fshift
[],int gid
[],double pos
[],
90 double faction
[],double charge
[],double facel
,double Vc
[],
91 double krf
, double crf
, int type
[],int ntype
,
92 double nbfp
[],double Vnb
[]);
93 void inl1130_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
94 double shiftvec
[],double fshift
[],int gid
[],double pos
[],
95 double faction
[],double charge
[],double facel
,double Vc
[],
96 int type
[],int ntype
,double nbfp
[],double Vnb
[]);
97 void inl2030_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
98 double shiftvec
[],double fshift
[],int gid
[],double pos
[],
99 double faction
[],double charge
[],double facel
,double Vc
[],
100 double krf
, double crf
);
101 void inl2130_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
102 double shiftvec
[],double fshift
[],int gid
[],double pos
[],
103 double faction
[],double charge
[],double facel
,double Vc
[],
104 double krf
, double crf
, int type
[],int ntype
,
105 double nbfp
[],double Vnb
[]);
106 void inl3000_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
107 double shiftvec
[],double fshift
[],int gid
[],double pos
[],
108 double faction
[],double charge
[],double facel
,double Vc
[],
109 double tabscale
,double VFtab
[]);
110 void inl3020_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
111 double shiftvec
[],double fshift
[],int gid
[],double pos
[],
112 double faction
[],double charge
[],double facel
,double Vc
[],
113 double tabscale
,double VFtab
[]);
114 void inl3030_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
115 double shiftvec
[],double fshift
[],int gid
[],double pos
[],
116 double faction
[],double charge
[],double facel
,double Vc
[],
117 double tabscale
,double VFtab
[]);
118 void inl3100_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
119 double shiftvec
[],double fshift
[],int gid
[],double pos
[],
120 double faction
[],double charge
[],double facel
,double Vc
[],
121 int type
[],int ntype
,double nbfp
[],double Vnb
[],
122 double tabscale
, double VFtab
[]);
123 void inl3120_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
124 double shiftvec
[],double fshift
[],int gid
[],double pos
[],
125 double faction
[],double charge
[],double facel
,double Vc
[],
126 int type
[],int ntype
,double nbfp
[],double Vnb
[],
127 double tabscale
, double VFtab
[]);
128 void inl3130_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
129 double shiftvec
[],double fshift
[],int gid
[],double pos
[],
130 double faction
[],double charge
[],double facel
,double Vc
[],
131 int type
[],int ntype
,double nbfp
[],double Vnb
[],
132 double tabscale
, double VFtab
[]);
133 void inl3300_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
134 double shiftvec
[],double fshift
[],int gid
[],double pos
[],
135 double faction
[],double charge
[],double facel
,double Vc
[],
136 int type
[],int ntype
,double nbfp
[],double Vnb
[],
137 double tabscale
,double VFtab
[]);
138 void inl3320_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
139 double shiftvec
[],double fshift
[],int gid
[],double pos
[],
140 double faction
[],double charge
[],double facel
,double Vc
[],
141 int type
[],int ntype
,double nbfp
[],double Vnb
[],
142 double tabscale
,double VFtab
[]);
143 void inl3330_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
144 double shiftvec
[],double fshift
[],int gid
[],double pos
[],
145 double faction
[],double charge
[],double facel
,double Vc
[],
146 int type
[],int ntype
,double nbfp
[],double Vnb
[],
147 double tabscale
,double VFtab
[]);
149 void mcinl0100_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
150 double shiftvec
[],int gid
[],double pos
[],
151 int type
[],int ntype
,double nbfp
[],
153 void mcinl0300_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
154 double shiftvec
[],int gid
[],double pos
[],
155 int type
[],int ntype
,double nbfp
[],
156 double Vnb
[],double tabscale
,double VFtab
[]);
157 void mcinl1000_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
158 double shiftvec
[],int gid
[],double pos
[],
159 double charge
[],double facel
,double Vc
[]);
160 void mcinl1020_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
161 double shiftvec
[],int gid
[],double pos
[],
162 double charge
[],double facel
,double Vc
[]);
163 void mcinl1030_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
164 double shiftvec
[],int gid
[],double pos
[],
165 double charge
[],double facel
,double Vc
[]);
166 void mcinl1100_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
167 double shiftvec
[],int gid
[],double pos
[],
168 double charge
[],double facel
,double Vc
[],
169 int type
[],int ntype
,double nbfp
[],double Vnb
[]);
170 void mcinl2000_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
171 double shiftvec
[],int gid
[],double pos
[],
172 double charge
[],double facel
,double Vc
[],
173 double krf
, double crf
);
174 void mcinl2100_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
175 double shiftvec
[],int gid
[],double pos
[],
176 double charge
[],double facel
,double Vc
[],
177 double krf
, double crf
, int type
[],int ntype
,
178 double nbfp
[],double Vnb
[]);
179 void mcinl1120_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
180 double shiftvec
[],int gid
[],double pos
[],
181 double charge
[],double facel
,double Vc
[],
182 int type
[],int ntype
,double nbfp
[],double Vnb
[]);
183 void mcinl2020_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
184 double shiftvec
[],int gid
[],double pos
[],
185 double charge
[],double facel
,double Vc
[],
186 double krf
, double crf
);
187 void mcinl2120_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
188 double shiftvec
[],int gid
[],double pos
[],
189 double charge
[],double facel
,double Vc
[],
190 double krf
, double crf
, int type
[],int ntype
,
191 double nbfp
[],double Vnb
[]);
192 void mcinl1130_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
193 double shiftvec
[],int gid
[],double pos
[],
194 double charge
[],double facel
,double Vc
[],
195 int type
[],int ntype
,double nbfp
[],double Vnb
[]);
196 void mcinl2030_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
197 double shiftvec
[],int gid
[],double pos
[],
198 double charge
[],double facel
,double Vc
[],
199 double krf
, double crf
);
200 void mcinl2130_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
201 double shiftvec
[],int gid
[],double pos
[],
202 double charge
[],double facel
,double Vc
[],
203 double krf
, double crf
, int type
[],int ntype
,
204 double nbfp
[],double Vnb
[]);
205 void mcinl3000_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
206 double shiftvec
[],int gid
[],double pos
[],
207 double charge
[],double facel
,double Vc
[],
208 double tabscale
,double VFtab
[]);
209 void mcinl3020_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
210 double shiftvec
[],int gid
[],double pos
[],
211 double charge
[],double facel
,double Vc
[],
212 double tabscale
,double VFtab
[]);
213 void mcinl3030_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
214 double shiftvec
[],int gid
[],double pos
[],
215 double charge
[],double facel
,double Vc
[],
216 double tabscale
,double VFtab
[]);
217 void mcinl3100_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
218 double shiftvec
[],int gid
[],double pos
[],
219 double charge
[],double facel
,double Vc
[],
220 int type
[],int ntype
,double nbfp
[],double Vnb
[],
221 double tabscale
, double VFtab
[]);
222 void mcinl3120_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
223 double shiftvec
[],int gid
[],double pos
[],
224 double charge
[],double facel
,double Vc
[],
225 int type
[],int ntype
,double nbfp
[],double Vnb
[],
226 double tabscale
, double VFtab
[]);
227 void mcinl3130_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
228 double shiftvec
[],int gid
[],double pos
[],
229 double charge
[],double facel
,double Vc
[],
230 int type
[],int ntype
,double nbfp
[],double Vnb
[],
231 double tabscale
, double VFtab
[]);
232 void mcinl3300_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
233 double shiftvec
[],int gid
[],double pos
[],
234 double charge
[],double facel
,double Vc
[],
235 int type
[],int ntype
,double nbfp
[],double Vnb
[],
236 double tabscale
,double VFtab
[]);
237 void mcinl3320_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
238 double shiftvec
[],int gid
[],double pos
[],
239 double charge
[],double facel
,double Vc
[],
240 int type
[],int ntype
,double nbfp
[],double Vnb
[],
241 double tabscale
,double VFtab
[]);
242 void mcinl3330_sse2(int nri
,int iinr
[],int jindex
[],int jjnr
[],int shift
[],
243 double shiftvec
[],int gid
[],double pos
[],
244 double charge
[],double facel
,double Vc
[],
245 int type
[],int ntype
,double nbfp
[],double Vnb
[],
246 double tabscale
,double VFtab
[]);