1 /*
2 This file was generated automatically with ./scripts/maple2c.pl.
3 Do not edit this file directly as it can be overwritten!!
4
5 This Source Code Form is subject to the terms of the Mozilla Public
6 License, v. 2.0. If a copy of the MPL was not distributed with this
7 file, You can obtain one at http://mozilla.org/MPL/2.0/.
8
9 Maple version : Maple 2016 (X86 64 LINUX)
10 Maple source : ./maple/lda_exc/lda_c_gombas.mpl
11 Type of functional: lda_exc
12 */
13
14 #define maple2c_order 4
15 #define MAPLE2C_FLAGS (XC_FLAGS_I_HAVE_EXC | XC_FLAGS_I_HAVE_VXC | XC_FLAGS_I_HAVE_FXC | XC_FLAGS_I_HAVE_KXC | XC_FLAGS_I_HAVE_LXC)
16
17
18 static inline void
func_unpol(const xc_func_type * p,int order,const double * rho,double * zk,LDA_OUT_PARAMS_NO_EXC (double *))19 func_unpol(const xc_func_type *p, int order, const double *rho, double *zk, LDA_OUT_PARAMS_NO_EXC(double *))
20 {
21
22 #ifndef XC_DONT_COMPILE_EXC
23 double t1, t2, t4, t6, t7, t9, t10;
24
25 #ifndef XC_DONT_COMPILE_VXC
26 double t11, t12, t14, t15, t18, t22, t23, t24;
27 double t25;
28
29 #ifndef XC_DONT_COMPILE_FXC
30 double t32, t33, t35, t36, t39, t40, t44, t47;
31 double t48, t49, t51, t52, t53, t54, t56;
32
33 #ifndef XC_DONT_COMPILE_KXC
34 double t65, t66, t67, t68, t69, t71, t73, t74;
35 double t77, t78, t80, t83, t84, t85, t87, t88;
36 double t90, t93, t94, t95, t97, t99;
37
38 #ifndef XC_DONT_COMPILE_LXC
39 double t114, t127, t148, t159;
40 #endif
41
42 #endif
43
44 #endif
45
46 #endif
47
48 #endif
49
50
51
52 t1 = POW_1_3(rho[0]);
53 t2 = 0.1e1 / t1;
54 t4 = 0.1e1 + 0.56200000000000000000e-1 * t2;
55 t6 = 0.357e-1 / t4;
56 t7 = t2 + 0.239e1;
57 t9 = log(t7 * t1);
58 t10 = 0.311e-1 * t9;
59 if(zk != NULL && (p->info->flags & XC_FLAGS_HAVE_EXC))
60 zk[0] = -t6 - t10;
61
62 #ifndef XC_DONT_COMPILE_VXC
63
64 if(order < 1) return;
65
66
67 t11 = t4 * t4;
68 t12 = 0.1e1 / t11;
69 t14 = 0.1e1 / t1 / rho[0];
70 t15 = t12 * t14;
71 t18 = t1 * t1;
72 t22 = -0.1e1 / rho[0] / 0.3e1 + t7 / t18 / 0.3e1;
73 t23 = 0.1e1 / t7;
74 t24 = t22 * t23;
75 t25 = t24 * t2;
76 if(vrho != NULL && (p->info->flags & XC_FLAGS_HAVE_VXC))
77 vrho[0] = -t6 - t10 + rho[0] * (-0.66877999999999999999e-3 * t15 - 0.311e-1 * t25);
78
79 #ifndef XC_DONT_COMPILE_FXC
80
81 if(order < 2) return;
82
83
84 t32 = 0.1e1 / t11 / t4;
85 t33 = rho[0] * rho[0];
86 t35 = 0.1e1 / t18 / t33;
87 t36 = t32 * t35;
88 t39 = 0.1e1 / t1 / t33;
89 t40 = t12 * t39;
90 t44 = 0.1e1 / t18 / rho[0];
91 t47 = 0.2e1 / 0.9e1 / t33 - 0.2e1 / 0.9e1 * t7 * t44;
92 t48 = t47 * t23;
93 t49 = t48 * t2;
94 t51 = t7 * t7;
95 t52 = 0.1e1 / t51;
96 t53 = t22 * t52;
97 t54 = t53 * t44;
98 t56 = t24 * t14;
99 if(v2rho2 != NULL && (p->info->flags & XC_FLAGS_HAVE_FXC))
100 v2rho2[0] = -0.13375600000000000000e-2 * t15 - 0.622e-1 * t25 + rho[0] * (-0.25056957333333333333e-4 * t36 + 0.89170666666666666665e-3 * t40 - 0.311e-1 * t49 - 0.10366666666666666667e-1 * t54 + 0.10366666666666666667e-1 * t56);
101
102 #ifndef XC_DONT_COMPILE_KXC
103
104 if(order < 3) return;
105
106
107 t65 = t11 * t11;
108 t66 = 0.1e1 / t65;
109 t67 = t33 * t33;
110 t68 = 0.1e1 / t67;
111 t69 = t66 * t68;
112 t71 = t33 * rho[0];
113 t73 = 0.1e1 / t18 / t71;
114 t74 = t32 * t73;
115 t77 = 0.1e1 / t1 / t71;
116 t78 = t12 * t77;
117 t80 = 0.1e1 / t71;
118 t83 = 0.10e2 / 0.27e2 * t7 * t35 - 0.10e2 / 0.27e2 * t80;
119 t84 = t83 * t23;
120 t85 = t84 * t2;
121 t87 = t47 * t52;
122 t88 = t87 * t44;
123 t90 = t48 * t14;
124 t93 = 0.1e1 / t51 / t7;
125 t94 = t22 * t93;
126 t95 = t94 * t80;
127 t97 = t53 * t35;
128 t99 = t24 * t39;
129 if(v3rho3 != NULL && (p->info->flags & XC_FLAGS_HAVE_KXC))
130 v3rho3[0] = -0.75170871999999999999e-4 * t36 + 0.26751200000000000000e-2 * t40 - 0.933e-1 * t49 - 0.31100000000000000000e-1 * t54 + 0.31100000000000000000e-1 * t56 + rho[0] * (-0.14082010021333333333e-5 * t69 + 0.10022782933333333333e-3 * t74 - 0.20806488888888888888e-2 * t78 - 0.311e-1 * t85 - 0.20733333333333333334e-1 * t88 + 0.20733333333333333334e-1 * t90 - 0.69111111111111111113e-2 * t95 + 0.20733333333333333334e-1 * t97 - 0.13822222222222222223e-1 * t99);
131
132 #ifndef XC_DONT_COMPILE_LXC
133
134 if(order < 4) return;
135
136
137 t114 = t67 * rho[0];
138 t127 = 0.1e1 / t1 / t67;
139 t148 = t51 * t51;
140 t159 = -0.10552119509319111111e-6 / t65 / t4 / t1 / t114 + 0.11265608017066666666e-4 * t66 / t114 - 0.44545701925925925925e-3 * t32 / t18 / t67 + 0.69354962962962962960e-2 * t12 * t127 - 0.311e-1 * (-0.80e2 / 0.81e2 * t7 * t73 + 0.80e2 / 0.81e2 * t68) * t23 * t2 - 0.31100000000000000001e-1 * t83 * t52 * t44 + 0.31100000000000000001e-1 * t84 * t14 - 0.20733333333333333334e-1 * t47 * t93 * t80 + 0.62200000000000000002e-1 * t87 * t35 - 0.41466666666666666668e-1 * t48 * t39 - 0.69111111111111111113e-2 * t22 / t148 * t127 + 0.34555555555555555557e-1 * t94 * t68 - 0.59896296296296296299e-1 * t53 * t73 + 0.32251851851851851854e-1 * t24 * t77;
141 if(v4rho4 != NULL && (p->info->flags & XC_FLAGS_HAVE_LXC))
142 v4rho4[0] = -0.56328040085333333332e-5 * t69 + 0.40091131733333333332e-3 * t74 - 0.83225955555555555555e-2 * t78 - 0.1244e0 * t85 - 0.82933333333333333334e-1 * t88 + 0.82933333333333333334e-1 * t90 - 0.27644444444444444444e-1 * t95 + 0.82933333333333333334e-1 * t97 - 0.55288888888888888890e-1 * t99 + rho[0] * t159;
143
144 #ifndef XC_DONT_COMPILE_MXC
145
146 if(order < 5) return;
147
148
149 #endif
150
151 #endif
152
153 #endif
154
155 #endif
156
157 #endif
158
159
160 }
161
162
163 static inline void
func_ferr(const xc_func_type * p,int order,const double * rho,double * zk,LDA_OUT_PARAMS_NO_EXC (double *))164 func_ferr(const xc_func_type *p, int order, const double *rho, double *zk, LDA_OUT_PARAMS_NO_EXC(double *))
165 {
166
167 #ifndef XC_DONT_COMPILE_EXC
168 double t1, t2, t4, t6, t7, t9, t10;
169
170 #ifndef XC_DONT_COMPILE_VXC
171 double t11, t12, t14, t15, t18, t22, t23, t24;
172 double t25;
173
174 #ifndef XC_DONT_COMPILE_FXC
175 double t32, t33, t35, t36, t39, t40, t44, t47;
176 double t48, t49, t51, t52, t53, t54, t56;
177
178 #ifndef XC_DONT_COMPILE_KXC
179 double t65, t66, t67, t68, t69, t71, t73, t74;
180 double t77, t78, t80, t83, t84, t85, t87, t88;
181 double t90, t93, t94, t95, t97, t99;
182
183 #ifndef XC_DONT_COMPILE_LXC
184 double t114, t127, t148, t159;
185 #endif
186
187 #endif
188
189 #endif
190
191 #endif
192
193 #endif
194
195
196
197 t1 = POW_1_3(rho[0]);
198 t2 = 0.1e1 / t1;
199 t4 = 0.1e1 + 0.56200000000000000000e-1 * t2;
200 t6 = 0.357e-1 / t4;
201 t7 = t2 + 0.239e1;
202 t9 = log(t7 * t1);
203 t10 = 0.311e-1 * t9;
204 if(zk != NULL && (p->info->flags & XC_FLAGS_HAVE_EXC))
205 zk[0] = -t6 - t10;
206
207 #ifndef XC_DONT_COMPILE_VXC
208
209 if(order < 1) return;
210
211
212 t11 = t4 * t4;
213 t12 = 0.1e1 / t11;
214 t14 = 0.1e1 / t1 / rho[0];
215 t15 = t12 * t14;
216 t18 = t1 * t1;
217 t22 = -0.1e1 / rho[0] / 0.3e1 + t7 / t18 / 0.3e1;
218 t23 = 0.1e1 / t7;
219 t24 = t22 * t23;
220 t25 = t24 * t2;
221 if(vrho != NULL && (p->info->flags & XC_FLAGS_HAVE_VXC))
222 vrho[0] = -t6 - t10 + rho[0] * (-0.66877999999999999999e-3 * t15 - 0.311e-1 * t25);
223
224 #ifndef XC_DONT_COMPILE_FXC
225
226 if(order < 2) return;
227
228
229 t32 = 0.1e1 / t11 / t4;
230 t33 = rho[0] * rho[0];
231 t35 = 0.1e1 / t18 / t33;
232 t36 = t32 * t35;
233 t39 = 0.1e1 / t1 / t33;
234 t40 = t12 * t39;
235 t44 = 0.1e1 / t18 / rho[0];
236 t47 = 0.2e1 / 0.9e1 / t33 - 0.2e1 / 0.9e1 * t7 * t44;
237 t48 = t47 * t23;
238 t49 = t48 * t2;
239 t51 = t7 * t7;
240 t52 = 0.1e1 / t51;
241 t53 = t22 * t52;
242 t54 = t53 * t44;
243 t56 = t24 * t14;
244 if(v2rho2 != NULL && (p->info->flags & XC_FLAGS_HAVE_FXC))
245 v2rho2[0] = -0.13375600000000000000e-2 * t15 - 0.622e-1 * t25 + rho[0] * (-0.25056957333333333333e-4 * t36 + 0.89170666666666666665e-3 * t40 - 0.311e-1 * t49 - 0.10366666666666666667e-1 * t54 + 0.10366666666666666667e-1 * t56);
246
247 #ifndef XC_DONT_COMPILE_KXC
248
249 if(order < 3) return;
250
251
252 t65 = t11 * t11;
253 t66 = 0.1e1 / t65;
254 t67 = t33 * t33;
255 t68 = 0.1e1 / t67;
256 t69 = t66 * t68;
257 t71 = t33 * rho[0];
258 t73 = 0.1e1 / t18 / t71;
259 t74 = t32 * t73;
260 t77 = 0.1e1 / t1 / t71;
261 t78 = t12 * t77;
262 t80 = 0.1e1 / t71;
263 t83 = 0.10e2 / 0.27e2 * t7 * t35 - 0.10e2 / 0.27e2 * t80;
264 t84 = t83 * t23;
265 t85 = t84 * t2;
266 t87 = t47 * t52;
267 t88 = t87 * t44;
268 t90 = t48 * t14;
269 t93 = 0.1e1 / t51 / t7;
270 t94 = t22 * t93;
271 t95 = t94 * t80;
272 t97 = t53 * t35;
273 t99 = t24 * t39;
274 if(v3rho3 != NULL && (p->info->flags & XC_FLAGS_HAVE_KXC))
275 v3rho3[0] = -0.75170871999999999999e-4 * t36 + 0.26751200000000000000e-2 * t40 - 0.933e-1 * t49 - 0.31100000000000000000e-1 * t54 + 0.31100000000000000000e-1 * t56 + rho[0] * (-0.14082010021333333333e-5 * t69 + 0.10022782933333333333e-3 * t74 - 0.20806488888888888888e-2 * t78 - 0.311e-1 * t85 - 0.20733333333333333334e-1 * t88 + 0.20733333333333333334e-1 * t90 - 0.69111111111111111113e-2 * t95 + 0.20733333333333333334e-1 * t97 - 0.13822222222222222223e-1 * t99);
276
277 #ifndef XC_DONT_COMPILE_LXC
278
279 if(order < 4) return;
280
281
282 t114 = t67 * rho[0];
283 t127 = 0.1e1 / t1 / t67;
284 t148 = t51 * t51;
285 t159 = -0.10552119509319111111e-6 / t65 / t4 / t1 / t114 + 0.11265608017066666666e-4 * t66 / t114 - 0.44545701925925925925e-3 * t32 / t18 / t67 + 0.69354962962962962960e-2 * t12 * t127 - 0.311e-1 * (-0.80e2 / 0.81e2 * t7 * t73 + 0.80e2 / 0.81e2 * t68) * t23 * t2 - 0.31100000000000000001e-1 * t83 * t52 * t44 + 0.31100000000000000001e-1 * t84 * t14 - 0.20733333333333333334e-1 * t47 * t93 * t80 + 0.62200000000000000002e-1 * t87 * t35 - 0.41466666666666666668e-1 * t48 * t39 - 0.69111111111111111113e-2 * t22 / t148 * t127 + 0.34555555555555555557e-1 * t94 * t68 - 0.59896296296296296299e-1 * t53 * t73 + 0.32251851851851851854e-1 * t24 * t77;
286 if(v4rho4 != NULL && (p->info->flags & XC_FLAGS_HAVE_LXC))
287 v4rho4[0] = -0.56328040085333333332e-5 * t69 + 0.40091131733333333332e-3 * t74 - 0.83225955555555555555e-2 * t78 - 0.1244e0 * t85 - 0.82933333333333333334e-1 * t88 + 0.82933333333333333334e-1 * t90 - 0.27644444444444444444e-1 * t95 + 0.82933333333333333334e-1 * t97 - 0.55288888888888888890e-1 * t99 + rho[0] * t159;
288
289 #ifndef XC_DONT_COMPILE_MXC
290
291 if(order < 5) return;
292
293
294 #endif
295
296 #endif
297
298 #endif
299
300 #endif
301
302 #endif
303
304
305 }
306
307
308 static inline void
func_pol(const xc_func_type * p,int order,const double * rho,double * zk,LDA_OUT_PARAMS_NO_EXC (double *))309 func_pol(const xc_func_type *p, int order, const double *rho, double *zk, LDA_OUT_PARAMS_NO_EXC(double *))
310 {
311
312 #ifndef XC_DONT_COMPILE_EXC
313 double t1, t2, t3, t5, t7, t8, t10, t11;
314
315 #ifndef XC_DONT_COMPILE_VXC
316 double t12, t13, t15, t16, t19, t23, t24, t25;
317 double t26;
318
319 #ifndef XC_DONT_COMPILE_FXC
320 double t33, t34, t36, t37, t40, t41, t45, t48;
321 double t49, t50, t52, t53, t54, t55, t57;
322
323 #ifndef XC_DONT_COMPILE_KXC
324 double t66, t67, t68, t69, t70, t72, t74, t75;
325 double t78, t79, t81, t84, t85, t86, t88, t89;
326 double t91, t94, t95, t96, t98, t100;
327
328 #ifndef XC_DONT_COMPILE_LXC
329 double t115, t128, t149, t160;
330 #endif
331
332 #endif
333
334 #endif
335
336 #endif
337
338 #endif
339
340
341
342 t1 = rho[0] + rho[1];
343 t2 = POW_1_3(t1);
344 t3 = 0.1e1 / t2;
345 t5 = 0.1e1 + 0.56200000000000000000e-1 * t3;
346 t7 = 0.357e-1 / t5;
347 t8 = t3 + 0.239e1;
348 t10 = log(t8 * t2);
349 t11 = 0.311e-1 * t10;
350 if(zk != NULL && (p->info->flags & XC_FLAGS_HAVE_EXC))
351 zk[0] = -t7 - t11;
352
353 #ifndef XC_DONT_COMPILE_VXC
354
355 if(order < 1) return;
356
357
358 t12 = t5 * t5;
359 t13 = 0.1e1 / t12;
360 t15 = 0.1e1 / t2 / t1;
361 t16 = t13 * t15;
362 t19 = t2 * t2;
363 t23 = -0.1e1 / t1 / 0.3e1 + t8 / t19 / 0.3e1;
364 t24 = 0.1e1 / t8;
365 t25 = t23 * t24;
366 t26 = t25 * t3;
367 if(vrho != NULL && (p->info->flags & XC_FLAGS_HAVE_VXC))
368 vrho[0] = -t7 - t11 + t1 * (-0.66877999999999999999e-3 * t16 - 0.311e-1 * t26);
369
370 if(vrho != NULL && (p->info->flags & XC_FLAGS_HAVE_VXC))
371 vrho[1] = vrho[0];
372
373 #ifndef XC_DONT_COMPILE_FXC
374
375 if(order < 2) return;
376
377
378 t33 = 0.1e1 / t12 / t5;
379 t34 = t1 * t1;
380 t36 = 0.1e1 / t19 / t34;
381 t37 = t33 * t36;
382 t40 = 0.1e1 / t2 / t34;
383 t41 = t13 * t40;
384 t45 = 0.1e1 / t19 / t1;
385 t48 = 0.2e1 / 0.9e1 / t34 - 0.2e1 / 0.9e1 * t8 * t45;
386 t49 = t48 * t24;
387 t50 = t49 * t3;
388 t52 = t8 * t8;
389 t53 = 0.1e1 / t52;
390 t54 = t23 * t53;
391 t55 = t54 * t45;
392 t57 = t25 * t15;
393 if(v2rho2 != NULL && (p->info->flags & XC_FLAGS_HAVE_FXC))
394 v2rho2[0] = -0.13375600000000000000e-2 * t16 - 0.622e-1 * t26 + t1 * (-0.25056957333333333333e-4 * t37 + 0.89170666666666666665e-3 * t41 - 0.311e-1 * t50 - 0.10366666666666666667e-1 * t55 + 0.10366666666666666667e-1 * t57);
395
396 if(v2rho2 != NULL && (p->info->flags & XC_FLAGS_HAVE_FXC))
397 v2rho2[1] = v2rho2[0];
398
399 if(v2rho2 != NULL && (p->info->flags & XC_FLAGS_HAVE_FXC))
400 v2rho2[2] = v2rho2[1];
401
402 #ifndef XC_DONT_COMPILE_KXC
403
404 if(order < 3) return;
405
406
407 t66 = t12 * t12;
408 t67 = 0.1e1 / t66;
409 t68 = t34 * t34;
410 t69 = 0.1e1 / t68;
411 t70 = t67 * t69;
412 t72 = t34 * t1;
413 t74 = 0.1e1 / t19 / t72;
414 t75 = t33 * t74;
415 t78 = 0.1e1 / t2 / t72;
416 t79 = t13 * t78;
417 t81 = 0.1e1 / t72;
418 t84 = 0.10e2 / 0.27e2 * t8 * t36 - 0.10e2 / 0.27e2 * t81;
419 t85 = t84 * t24;
420 t86 = t85 * t3;
421 t88 = t48 * t53;
422 t89 = t88 * t45;
423 t91 = t49 * t15;
424 t94 = 0.1e1 / t52 / t8;
425 t95 = t23 * t94;
426 t96 = t95 * t81;
427 t98 = t54 * t36;
428 t100 = t25 * t40;
429 if(v3rho3 != NULL && (p->info->flags & XC_FLAGS_HAVE_KXC))
430 v3rho3[0] = -0.75170871999999999999e-4 * t37 + 0.26751200000000000000e-2 * t41 - 0.933e-1 * t50 - 0.31100000000000000000e-1 * t55 + 0.31100000000000000000e-1 * t57 + t1 * (-0.14082010021333333333e-5 * t70 + 0.10022782933333333333e-3 * t75 - 0.20806488888888888888e-2 * t79 - 0.311e-1 * t86 - 0.20733333333333333334e-1 * t89 + 0.20733333333333333334e-1 * t91 - 0.69111111111111111113e-2 * t96 + 0.20733333333333333334e-1 * t98 - 0.13822222222222222223e-1 * t100);
431
432 if(v3rho3 != NULL && (p->info->flags & XC_FLAGS_HAVE_KXC))
433 v3rho3[1] = v3rho3[0];
434
435 if(v3rho3 != NULL && (p->info->flags & XC_FLAGS_HAVE_KXC))
436 v3rho3[2] = v3rho3[1];
437
438 if(v3rho3 != NULL && (p->info->flags & XC_FLAGS_HAVE_KXC))
439 v3rho3[3] = v3rho3[2];
440
441 #ifndef XC_DONT_COMPILE_LXC
442
443 if(order < 4) return;
444
445
446 t115 = t68 * t1;
447 t128 = 0.1e1 / t2 / t68;
448 t149 = t52 * t52;
449 t160 = -0.10552119509319111111e-6 / t66 / t5 / t2 / t115 + 0.11265608017066666666e-4 * t67 / t115 - 0.44545701925925925925e-3 * t33 / t19 / t68 + 0.69354962962962962960e-2 * t13 * t128 - 0.311e-1 * (-0.80e2 / 0.81e2 * t8 * t74 + 0.80e2 / 0.81e2 * t69) * t24 * t3 - 0.31100000000000000001e-1 * t84 * t53 * t45 + 0.31100000000000000001e-1 * t85 * t15 - 0.20733333333333333334e-1 * t48 * t94 * t81 + 0.62200000000000000002e-1 * t88 * t36 - 0.41466666666666666668e-1 * t49 * t40 - 0.69111111111111111113e-2 * t23 / t149 * t128 + 0.34555555555555555557e-1 * t95 * t69 - 0.59896296296296296299e-1 * t54 * t74 + 0.32251851851851851854e-1 * t25 * t78;
450 if(v4rho4 != NULL && (p->info->flags & XC_FLAGS_HAVE_LXC))
451 v4rho4[0] = -0.56328040085333333332e-5 * t70 + 0.40091131733333333332e-3 * t75 - 0.83225955555555555555e-2 * t79 - 0.1244e0 * t86 - 0.82933333333333333334e-1 * t89 + 0.82933333333333333334e-1 * t91 - 0.27644444444444444444e-1 * t96 + 0.82933333333333333334e-1 * t98 - 0.55288888888888888890e-1 * t100 + t1 * t160;
452
453 if(v4rho4 != NULL && (p->info->flags & XC_FLAGS_HAVE_LXC))
454 v4rho4[1] = v4rho4[0];
455
456 if(v4rho4 != NULL && (p->info->flags & XC_FLAGS_HAVE_LXC))
457 v4rho4[2] = v4rho4[1];
458
459 if(v4rho4 != NULL && (p->info->flags & XC_FLAGS_HAVE_LXC))
460 v4rho4[3] = v4rho4[2];
461
462 if(v4rho4 != NULL && (p->info->flags & XC_FLAGS_HAVE_LXC))
463 v4rho4[4] = v4rho4[3];
464
465 #ifndef XC_DONT_COMPILE_MXC
466
467 if(order < 5) return;
468
469
470 #endif
471
472 #endif
473
474 #endif
475
476 #endif
477
478 #endif
479
480
481 }
482
483