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_rpa.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, t3, t4, t5, t6, t7, t9, t10;
24 double t12, t13, t16, t17;
25
26 #ifndef XC_DONT_COMPILE_VXC
27 double t18, t22, t24, t26;
28
29 #ifndef XC_DONT_COMPILE_FXC
30 double t33, t34, t38, t40, t42;
31
32 #ifndef XC_DONT_COMPILE_KXC
33 double t49, t50, t54, t56, t58;
34
35 #ifndef XC_DONT_COMPILE_LXC
36 double t65, t70;
37 #endif
38
39 #endif
40
41 #endif
42
43 #endif
44
45 #endif
46
47
48
49 t1 = M_CBRT3;
50 t3 = POW_1_3(0.1e1 / M_PI);
51 t4 = t1 * t3;
52 t5 = M_CBRT4;
53 t6 = t5 * t5;
54 t7 = POW_1_3(rho[0]);
55 t9 = t6 / t7;
56 t10 = t4 * t9;
57 t12 = log(t10 / 0.4e1);
58 t13 = 0.311e-1 * t12;
59 t16 = 0.22500000000000000000e-2 * t4 * t9 * t12;
60 t17 = 0.42500000000000000000e-2 * t10;
61 if(zk != NULL && (p->info->flags & XC_FLAGS_HAVE_EXC))
62 zk[0] = t13 - 0.48e-1 + t16 - t17;
63
64 #ifndef XC_DONT_COMPILE_VXC
65
66 if(order < 1) return;
67
68
69 t18 = 0.1e1 / rho[0];
70 t22 = t6 / t7 / rho[0];
71 t24 = t4 * t22 * t12;
72 t26 = t4 * t22;
73 if(vrho != NULL && (p->info->flags & XC_FLAGS_HAVE_VXC))
74 vrho[0] = t13 - 0.48e-1 + t16 - t17 + rho[0] * (-0.10366666666666666667e-1 * t18 - 0.75000000000000000000e-3 * t24 + 0.66666666666666666670e-3 * t26);
75
76 #ifndef XC_DONT_COMPILE_FXC
77
78 if(order < 2) return;
79
80
81 t33 = rho[0] * rho[0];
82 t34 = 0.1e1 / t33;
83 t38 = t6 / t7 / t33;
84 t40 = t4 * t38 * t12;
85 t42 = t4 * t38;
86 if(v2rho2 != NULL && (p->info->flags & XC_FLAGS_HAVE_FXC))
87 v2rho2[0] = -0.20733333333333333334e-1 * t18 - 0.15000000000000000000e-2 * t24 + 0.13333333333333333334e-2 * t26 + rho[0] * (0.10366666666666666667e-1 * t34 + 0.10000000000000000000e-2 * t40 - 0.63888888888888888893e-3 * t42);
88
89 #ifndef XC_DONT_COMPILE_KXC
90
91 if(order < 3) return;
92
93
94 t49 = t33 * rho[0];
95 t50 = 0.1e1 / t49;
96 t54 = t6 / t7 / t49;
97 t56 = t4 * t54 * t12;
98 t58 = t4 * t54;
99 if(v3rho3 != NULL && (p->info->flags & XC_FLAGS_HAVE_KXC))
100 v3rho3[0] = 0.31100000000000000001e-1 * t34 + 0.30000000000000000000e-2 * t40 - 0.19166666666666666668e-2 * t42 + rho[0] * (-0.20733333333333333334e-1 * t50 - 0.23333333333333333333e-2 * t56 + 0.11574074074074074075e-2 * t58);
101
102 #ifndef XC_DONT_COMPILE_LXC
103
104 if(order < 4) return;
105
106
107 t65 = t33 * t33;
108 t70 = t6 / t7 / t65;
109 if(v4rho4 != NULL && (p->info->flags & XC_FLAGS_HAVE_LXC))
110 v4rho4[0] = -0.82933333333333333336e-1 * t50 - 0.93333333333333333333e-2 * t56 + 0.46296296296296296300e-2 * t58 + rho[0] * (0.62200000000000000002e-1 / t65 + 0.77777777777777777777e-2 * t4 * t70 * t12 - 0.30802469135802469139e-2 * t4 * t70);
111
112 #ifndef XC_DONT_COMPILE_MXC
113
114 if(order < 5) return;
115
116
117 #endif
118
119 #endif
120
121 #endif
122
123 #endif
124
125 #endif
126
127
128 }
129
130
131 static inline void
func_ferr(const xc_func_type * p,int order,const double * rho,double * zk,LDA_OUT_PARAMS_NO_EXC (double *))132 func_ferr(const xc_func_type *p, int order, const double *rho, double *zk, LDA_OUT_PARAMS_NO_EXC(double *))
133 {
134
135 #ifndef XC_DONT_COMPILE_EXC
136 double t1, t3, t4, t5, t6, t7, t9, t10;
137 double t12, t13, t16, t17;
138
139 #ifndef XC_DONT_COMPILE_VXC
140 double t18, t22, t24, t26;
141
142 #ifndef XC_DONT_COMPILE_FXC
143 double t33, t34, t38, t40, t42;
144
145 #ifndef XC_DONT_COMPILE_KXC
146 double t49, t50, t54, t56, t58;
147
148 #ifndef XC_DONT_COMPILE_LXC
149 double t65, t70;
150 #endif
151
152 #endif
153
154 #endif
155
156 #endif
157
158 #endif
159
160
161
162 t1 = M_CBRT3;
163 t3 = POW_1_3(0.1e1 / M_PI);
164 t4 = t1 * t3;
165 t5 = M_CBRT4;
166 t6 = t5 * t5;
167 t7 = POW_1_3(rho[0]);
168 t9 = t6 / t7;
169 t10 = t4 * t9;
170 t12 = log(t10 / 0.4e1);
171 t13 = 0.311e-1 * t12;
172 t16 = 0.22500000000000000000e-2 * t4 * t9 * t12;
173 t17 = 0.42500000000000000000e-2 * t10;
174 if(zk != NULL && (p->info->flags & XC_FLAGS_HAVE_EXC))
175 zk[0] = t13 - 0.48e-1 + t16 - t17;
176
177 #ifndef XC_DONT_COMPILE_VXC
178
179 if(order < 1) return;
180
181
182 t18 = 0.1e1 / rho[0];
183 t22 = t6 / t7 / rho[0];
184 t24 = t4 * t22 * t12;
185 t26 = t4 * t22;
186 if(vrho != NULL && (p->info->flags & XC_FLAGS_HAVE_VXC))
187 vrho[0] = t13 - 0.48e-1 + t16 - t17 + rho[0] * (-0.10366666666666666667e-1 * t18 - 0.75000000000000000000e-3 * t24 + 0.66666666666666666670e-3 * t26);
188
189 #ifndef XC_DONT_COMPILE_FXC
190
191 if(order < 2) return;
192
193
194 t33 = rho[0] * rho[0];
195 t34 = 0.1e1 / t33;
196 t38 = t6 / t7 / t33;
197 t40 = t4 * t38 * t12;
198 t42 = t4 * t38;
199 if(v2rho2 != NULL && (p->info->flags & XC_FLAGS_HAVE_FXC))
200 v2rho2[0] = -0.20733333333333333334e-1 * t18 - 0.15000000000000000000e-2 * t24 + 0.13333333333333333334e-2 * t26 + rho[0] * (0.10366666666666666667e-1 * t34 + 0.10000000000000000000e-2 * t40 - 0.63888888888888888893e-3 * t42);
201
202 #ifndef XC_DONT_COMPILE_KXC
203
204 if(order < 3) return;
205
206
207 t49 = t33 * rho[0];
208 t50 = 0.1e1 / t49;
209 t54 = t6 / t7 / t49;
210 t56 = t4 * t54 * t12;
211 t58 = t4 * t54;
212 if(v3rho3 != NULL && (p->info->flags & XC_FLAGS_HAVE_KXC))
213 v3rho3[0] = 0.31100000000000000001e-1 * t34 + 0.30000000000000000000e-2 * t40 - 0.19166666666666666668e-2 * t42 + rho[0] * (-0.20733333333333333334e-1 * t50 - 0.23333333333333333333e-2 * t56 + 0.11574074074074074075e-2 * t58);
214
215 #ifndef XC_DONT_COMPILE_LXC
216
217 if(order < 4) return;
218
219
220 t65 = t33 * t33;
221 t70 = t6 / t7 / t65;
222 if(v4rho4 != NULL && (p->info->flags & XC_FLAGS_HAVE_LXC))
223 v4rho4[0] = -0.82933333333333333336e-1 * t50 - 0.93333333333333333333e-2 * t56 + 0.46296296296296296300e-2 * t58 + rho[0] * (0.62200000000000000002e-1 / t65 + 0.77777777777777777777e-2 * t4 * t70 * t12 - 0.30802469135802469139e-2 * t4 * t70);
224
225 #ifndef XC_DONT_COMPILE_MXC
226
227 if(order < 5) return;
228
229
230 #endif
231
232 #endif
233
234 #endif
235
236 #endif
237
238 #endif
239
240
241 }
242
243
244 static inline void
func_pol(const xc_func_type * p,int order,const double * rho,double * zk,LDA_OUT_PARAMS_NO_EXC (double *))245 func_pol(const xc_func_type *p, int order, const double *rho, double *zk, LDA_OUT_PARAMS_NO_EXC(double *))
246 {
247
248 #ifndef XC_DONT_COMPILE_EXC
249 double t1, t3, t4, t5, t6, t7, t8, t10;
250 double t11, t13, t14, t17, t18;
251
252 #ifndef XC_DONT_COMPILE_VXC
253 double t19, t23, t25, t27;
254
255 #ifndef XC_DONT_COMPILE_FXC
256 double t34, t35, t39, t41, t43;
257
258 #ifndef XC_DONT_COMPILE_KXC
259 double t50, t51, t55, t57, t59;
260
261 #ifndef XC_DONT_COMPILE_LXC
262 double t66, t71;
263 #endif
264
265 #endif
266
267 #endif
268
269 #endif
270
271 #endif
272
273
274
275 t1 = M_CBRT3;
276 t3 = POW_1_3(0.1e1 / M_PI);
277 t4 = t1 * t3;
278 t5 = M_CBRT4;
279 t6 = t5 * t5;
280 t7 = rho[0] + rho[1];
281 t8 = POW_1_3(t7);
282 t10 = t6 / t8;
283 t11 = t4 * t10;
284 t13 = log(t11 / 0.4e1);
285 t14 = 0.311e-1 * t13;
286 t17 = 0.22500000000000000000e-2 * t4 * t10 * t13;
287 t18 = 0.42500000000000000000e-2 * t11;
288 if(zk != NULL && (p->info->flags & XC_FLAGS_HAVE_EXC))
289 zk[0] = t14 - 0.48e-1 + t17 - t18;
290
291 #ifndef XC_DONT_COMPILE_VXC
292
293 if(order < 1) return;
294
295
296 t19 = 0.1e1 / t7;
297 t23 = t6 / t8 / t7;
298 t25 = t4 * t23 * t13;
299 t27 = t4 * t23;
300 if(vrho != NULL && (p->info->flags & XC_FLAGS_HAVE_VXC))
301 vrho[0] = t14 - 0.48e-1 + t17 - t18 + t7 * (-0.10366666666666666667e-1 * t19 - 0.75000000000000000000e-3 * t25 + 0.66666666666666666670e-3 * t27);
302
303 if(vrho != NULL && (p->info->flags & XC_FLAGS_HAVE_VXC))
304 vrho[1] = vrho[0];
305
306 #ifndef XC_DONT_COMPILE_FXC
307
308 if(order < 2) return;
309
310
311 t34 = t7 * t7;
312 t35 = 0.1e1 / t34;
313 t39 = t6 / t8 / t34;
314 t41 = t4 * t39 * t13;
315 t43 = t4 * t39;
316 if(v2rho2 != NULL && (p->info->flags & XC_FLAGS_HAVE_FXC))
317 v2rho2[0] = -0.20733333333333333334e-1 * t19 - 0.15000000000000000000e-2 * t25 + 0.13333333333333333334e-2 * t27 + t7 * (0.10366666666666666667e-1 * t35 + 0.10000000000000000000e-2 * t41 - 0.63888888888888888893e-3 * t43);
318
319 if(v2rho2 != NULL && (p->info->flags & XC_FLAGS_HAVE_FXC))
320 v2rho2[1] = v2rho2[0];
321
322 if(v2rho2 != NULL && (p->info->flags & XC_FLAGS_HAVE_FXC))
323 v2rho2[2] = v2rho2[1];
324
325 #ifndef XC_DONT_COMPILE_KXC
326
327 if(order < 3) return;
328
329
330 t50 = t34 * t7;
331 t51 = 0.1e1 / t50;
332 t55 = t6 / t8 / t50;
333 t57 = t4 * t55 * t13;
334 t59 = t4 * t55;
335 if(v3rho3 != NULL && (p->info->flags & XC_FLAGS_HAVE_KXC))
336 v3rho3[0] = 0.31100000000000000001e-1 * t35 + 0.30000000000000000000e-2 * t41 - 0.19166666666666666668e-2 * t43 + t7 * (-0.20733333333333333334e-1 * t51 - 0.23333333333333333333e-2 * t57 + 0.11574074074074074075e-2 * t59);
337
338 if(v3rho3 != NULL && (p->info->flags & XC_FLAGS_HAVE_KXC))
339 v3rho3[1] = v3rho3[0];
340
341 if(v3rho3 != NULL && (p->info->flags & XC_FLAGS_HAVE_KXC))
342 v3rho3[2] = v3rho3[1];
343
344 if(v3rho3 != NULL && (p->info->flags & XC_FLAGS_HAVE_KXC))
345 v3rho3[3] = v3rho3[2];
346
347 #ifndef XC_DONT_COMPILE_LXC
348
349 if(order < 4) return;
350
351
352 t66 = t34 * t34;
353 t71 = t6 / t8 / t66;
354 if(v4rho4 != NULL && (p->info->flags & XC_FLAGS_HAVE_LXC))
355 v4rho4[0] = -0.82933333333333333336e-1 * t51 - 0.93333333333333333333e-2 * t57 + 0.46296296296296296300e-2 * t59 + t7 * (0.62200000000000000002e-1 / t66 + 0.77777777777777777777e-2 * t4 * t71 * t13 - 0.30802469135802469139e-2 * t4 * t71);
356
357 if(v4rho4 != NULL && (p->info->flags & XC_FLAGS_HAVE_LXC))
358 v4rho4[1] = v4rho4[0];
359
360 if(v4rho4 != NULL && (p->info->flags & XC_FLAGS_HAVE_LXC))
361 v4rho4[2] = v4rho4[1];
362
363 if(v4rho4 != NULL && (p->info->flags & XC_FLAGS_HAVE_LXC))
364 v4rho4[3] = v4rho4[2];
365
366 if(v4rho4 != NULL && (p->info->flags & XC_FLAGS_HAVE_LXC))
367 v4rho4[4] = v4rho4[3];
368
369 #ifndef XC_DONT_COMPILE_MXC
370
371 if(order < 5) return;
372
373
374 #endif
375
376 #endif
377
378 #endif
379
380 #endif
381
382 #endif
383
384
385 }
386
387