v0.14.0
Loading...
Searching...
No Matches
one_over_1_minus_x_fast.cpp
Go to the documentation of this file.
1#include <iostream>
2
3inline void func1(double *restrict y, double *restrict a1)
4{
5 y[0] += a1[0];
6 y[1] += a1[1];
7 y[2] += a1[2];
8 a1[0] *= 0.1;
9 a1[1] *= 0.1;
10 a1[2] *= 0.1;
11 return;
12}
13
14inline void func2(double *restrict y, double *restrict a1, double *restrict a2)
15{
16 y[0] += a1[0] + 2 * a2[0];
17 y[1] += a1[1] + 2 * a2[1];
18 y[2] += a1[2] + 2 * a2[2];
19 a1[0] *= 0.1;
20 a2[0] *= 0.2;
21 a1[1] *= 0.1;
22 a2[1] *= 0.2;
23 a1[2] *= 0.1;
24 a2[2] *= 0.2;
25 return;
26}
27
28inline void func3(double *restrict y, double *restrict a1, double *restrict a2,
29 double *restrict a3)
30{
31 y[0] += a1[0] + 2 * a2[0]
32 + 3 * (a1[0] * a2[0] + a1[1] * a2[1] + a1[2] * a2[2]) * a3[0];
33 y[1] += a1[1] + 2 * a2[1]
34 + 3 * (a1[0] * a2[0] + a1[1] * a2[1] + a1[2] * a2[2]) * a3[1];
35 y[2] += a1[2] + 2 * a2[2]
36 + 3 * (a1[0] * a2[0] + a1[1] * a2[1] + a1[2] * a2[2]) * a3[2];
37 a1[0] *= 0.1;
38 a2[0] *= 0.2;
39 a3[0] *= 0.3;
40 a1[1] *= 0.1;
41 a2[1] *= 0.2;
42 a3[1] *= 0.3;
43 a1[2] *= 0.1;
44 a2[2] *= 0.2;
45 a3[2] *= 0.3;
46 return;
47}
48
49inline void func4(double *restrict y, double *restrict a1, double *restrict a2,
50 double *restrict a3, double *restrict a4)
51{
52 y[0] += a1[0] + 2 * a2[0]
53 + 3 * (a1[0] * a2[0] + a1[1] * a2[1] + a1[2] * a2[2]) * a3[0]
54 + 4 * (a1[0] * a3[0] + a1[1] * a3[1] + a1[2] * a3[2])
55 * (a2[0] * a2[0] + a2[1] * a2[1] + a2[2] * a2[2]) * a4[0];
56 y[1] += a1[1] + 2 * a2[1]
57 + 3 * (a1[0] * a2[0] + a1[1] * a2[1] + a1[2] * a2[2]) * a3[1]
58 + 4 * (a1[0] * a3[0] + a1[1] * a3[1] + a1[2] * a3[2])
59 * (a2[0] * a2[0] + a2[1] * a2[1] + a2[2] * a2[2]) * a4[1];
60 y[2] += a1[2] + 2 * a2[2]
61 + 3 * (a1[0] * a2[0] + a1[1] * a2[1] + a1[2] * a2[2]) * a3[2]
62 + 4 * (a1[0] * a3[0] + a1[1] * a3[1] + a1[2] * a3[2])
63 * (a2[0] * a2[0] + a2[1] * a2[1] + a2[2] * a2[2]) * a4[2];
64 a1[0] *= 0.1;
65 a2[0] *= 0.2;
66 a3[0] *= 0.3;
67 a4[0] *= 0.4;
68 a1[1] *= 0.1;
69 a2[1] *= 0.2;
70 a3[1] *= 0.3;
71 a4[1] *= 0.4;
72 a1[2] *= 0.1;
73 a2[2] *= 0.2;
74 a3[2] *= 0.3;
75 a4[2] *= 0.4;
76 return;
77}
78
79inline void
80func5(double *restrict y, double *restrict a1, double *restrict a2,
81 double *restrict a3, double *restrict a4, double *restrict a5)
82{
83 y[0] += a1[0] + 2 * a2[0]
84 + 3 * (a1[0] * a2[0] + a1[1] * a2[1] + a1[2] * a2[2]) * a3[0]
85 + 4 * (a1[0] * a3[0] + a1[1] * a3[1] + a1[2] * a3[2])
86 * (a2[0] * a2[0] + a2[1] * a2[1] + a2[2] * a2[2]) * a4[0]
87 + 5 * (a1[0] * a4[0] + a1[1] * a4[1] + a1[2] * a4[2])
88 * (a2[0] * a3[0] + a2[1] * a3[1] + a2[2] * a3[2]) * a5[0];
89 y[1] += a1[1] + 2 * a2[1]
90 + 3 * (a1[0] * a2[0] + a1[1] * a2[1] + a1[2] * a2[2]) * a3[1]
91 + 4 * (a1[0] * a3[0] + a1[1] * a3[1] + a1[2] * a3[2])
92 * (a2[0] * a2[0] + a2[1] * a2[1] + a2[2] * a2[2]) * a4[1]
93 + 5 * (a1[0] * a4[0] + a1[1] * a4[1] + a1[2] * a4[2])
94 * (a2[0] * a3[0] + a2[1] * a3[1] + a2[2] * a3[2]) * a5[1];
95 y[2] += a1[2] + 2 * a2[2]
96 + 3 * (a1[0] * a2[0] + a1[1] * a2[1] + a1[2] * a2[2]) * a3[2]
97 + 4 * (a1[0] * a3[0] + a1[1] * a3[1] + a1[2] * a3[2])
98 * (a2[0] * a2[0] + a2[1] * a2[1] + a2[2] * a2[2]) * a4[2]
99 + 5 * (a1[0] * a4[0] + a1[1] * a4[1] + a1[2] * a4[2])
100 * (a2[0] * a3[0] + a2[1] * a3[1] + a2[2] * a3[2]) * a5[2];
101 a1[0] *= 0.1;
102 a2[0] *= 0.2;
103 a3[0] *= 0.3;
104 a4[0] *= 0.4;
105 a5[0] *= 0.5;
106 a1[1] *= 0.1;
107 a2[1] *= 0.2;
108 a3[1] *= 0.3;
109 a4[1] *= 0.4;
110 a5[1] *= 0.5;
111 a1[2] *= 0.1;
112 a2[2] *= 0.2;
113 a3[2] *= 0.3;
114 a4[2] *= 0.4;
115 a5[2] *= 0.5;
116 return;
117}
118
119inline void func6(double *restrict y, double *restrict a1, double *restrict a2,
120 double *restrict a3, double *restrict a4,
121 double *restrict a5, double *restrict a6)
122{
123 y[0] += a1[0] + 2 * a2[0]
124 + 3 * (a1[0] * a2[0] + a1[1] * a2[1] + a1[2] * a2[2]) * a3[0]
125 + 4 * (a1[0] * a3[0] + a1[1] * a3[1] + a1[2] * a3[2])
126 * (a2[0] * a2[0] + a2[1] * a2[1] + a2[2] * a2[2]) * a4[0]
127 + 5 * (a1[0] * a4[0] + a1[1] * a4[1] + a1[2] * a4[2])
128 * (a2[0] * a3[0] + a2[1] * a3[1] + a2[2] * a3[2]) * a5[0]
129 + 6 * (a1[0] * a5[0] + a1[1] * a5[1] + a1[2] * a5[2])
130 * (a2[0] * a4[0] + a2[1] * a4[1] + a2[2] * a4[2])
131 * (a3[0] * a3[0] + a3[1] * a3[1] + a3[2] * a3[2]) * a6[0];
132 y[1] += a1[1] + 2 * a2[1]
133 + 3 * (a1[0] * a2[0] + a1[1] * a2[1] + a1[2] * a2[2]) * a3[1]
134 + 4 * (a1[0] * a3[0] + a1[1] * a3[1] + a1[2] * a3[2])
135 * (a2[0] * a2[0] + a2[1] * a2[1] + a2[2] * a2[2]) * a4[1]
136 + 5 * (a1[0] * a4[0] + a1[1] * a4[1] + a1[2] * a4[2])
137 * (a2[0] * a3[0] + a2[1] * a3[1] + a2[2] * a3[2]) * a5[1]
138 + 6 * (a1[0] * a5[0] + a1[1] * a5[1] + a1[2] * a5[2])
139 * (a2[0] * a4[0] + a2[1] * a4[1] + a2[2] * a4[2])
140 * (a3[0] * a3[0] + a3[1] * a3[1] + a3[2] * a3[2]) * a6[1];
141 y[2] += a1[2] + 2 * a2[2]
142 + 3 * (a1[0] * a2[0] + a1[1] * a2[1] + a1[2] * a2[2]) * a3[2]
143 + 4 * (a1[0] * a3[0] + a1[1] * a3[1] + a1[2] * a3[2])
144 * (a2[0] * a2[0] + a2[1] * a2[1] + a2[2] * a2[2]) * a4[2]
145 + 5 * (a1[0] * a4[0] + a1[1] * a4[1] + a1[2] * a4[2])
146 * (a2[0] * a3[0] + a2[1] * a3[1] + a2[2] * a3[2]) * a5[2]
147 + 6 * (a1[0] * a5[0] + a1[1] * a5[1] + a1[2] * a5[2])
148 * (a2[0] * a4[0] + a2[1] * a4[1] + a2[2] * a4[2])
149 * (a3[0] * a3[0] + a3[1] * a3[1] + a3[2] * a3[2]) * a6[2];
150 a1[0] *= 0.1;
151 a2[0] *= 0.2;
152 a3[0] *= 0.3;
153 a4[0] *= 0.4;
154 a5[0] *= 0.5;
155 a6[0] *= 0.6;
156 a1[1] *= 0.1;
157 a2[1] *= 0.2;
158 a3[1] *= 0.3;
159 a4[1] *= 0.4;
160 a5[1] *= 0.5;
161 a6[1] *= 0.6;
162 a1[2] *= 0.1;
163 a2[2] *= 0.2;
164 a3[2] *= 0.3;
165 a4[2] *= 0.4;
166 a5[2] *= 0.5;
167 a6[2] *= 0.6;
168 return;
169}
170
171inline void
172func7(double *restrict y, double *restrict a1, double *restrict a2,
173 double *restrict a3, double *restrict a4, double *restrict a5,
174 double *restrict a6, double *restrict a7)
175{
176 y[0] += a1[0] + 2 * a2[0]
177 + 3 * (a1[0] * a2[0] + a1[1] * a2[1] + a1[2] * a2[2]) * a3[0]
178 + 4 * (a1[0] * a3[0] + a1[1] * a3[1] + a1[2] * a3[2])
179 * (a2[0] * a2[0] + a2[1] * a2[1] + a2[2] * a2[2]) * a4[0]
180 + 5 * (a1[0] * a4[0] + a1[1] * a4[1] + a1[2] * a4[2])
181 * (a2[0] * a3[0] + a2[1] * a3[1] + a2[2] * a3[2]) * a5[0]
182 + 6 * (a1[0] * a5[0] + a1[1] * a5[1] + a1[2] * a5[2])
183 * (a2[0] * a4[0] + a2[1] * a4[1] + a2[2] * a4[2])
184 * (a3[0] * a3[0] + a3[1] * a3[1] + a3[2] * a3[2]) * a6[0]
185 + 7 * (a1[0] * a6[0] + a1[1] * a6[1] + a1[2] * a6[2])
186 * (a2[0] * a5[0] + a2[1] * a5[1] + a2[2] * a5[2])
187 * (a3[0] * a4[0] + a3[1] * a4[1] + a3[2] * a4[2]) * a7[0];
188 y[1] += a1[1] + 2 * a2[1]
189 + 3 * (a1[0] * a2[0] + a1[1] * a2[1] + a1[2] * a2[2]) * a3[1]
190 + 4 * (a1[0] * a3[0] + a1[1] * a3[1] + a1[2] * a3[2])
191 * (a2[0] * a2[0] + a2[1] * a2[1] + a2[2] * a2[2]) * a4[1]
192 + 5 * (a1[0] * a4[0] + a1[1] * a4[1] + a1[2] * a4[2])
193 * (a2[0] * a3[0] + a2[1] * a3[1] + a2[2] * a3[2]) * a5[1]
194 + 6 * (a1[0] * a5[0] + a1[1] * a5[1] + a1[2] * a5[2])
195 * (a2[0] * a4[0] + a2[1] * a4[1] + a2[2] * a4[2])
196 * (a3[0] * a3[0] + a3[1] * a3[1] + a3[2] * a3[2]) * a6[1]
197 + 7 * (a1[0] * a6[0] + a1[1] * a6[1] + a1[2] * a6[2])
198 * (a2[0] * a5[0] + a2[1] * a5[1] + a2[2] * a5[2])
199 * (a3[0] * a4[0] + a3[1] * a4[1] + a3[2] * a4[2]) * a7[1];
200 y[2] += a1[2] + 2 * a2[2]
201 + 3 * (a1[0] * a2[0] + a1[1] * a2[1] + a1[2] * a2[2]) * a3[2]
202 + 4 * (a1[0] * a3[0] + a1[1] * a3[1] + a1[2] * a3[2])
203 * (a2[0] * a2[0] + a2[1] * a2[1] + a2[2] * a2[2]) * a4[2]
204 + 5 * (a1[0] * a4[0] + a1[1] * a4[1] + a1[2] * a4[2])
205 * (a2[0] * a3[0] + a2[1] * a3[1] + a2[2] * a3[2]) * a5[2]
206 + 6 * (a1[0] * a5[0] + a1[1] * a5[1] + a1[2] * a5[2])
207 * (a2[0] * a4[0] + a2[1] * a4[1] + a2[2] * a4[2])
208 * (a3[0] * a3[0] + a3[1] * a3[1] + a3[2] * a3[2]) * a6[2]
209 + 7 * (a1[0] * a6[0] + a1[1] * a6[1] + a1[2] * a6[2])
210 * (a2[0] * a5[0] + a2[1] * a5[1] + a2[2] * a5[2])
211 * (a3[0] * a4[0] + a3[1] * a4[1] + a3[2] * a4[2]) * a7[2];
212 a1[0] *= 0.1;
213 a2[0] *= 0.2;
214 a3[0] *= 0.3;
215 a4[0] *= 0.4;
216 a5[0] *= 0.5;
217 a6[0] *= 0.6;
218 a7[0] *= 0.7;
219 a1[1] *= 0.1;
220 a2[1] *= 0.2;
221 a3[1] *= 0.3;
222 a4[1] *= 0.4;
223 a5[1] *= 0.5;
224 a6[1] *= 0.6;
225 a7[1] *= 0.7;
226 a1[2] *= 0.1;
227 a2[2] *= 0.2;
228 a3[2] *= 0.3;
229 a4[2] *= 0.4;
230 a5[2] *= 0.5;
231 a6[2] *= 0.6;
232 a7[2] *= 0.7;
233 return;
234}
235
236inline void
237func8(double *restrict y, double *restrict a1, double *restrict a2,
238 double *restrict a3, double *restrict a4, double *restrict a5,
239 double *restrict a6, double *restrict a7, double *restrict a8)
240{
241 y[0] += a1[0] + 2 * a2[0]
242 + 3 * (a1[0] * a2[0] + a1[1] * a2[1] + a1[2] * a2[2]) * a3[0]
243 + 4 * (a1[0] * a3[0] + a1[1] * a3[1] + a1[2] * a3[2])
244 * (a2[0] * a2[0] + a2[1] * a2[1] + a2[2] * a2[2]) * a4[0]
245 + 5 * (a1[0] * a4[0] + a1[1] * a4[1] + a1[2] * a4[2])
246 * (a2[0] * a3[0] + a2[1] * a3[1] + a2[2] * a3[2]) * a5[0]
247 + 6 * (a1[0] * a5[0] + a1[1] * a5[1] + a1[2] * a5[2])
248 * (a2[0] * a4[0] + a2[1] * a4[1] + a2[2] * a4[2])
249 * (a3[0] * a3[0] + a3[1] * a3[1] + a3[2] * a3[2]) * a6[0]
250 + 7 * (a1[0] * a6[0] + a1[1] * a6[1] + a1[2] * a6[2])
251 * (a2[0] * a5[0] + a2[1] * a5[1] + a2[2] * a5[2])
252 * (a3[0] * a4[0] + a3[1] * a4[1] + a3[2] * a4[2]) * a7[0]
253 + 8 * (a1[0] * a7[0] + a1[1] * a7[1] + a1[2] * a7[2])
254 * (a2[0] * a6[0] + a2[1] * a6[1] + a2[2] * a6[2])
255 * (a3[0] * a5[0] + a3[1] * a5[1] + a3[2] * a5[2])
256 * (a4[0] * a4[0] + a4[1] * a4[1] + a4[2] * a4[2]) * a8[0];
257 y[1] += a1[1] + 2 * a2[1]
258 + 3 * (a1[0] * a2[0] + a1[1] * a2[1] + a1[2] * a2[2]) * a3[1]
259 + 4 * (a1[0] * a3[0] + a1[1] * a3[1] + a1[2] * a3[2])
260 * (a2[0] * a2[0] + a2[1] * a2[1] + a2[2] * a2[2]) * a4[1]
261 + 5 * (a1[0] * a4[0] + a1[1] * a4[1] + a1[2] * a4[2])
262 * (a2[0] * a3[0] + a2[1] * a3[1] + a2[2] * a3[2]) * a5[1]
263 + 6 * (a1[0] * a5[0] + a1[1] * a5[1] + a1[2] * a5[2])
264 * (a2[0] * a4[0] + a2[1] * a4[1] + a2[2] * a4[2])
265 * (a3[0] * a3[0] + a3[1] * a3[1] + a3[2] * a3[2]) * a6[1]
266 + 7 * (a1[0] * a6[0] + a1[1] * a6[1] + a1[2] * a6[2])
267 * (a2[0] * a5[0] + a2[1] * a5[1] + a2[2] * a5[2])
268 * (a3[0] * a4[0] + a3[1] * a4[1] + a3[2] * a4[2]) * a7[1]
269 + 8 * (a1[0] * a7[0] + a1[1] * a7[1] + a1[2] * a7[2])
270 * (a2[0] * a6[0] + a2[1] * a6[1] + a2[2] * a6[2])
271 * (a3[0] * a5[0] + a3[1] * a5[1] + a3[2] * a5[2])
272 * (a4[0] * a4[0] + a4[1] * a4[1] + a4[2] * a4[2]) * a8[1];
273 y[2] += a1[2] + 2 * a2[2]
274 + 3 * (a1[0] * a2[0] + a1[1] * a2[1] + a1[2] * a2[2]) * a3[2]
275 + 4 * (a1[0] * a3[0] + a1[1] * a3[1] + a1[2] * a3[2])
276 * (a2[0] * a2[0] + a2[1] * a2[1] + a2[2] * a2[2]) * a4[2]
277 + 5 * (a1[0] * a4[0] + a1[1] * a4[1] + a1[2] * a4[2])
278 * (a2[0] * a3[0] + a2[1] * a3[1] + a2[2] * a3[2]) * a5[2]
279 + 6 * (a1[0] * a5[0] + a1[1] * a5[1] + a1[2] * a5[2])
280 * (a2[0] * a4[0] + a2[1] * a4[1] + a2[2] * a4[2])
281 * (a3[0] * a3[0] + a3[1] * a3[1] + a3[2] * a3[2]) * a6[2]
282 + 7 * (a1[0] * a6[0] + a1[1] * a6[1] + a1[2] * a6[2])
283 * (a2[0] * a5[0] + a2[1] * a5[1] + a2[2] * a5[2])
284 * (a3[0] * a4[0] + a3[1] * a4[1] + a3[2] * a4[2]) * a7[2]
285 + 8 * (a1[0] * a7[0] + a1[1] * a7[1] + a1[2] * a7[2])
286 * (a2[0] * a6[0] + a2[1] * a6[1] + a2[2] * a6[2])
287 * (a3[0] * a5[0] + a3[1] * a5[1] + a3[2] * a5[2])
288 * (a4[0] * a4[0] + a4[1] * a4[1] + a4[2] * a4[2]) * a8[2];
289 a1[0] *= 0.1;
290 a2[0] *= 0.2;
291 a3[0] *= 0.3;
292 a4[0] *= 0.4;
293 a5[0] *= 0.5;
294 a6[0] *= 0.6;
295 a7[0] *= 0.7;
296 a8[0] *= 0.8;
297 a1[1] *= 0.1;
298 a2[1] *= 0.2;
299 a3[1] *= 0.3;
300 a4[1] *= 0.4;
301 a5[1] *= 0.5;
302 a6[1] *= 0.6;
303 a7[1] *= 0.7;
304 a8[1] *= 0.8;
305 a1[2] *= 0.1;
306 a2[2] *= 0.2;
307 a3[2] *= 0.3;
308 a4[2] *= 0.4;
309 a5[2] *= 0.5;
310 a6[2] *= 0.6;
311 a7[2] *= 0.7;
312 a8[2] *= 0.8;
313 return;
314}
315
316inline void
317func9(double *restrict y, double *restrict a1, double *restrict a2,
318 double *restrict a3, double *restrict a4, double *restrict a5,
319 double *restrict a6, double *restrict a7, double *restrict a8,
320 double *restrict a9)
321{
322 y[0] += a1[0] + 2 * a2[0]
323 + 3 * (a1[0] * a2[0] + a1[1] * a2[1] + a1[2] * a2[2]) * a3[0]
324 + 4 * (a1[0] * a3[0] + a1[1] * a3[1] + a1[2] * a3[2])
325 * (a2[0] * a2[0] + a2[1] * a2[1] + a2[2] * a2[2]) * a4[0]
326 + 5 * (a1[0] * a4[0] + a1[1] * a4[1] + a1[2] * a4[2])
327 * (a2[0] * a3[0] + a2[1] * a3[1] + a2[2] * a3[2]) * a5[0]
328 + 6 * (a1[0] * a5[0] + a1[1] * a5[1] + a1[2] * a5[2])
329 * (a2[0] * a4[0] + a2[1] * a4[1] + a2[2] * a4[2])
330 * (a3[0] * a3[0] + a3[1] * a3[1] + a3[2] * a3[2]) * a6[0]
331 + 7 * (a1[0] * a6[0] + a1[1] * a6[1] + a1[2] * a6[2])
332 * (a2[0] * a5[0] + a2[1] * a5[1] + a2[2] * a5[2])
333 * (a3[0] * a4[0] + a3[1] * a4[1] + a3[2] * a4[2]) * a7[0]
334 + 8 * (a1[0] * a7[0] + a1[1] * a7[1] + a1[2] * a7[2])
335 * (a2[0] * a6[0] + a2[1] * a6[1] + a2[2] * a6[2])
336 * (a3[0] * a5[0] + a3[1] * a5[1] + a3[2] * a5[2])
337 * (a4[0] * a4[0] + a4[1] * a4[1] + a4[2] * a4[2]) * a8[0]
338 + 9 * (a1[0] * a8[0] + a1[1] * a8[1] + a1[2] * a8[2])
339 * (a2[0] * a7[0] + a2[1] * a7[1] + a2[2] * a7[2])
340 * (a3[0] * a6[0] + a3[1] * a6[1] + a3[2] * a6[2])
341 * (a4[0] * a5[0] + a4[1] * a5[1] + a4[2] * a5[2]) * a9[0];
342 y[1] += a1[1] + 2 * a2[1]
343 + 3 * (a1[0] * a2[0] + a1[1] * a2[1] + a1[2] * a2[2]) * a3[1]
344 + 4 * (a1[0] * a3[0] + a1[1] * a3[1] + a1[2] * a3[2])
345 * (a2[0] * a2[0] + a2[1] * a2[1] + a2[2] * a2[2]) * a4[1]
346 + 5 * (a1[0] * a4[0] + a1[1] * a4[1] + a1[2] * a4[2])
347 * (a2[0] * a3[0] + a2[1] * a3[1] + a2[2] * a3[2]) * a5[1]
348 + 6 * (a1[0] * a5[0] + a1[1] * a5[1] + a1[2] * a5[2])
349 * (a2[0] * a4[0] + a2[1] * a4[1] + a2[2] * a4[2])
350 * (a3[0] * a3[0] + a3[1] * a3[1] + a3[2] * a3[2]) * a6[1]
351 + 7 * (a1[0] * a6[0] + a1[1] * a6[1] + a1[2] * a6[2])
352 * (a2[0] * a5[0] + a2[1] * a5[1] + a2[2] * a5[2])
353 * (a3[0] * a4[0] + a3[1] * a4[1] + a3[2] * a4[2]) * a7[1]
354 + 8 * (a1[0] * a7[0] + a1[1] * a7[1] + a1[2] * a7[2])
355 * (a2[0] * a6[0] + a2[1] * a6[1] + a2[2] * a6[2])
356 * (a3[0] * a5[0] + a3[1] * a5[1] + a3[2] * a5[2])
357 * (a4[0] * a4[0] + a4[1] * a4[1] + a4[2] * a4[2]) * a8[1]
358 + 9 * (a1[0] * a8[0] + a1[1] * a8[1] + a1[2] * a8[2])
359 * (a2[0] * a7[0] + a2[1] * a7[1] + a2[2] * a7[2])
360 * (a3[0] * a6[0] + a3[1] * a6[1] + a3[2] * a6[2])
361 * (a4[0] * a5[0] + a4[1] * a5[1] + a4[2] * a5[2]) * a9[1];
362 y[2] += a1[2] + 2 * a2[2]
363 + 3 * (a1[0] * a2[0] + a1[1] * a2[1] + a1[2] * a2[2]) * a3[2]
364 + 4 * (a1[0] * a3[0] + a1[1] * a3[1] + a1[2] * a3[2])
365 * (a2[0] * a2[0] + a2[1] * a2[1] + a2[2] * a2[2]) * a4[2]
366 + 5 * (a1[0] * a4[0] + a1[1] * a4[1] + a1[2] * a4[2])
367 * (a2[0] * a3[0] + a2[1] * a3[1] + a2[2] * a3[2]) * a5[2]
368 + 6 * (a1[0] * a5[0] + a1[1] * a5[1] + a1[2] * a5[2])
369 * (a2[0] * a4[0] + a2[1] * a4[1] + a2[2] * a4[2])
370 * (a3[0] * a3[0] + a3[1] * a3[1] + a3[2] * a3[2]) * a6[2]
371 + 7 * (a1[0] * a6[0] + a1[1] * a6[1] + a1[2] * a6[2])
372 * (a2[0] * a5[0] + a2[1] * a5[1] + a2[2] * a5[2])
373 * (a3[0] * a4[0] + a3[1] * a4[1] + a3[2] * a4[2]) * a7[2]
374 + 8 * (a1[0] * a7[0] + a1[1] * a7[1] + a1[2] * a7[2])
375 * (a2[0] * a6[0] + a2[1] * a6[1] + a2[2] * a6[2])
376 * (a3[0] * a5[0] + a3[1] * a5[1] + a3[2] * a5[2])
377 * (a4[0] * a4[0] + a4[1] * a4[1] + a4[2] * a4[2]) * a8[2]
378 + 9 * (a1[0] * a8[0] + a1[1] * a8[1] + a1[2] * a8[2])
379 * (a2[0] * a7[0] + a2[1] * a7[1] + a2[2] * a7[2])
380 * (a3[0] * a6[0] + a3[1] * a6[1] + a3[2] * a6[2])
381 * (a4[0] * a5[0] + a4[1] * a5[1] + a4[2] * a5[2]) * a9[2];
382 a1[0] *= 0.1;
383 a2[0] *= 0.2;
384 a3[0] *= 0.3;
385 a4[0] *= 0.4;
386 a5[0] *= 0.5;
387 a6[0] *= 0.6;
388 a7[0] *= 0.7;
389 a8[0] *= 0.8;
390 a9[0] *= 0.9;
391 a1[1] *= 0.1;
392 a2[1] *= 0.2;
393 a3[1] *= 0.3;
394 a4[1] *= 0.4;
395 a5[1] *= 0.5;
396 a6[1] *= 0.6;
397 a7[1] *= 0.7;
398 a8[1] *= 0.8;
399 a9[1] *= 0.9;
400 a1[2] *= 0.1;
401 a2[2] *= 0.2;
402 a3[2] *= 0.3;
403 a4[2] *= 0.4;
404 a5[2] *= 0.5;
405 a6[2] *= 0.6;
406 a7[2] *= 0.7;
407 a8[2] *= 0.8;
408 a9[2] *= 0.9;
409 return;
410}
411
412int main()
413{
414 double y[] = {0, 1, 2};
415 double a1[] = {2, 3, 4};
416 double a2[] = {5, 6, 7};
417 double a3[] = {8, 9, 10};
418
419 for(int ii = 0; ii < 10000000; ii++)
420 {
421 // func1(y,a1);
422 // func2(y,a1,a2);
423 func3(y, a1, a2, a3);
424 // func4(y,a1,a2,a3,a4);
425 // func5(y,a1,a2,a3,a4,a5);
426 // func6(y,a1,a2,a3,a4,a5,a6);
427 // func7(y,a1,a2,a3,a4,a5,a6,a7);
428 // func8(y,a1,a2,a3,a4,a5,a6,a7,a8);
429 // func9(y,a1,a2,a3,a4,a5,a6,a7,a8,a9);
430 }
431 std::cout << y[0] << " " << y[1] << " " << y[2] << std::endl;
432 // << x(0) << " " << x(1) << " " << x(2) << endl
433 // << n(0) << " " << n(1) << " " << n(2) << endl
434 // << y(i)*n(i) << endl;
435}
constexpr double a5
constexpr double a2
constexpr double a4
constexpr double a3
constexpr double a1
constexpr double a6
void func5(double *restrict y, double *restrict a1, double *restrict a2, double *restrict a3, double *restrict a4, double *restrict a5)
void func7(double *restrict y, double *restrict a1, double *restrict a2, double *restrict a3, double *restrict a4, double *restrict a5, double *restrict a6, double *restrict a7)
void func2(double *restrict y, double *restrict a1, double *restrict a2)
void func9(double *restrict y, double *restrict a1, double *restrict a2, double *restrict a3, double *restrict a4, double *restrict a5, double *restrict a6, double *restrict a7, double *restrict a8, double *restrict a9)
void func3(double *restrict y, double *restrict a1, double *restrict a2, double *restrict a3)
void func4(double *restrict y, double *restrict a1, double *restrict a2, double *restrict a3, double *restrict a4)
void func8(double *restrict y, double *restrict a1, double *restrict a2, double *restrict a3, double *restrict a4, double *restrict a5, double *restrict a6, double *restrict a7, double *restrict a8)
void func6(double *restrict y, double *restrict a1, double *restrict a2, double *restrict a3, double *restrict a4, double *restrict a5, double *restrict a6)
void func1(double *restrict y, double *restrict a1)