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