130
130
double basisvalues[15] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
132
132
// Declare helper variables.
139
133
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
140
134
double tmp1 = (1.0 - Y)/2.0;
141
135
double tmp2 = tmp1*tmp1;
143
137
// Compute basisvalues.
144
138
basisvalues[0] = 1.0;
145
139
basisvalues[1] = tmp0;
146
for (unsigned int r = 1; r < 4; r++)
148
rr = (r + 1)*((r + 1) + 1)/2;
150
tt = (r - 1)*((r - 1) + 1)/2;
151
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
152
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
153
}// end loop over 'r'
154
for (unsigned int r = 0; r < 4; r++)
156
rr = (r + 1)*(r + 1 + 1)/2 + 1;
158
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
159
}// end loop over 'r'
160
for (unsigned int r = 0; r < 3; r++)
162
for (unsigned int s = 1; s < 4 - r; s++)
164
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
165
ss = (r + s)*(r + s + 1)/2 + s;
166
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
167
tmp5 = (2.0 + 2.0*r + 2.0*s)*(3.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + s)*(2.0 + s + 2.0*r));
168
tmp6 = (1.0 + 4.0*r*r + 4.0*r)*(2.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
169
tmp7 = (1.0 + s + 2.0*r)*(3.0 + 2.0*r + 2.0*s)*s/((1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
170
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
171
}// end loop over 's'
172
}// end loop over 'r'
173
for (unsigned int r = 0; r < 5; r++)
175
for (unsigned int s = 0; s < 5 - r; s++)
177
rr = (r + s)*(r + s + 1)/2 + s;
178
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
179
}// end loop over 's'
180
}// end loop over 'r'
140
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
141
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
142
basisvalues[10] = basisvalues[6]*1.75*tmp0 - basisvalues[3]*0.75*tmp2;
143
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
144
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
145
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
146
basisvalues[11] = basisvalues[6]*(3.5 + 4.5*Y);
147
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
148
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
149
basisvalues[14] = basisvalues[9]*(0.028571429 + Y*1.8) - basisvalues[5]*0.77142857;
150
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
151
basisvalues[13] = basisvalues[8]*(0.28571429 + Y*2.0) - basisvalues[4]*0.71428571;
152
basisvalues[12] = basisvalues[7]*(1.0204082 + Y*2.5714286) - basisvalues[3]*0.55102041;
153
basisvalues[0] *= std::sqrt(0.5);
154
basisvalues[2] *= std::sqrt(1.0);
155
basisvalues[5] *= std::sqrt(1.5);
156
basisvalues[9] *= std::sqrt(2.0);
157
basisvalues[14] *= std::sqrt(2.5);
158
basisvalues[1] *= std::sqrt(3.0);
159
basisvalues[4] *= std::sqrt(4.5);
160
basisvalues[8] *= std::sqrt(6.0);
161
basisvalues[13] *= std::sqrt(7.5);
162
basisvalues[3] *= std::sqrt(7.5);
163
basisvalues[7] *= std::sqrt(10.0);
164
basisvalues[12] *= std::sqrt(12.5);
165
basisvalues[6] *= std::sqrt(14.0);
166
basisvalues[11] *= std::sqrt(17.5);
167
basisvalues[10] *= std::sqrt(22.5);
182
169
// Table(s) of coefficients.
183
170
static const double coefficients0[15] = \
197
184
double basisvalues[15] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
199
186
// Declare helper variables.
206
187
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
207
188
double tmp1 = (1.0 - Y)/2.0;
208
189
double tmp2 = tmp1*tmp1;
210
191
// Compute basisvalues.
211
192
basisvalues[0] = 1.0;
212
193
basisvalues[1] = tmp0;
213
for (unsigned int r = 1; r < 4; r++)
215
rr = (r + 1)*((r + 1) + 1)/2;
217
tt = (r - 1)*((r - 1) + 1)/2;
218
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
219
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
220
}// end loop over 'r'
221
for (unsigned int r = 0; r < 4; r++)
223
rr = (r + 1)*(r + 1 + 1)/2 + 1;
225
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
226
}// end loop over 'r'
227
for (unsigned int r = 0; r < 3; r++)
229
for (unsigned int s = 1; s < 4 - r; s++)
231
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
232
ss = (r + s)*(r + s + 1)/2 + s;
233
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
234
tmp5 = (2.0 + 2.0*r + 2.0*s)*(3.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + s)*(2.0 + s + 2.0*r));
235
tmp6 = (1.0 + 4.0*r*r + 4.0*r)*(2.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
236
tmp7 = (1.0 + s + 2.0*r)*(3.0 + 2.0*r + 2.0*s)*s/((1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
237
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
238
}// end loop over 's'
239
}// end loop over 'r'
240
for (unsigned int r = 0; r < 5; r++)
242
for (unsigned int s = 0; s < 5 - r; s++)
244
rr = (r + s)*(r + s + 1)/2 + s;
245
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
246
}// end loop over 's'
247
}// end loop over 'r'
194
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
195
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
196
basisvalues[10] = basisvalues[6]*1.75*tmp0 - basisvalues[3]*0.75*tmp2;
197
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
198
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
199
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
200
basisvalues[11] = basisvalues[6]*(3.5 + 4.5*Y);
201
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
202
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
203
basisvalues[14] = basisvalues[9]*(0.028571429 + Y*1.8) - basisvalues[5]*0.77142857;
204
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
205
basisvalues[13] = basisvalues[8]*(0.28571429 + Y*2.0) - basisvalues[4]*0.71428571;
206
basisvalues[12] = basisvalues[7]*(1.0204082 + Y*2.5714286) - basisvalues[3]*0.55102041;
207
basisvalues[0] *= std::sqrt(0.5);
208
basisvalues[2] *= std::sqrt(1.0);
209
basisvalues[5] *= std::sqrt(1.5);
210
basisvalues[9] *= std::sqrt(2.0);
211
basisvalues[14] *= std::sqrt(2.5);
212
basisvalues[1] *= std::sqrt(3.0);
213
basisvalues[4] *= std::sqrt(4.5);
214
basisvalues[8] *= std::sqrt(6.0);
215
basisvalues[13] *= std::sqrt(7.5);
216
basisvalues[3] *= std::sqrt(7.5);
217
basisvalues[7] *= std::sqrt(10.0);
218
basisvalues[12] *= std::sqrt(12.5);
219
basisvalues[6] *= std::sqrt(14.0);
220
basisvalues[11] *= std::sqrt(17.5);
221
basisvalues[10] *= std::sqrt(22.5);
249
223
// Table(s) of coefficients.
250
224
static const double coefficients0[15] = \
264
238
double basisvalues[15] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
266
240
// Declare helper variables.
273
241
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
274
242
double tmp1 = (1.0 - Y)/2.0;
275
243
double tmp2 = tmp1*tmp1;
277
245
// Compute basisvalues.
278
246
basisvalues[0] = 1.0;
279
247
basisvalues[1] = tmp0;
280
for (unsigned int r = 1; r < 4; r++)
282
rr = (r + 1)*((r + 1) + 1)/2;
284
tt = (r - 1)*((r - 1) + 1)/2;
285
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
286
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
287
}// end loop over 'r'
288
for (unsigned int r = 0; r < 4; r++)
290
rr = (r + 1)*(r + 1 + 1)/2 + 1;
292
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
293
}// end loop over 'r'
294
for (unsigned int r = 0; r < 3; r++)
296
for (unsigned int s = 1; s < 4 - r; s++)
298
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
299
ss = (r + s)*(r + s + 1)/2 + s;
300
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
301
tmp5 = (2.0 + 2.0*r + 2.0*s)*(3.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + s)*(2.0 + s + 2.0*r));
302
tmp6 = (1.0 + 4.0*r*r + 4.0*r)*(2.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
303
tmp7 = (1.0 + s + 2.0*r)*(3.0 + 2.0*r + 2.0*s)*s/((1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
304
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
305
}// end loop over 's'
306
}// end loop over 'r'
307
for (unsigned int r = 0; r < 5; r++)
309
for (unsigned int s = 0; s < 5 - r; s++)
311
rr = (r + s)*(r + s + 1)/2 + s;
312
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
313
}// end loop over 's'
314
}// end loop over 'r'
248
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
249
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
250
basisvalues[10] = basisvalues[6]*1.75*tmp0 - basisvalues[3]*0.75*tmp2;
251
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
252
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
253
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
254
basisvalues[11] = basisvalues[6]*(3.5 + 4.5*Y);
255
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
256
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
257
basisvalues[14] = basisvalues[9]*(0.028571429 + Y*1.8) - basisvalues[5]*0.77142857;
258
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
259
basisvalues[13] = basisvalues[8]*(0.28571429 + Y*2.0) - basisvalues[4]*0.71428571;
260
basisvalues[12] = basisvalues[7]*(1.0204082 + Y*2.5714286) - basisvalues[3]*0.55102041;
261
basisvalues[0] *= std::sqrt(0.5);
262
basisvalues[2] *= std::sqrt(1.0);
263
basisvalues[5] *= std::sqrt(1.5);
264
basisvalues[9] *= std::sqrt(2.0);
265
basisvalues[14] *= std::sqrt(2.5);
266
basisvalues[1] *= std::sqrt(3.0);
267
basisvalues[4] *= std::sqrt(4.5);
268
basisvalues[8] *= std::sqrt(6.0);
269
basisvalues[13] *= std::sqrt(7.5);
270
basisvalues[3] *= std::sqrt(7.5);
271
basisvalues[7] *= std::sqrt(10.0);
272
basisvalues[12] *= std::sqrt(12.5);
273
basisvalues[6] *= std::sqrt(14.0);
274
basisvalues[11] *= std::sqrt(17.5);
275
basisvalues[10] *= std::sqrt(22.5);
316
277
// Table(s) of coefficients.
317
278
static const double coefficients0[15] = \
331
292
double basisvalues[15] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
333
294
// Declare helper variables.
340
295
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
341
296
double tmp1 = (1.0 - Y)/2.0;
342
297
double tmp2 = tmp1*tmp1;
344
299
// Compute basisvalues.
345
300
basisvalues[0] = 1.0;
346
301
basisvalues[1] = tmp0;
347
for (unsigned int r = 1; r < 4; r++)
349
rr = (r + 1)*((r + 1) + 1)/2;
351
tt = (r - 1)*((r - 1) + 1)/2;
352
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
353
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
354
}// end loop over 'r'
355
for (unsigned int r = 0; r < 4; r++)
357
rr = (r + 1)*(r + 1 + 1)/2 + 1;
359
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
360
}// end loop over 'r'
361
for (unsigned int r = 0; r < 3; r++)
363
for (unsigned int s = 1; s < 4 - r; s++)
365
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
366
ss = (r + s)*(r + s + 1)/2 + s;
367
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
368
tmp5 = (2.0 + 2.0*r + 2.0*s)*(3.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + s)*(2.0 + s + 2.0*r));
369
tmp6 = (1.0 + 4.0*r*r + 4.0*r)*(2.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
370
tmp7 = (1.0 + s + 2.0*r)*(3.0 + 2.0*r + 2.0*s)*s/((1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
371
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
372
}// end loop over 's'
373
}// end loop over 'r'
374
for (unsigned int r = 0; r < 5; r++)
376
for (unsigned int s = 0; s < 5 - r; s++)
378
rr = (r + s)*(r + s + 1)/2 + s;
379
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
380
}// end loop over 's'
381
}// end loop over 'r'
302
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
303
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
304
basisvalues[10] = basisvalues[6]*1.75*tmp0 - basisvalues[3]*0.75*tmp2;
305
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
306
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
307
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
308
basisvalues[11] = basisvalues[6]*(3.5 + 4.5*Y);
309
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
310
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
311
basisvalues[14] = basisvalues[9]*(0.028571429 + Y*1.8) - basisvalues[5]*0.77142857;
312
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
313
basisvalues[13] = basisvalues[8]*(0.28571429 + Y*2.0) - basisvalues[4]*0.71428571;
314
basisvalues[12] = basisvalues[7]*(1.0204082 + Y*2.5714286) - basisvalues[3]*0.55102041;
315
basisvalues[0] *= std::sqrt(0.5);
316
basisvalues[2] *= std::sqrt(1.0);
317
basisvalues[5] *= std::sqrt(1.5);
318
basisvalues[9] *= std::sqrt(2.0);
319
basisvalues[14] *= std::sqrt(2.5);
320
basisvalues[1] *= std::sqrt(3.0);
321
basisvalues[4] *= std::sqrt(4.5);
322
basisvalues[8] *= std::sqrt(6.0);
323
basisvalues[13] *= std::sqrt(7.5);
324
basisvalues[3] *= std::sqrt(7.5);
325
basisvalues[7] *= std::sqrt(10.0);
326
basisvalues[12] *= std::sqrt(12.5);
327
basisvalues[6] *= std::sqrt(14.0);
328
basisvalues[11] *= std::sqrt(17.5);
329
basisvalues[10] *= std::sqrt(22.5);
383
331
// Table(s) of coefficients.
384
332
static const double coefficients0[15] = \
398
346
double basisvalues[15] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
400
348
// Declare helper variables.
407
349
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
408
350
double tmp1 = (1.0 - Y)/2.0;
409
351
double tmp2 = tmp1*tmp1;
411
353
// Compute basisvalues.
412
354
basisvalues[0] = 1.0;
413
355
basisvalues[1] = tmp0;
414
for (unsigned int r = 1; r < 4; r++)
416
rr = (r + 1)*((r + 1) + 1)/2;
418
tt = (r - 1)*((r - 1) + 1)/2;
419
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
420
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
421
}// end loop over 'r'
422
for (unsigned int r = 0; r < 4; r++)
424
rr = (r + 1)*(r + 1 + 1)/2 + 1;
426
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
427
}// end loop over 'r'
428
for (unsigned int r = 0; r < 3; r++)
430
for (unsigned int s = 1; s < 4 - r; s++)
432
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
433
ss = (r + s)*(r + s + 1)/2 + s;
434
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
435
tmp5 = (2.0 + 2.0*r + 2.0*s)*(3.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + s)*(2.0 + s + 2.0*r));
436
tmp6 = (1.0 + 4.0*r*r + 4.0*r)*(2.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
437
tmp7 = (1.0 + s + 2.0*r)*(3.0 + 2.0*r + 2.0*s)*s/((1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
438
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
439
}// end loop over 's'
440
}// end loop over 'r'
441
for (unsigned int r = 0; r < 5; r++)
443
for (unsigned int s = 0; s < 5 - r; s++)
445
rr = (r + s)*(r + s + 1)/2 + s;
446
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
447
}// end loop over 's'
448
}// end loop over 'r'
356
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
357
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
358
basisvalues[10] = basisvalues[6]*1.75*tmp0 - basisvalues[3]*0.75*tmp2;
359
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
360
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
361
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
362
basisvalues[11] = basisvalues[6]*(3.5 + 4.5*Y);
363
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
364
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
365
basisvalues[14] = basisvalues[9]*(0.028571429 + Y*1.8) - basisvalues[5]*0.77142857;
366
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
367
basisvalues[13] = basisvalues[8]*(0.28571429 + Y*2.0) - basisvalues[4]*0.71428571;
368
basisvalues[12] = basisvalues[7]*(1.0204082 + Y*2.5714286) - basisvalues[3]*0.55102041;
369
basisvalues[0] *= std::sqrt(0.5);
370
basisvalues[2] *= std::sqrt(1.0);
371
basisvalues[5] *= std::sqrt(1.5);
372
basisvalues[9] *= std::sqrt(2.0);
373
basisvalues[14] *= std::sqrt(2.5);
374
basisvalues[1] *= std::sqrt(3.0);
375
basisvalues[4] *= std::sqrt(4.5);
376
basisvalues[8] *= std::sqrt(6.0);
377
basisvalues[13] *= std::sqrt(7.5);
378
basisvalues[3] *= std::sqrt(7.5);
379
basisvalues[7] *= std::sqrt(10.0);
380
basisvalues[12] *= std::sqrt(12.5);
381
basisvalues[6] *= std::sqrt(14.0);
382
basisvalues[11] *= std::sqrt(17.5);
383
basisvalues[10] *= std::sqrt(22.5);
450
385
// Table(s) of coefficients.
451
386
static const double coefficients0[15] = \
465
400
double basisvalues[15] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
467
402
// Declare helper variables.
474
403
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
475
404
double tmp1 = (1.0 - Y)/2.0;
476
405
double tmp2 = tmp1*tmp1;
478
407
// Compute basisvalues.
479
408
basisvalues[0] = 1.0;
480
409
basisvalues[1] = tmp0;
481
for (unsigned int r = 1; r < 4; r++)
483
rr = (r + 1)*((r + 1) + 1)/2;
485
tt = (r - 1)*((r - 1) + 1)/2;
486
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
487
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
488
}// end loop over 'r'
489
for (unsigned int r = 0; r < 4; r++)
491
rr = (r + 1)*(r + 1 + 1)/2 + 1;
493
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
494
}// end loop over 'r'
495
for (unsigned int r = 0; r < 3; r++)
497
for (unsigned int s = 1; s < 4 - r; s++)
499
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
500
ss = (r + s)*(r + s + 1)/2 + s;
501
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
502
tmp5 = (2.0 + 2.0*r + 2.0*s)*(3.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + s)*(2.0 + s + 2.0*r));
503
tmp6 = (1.0 + 4.0*r*r + 4.0*r)*(2.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
504
tmp7 = (1.0 + s + 2.0*r)*(3.0 + 2.0*r + 2.0*s)*s/((1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
505
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
506
}// end loop over 's'
507
}// end loop over 'r'
508
for (unsigned int r = 0; r < 5; r++)
510
for (unsigned int s = 0; s < 5 - r; s++)
512
rr = (r + s)*(r + s + 1)/2 + s;
513
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
514
}// end loop over 's'
515
}// end loop over 'r'
410
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
411
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
412
basisvalues[10] = basisvalues[6]*1.75*tmp0 - basisvalues[3]*0.75*tmp2;
413
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
414
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
415
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
416
basisvalues[11] = basisvalues[6]*(3.5 + 4.5*Y);
417
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
418
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
419
basisvalues[14] = basisvalues[9]*(0.028571429 + Y*1.8) - basisvalues[5]*0.77142857;
420
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
421
basisvalues[13] = basisvalues[8]*(0.28571429 + Y*2.0) - basisvalues[4]*0.71428571;
422
basisvalues[12] = basisvalues[7]*(1.0204082 + Y*2.5714286) - basisvalues[3]*0.55102041;
423
basisvalues[0] *= std::sqrt(0.5);
424
basisvalues[2] *= std::sqrt(1.0);
425
basisvalues[5] *= std::sqrt(1.5);
426
basisvalues[9] *= std::sqrt(2.0);
427
basisvalues[14] *= std::sqrt(2.5);
428
basisvalues[1] *= std::sqrt(3.0);
429
basisvalues[4] *= std::sqrt(4.5);
430
basisvalues[8] *= std::sqrt(6.0);
431
basisvalues[13] *= std::sqrt(7.5);
432
basisvalues[3] *= std::sqrt(7.5);
433
basisvalues[7] *= std::sqrt(10.0);
434
basisvalues[12] *= std::sqrt(12.5);
435
basisvalues[6] *= std::sqrt(14.0);
436
basisvalues[11] *= std::sqrt(17.5);
437
basisvalues[10] *= std::sqrt(22.5);
517
439
// Table(s) of coefficients.
518
440
static const double coefficients0[15] = \
532
454
double basisvalues[15] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
534
456
// Declare helper variables.
541
457
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
542
458
double tmp1 = (1.0 - Y)/2.0;
543
459
double tmp2 = tmp1*tmp1;
545
461
// Compute basisvalues.
546
462
basisvalues[0] = 1.0;
547
463
basisvalues[1] = tmp0;
548
for (unsigned int r = 1; r < 4; r++)
550
rr = (r + 1)*((r + 1) + 1)/2;
552
tt = (r - 1)*((r - 1) + 1)/2;
553
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
554
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
555
}// end loop over 'r'
556
for (unsigned int r = 0; r < 4; r++)
558
rr = (r + 1)*(r + 1 + 1)/2 + 1;
560
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
561
}// end loop over 'r'
562
for (unsigned int r = 0; r < 3; r++)
564
for (unsigned int s = 1; s < 4 - r; s++)
566
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
567
ss = (r + s)*(r + s + 1)/2 + s;
568
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
569
tmp5 = (2.0 + 2.0*r + 2.0*s)*(3.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + s)*(2.0 + s + 2.0*r));
570
tmp6 = (1.0 + 4.0*r*r + 4.0*r)*(2.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
571
tmp7 = (1.0 + s + 2.0*r)*(3.0 + 2.0*r + 2.0*s)*s/((1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
572
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
573
}// end loop over 's'
574
}// end loop over 'r'
575
for (unsigned int r = 0; r < 5; r++)
577
for (unsigned int s = 0; s < 5 - r; s++)
579
rr = (r + s)*(r + s + 1)/2 + s;
580
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
581
}// end loop over 's'
582
}// end loop over 'r'
464
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
465
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
466
basisvalues[10] = basisvalues[6]*1.75*tmp0 - basisvalues[3]*0.75*tmp2;
467
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
468
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
469
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
470
basisvalues[11] = basisvalues[6]*(3.5 + 4.5*Y);
471
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
472
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
473
basisvalues[14] = basisvalues[9]*(0.028571429 + Y*1.8) - basisvalues[5]*0.77142857;
474
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
475
basisvalues[13] = basisvalues[8]*(0.28571429 + Y*2.0) - basisvalues[4]*0.71428571;
476
basisvalues[12] = basisvalues[7]*(1.0204082 + Y*2.5714286) - basisvalues[3]*0.55102041;
477
basisvalues[0] *= std::sqrt(0.5);
478
basisvalues[2] *= std::sqrt(1.0);
479
basisvalues[5] *= std::sqrt(1.5);
480
basisvalues[9] *= std::sqrt(2.0);
481
basisvalues[14] *= std::sqrt(2.5);
482
basisvalues[1] *= std::sqrt(3.0);
483
basisvalues[4] *= std::sqrt(4.5);
484
basisvalues[8] *= std::sqrt(6.0);
485
basisvalues[13] *= std::sqrt(7.5);
486
basisvalues[3] *= std::sqrt(7.5);
487
basisvalues[7] *= std::sqrt(10.0);
488
basisvalues[12] *= std::sqrt(12.5);
489
basisvalues[6] *= std::sqrt(14.0);
490
basisvalues[11] *= std::sqrt(17.5);
491
basisvalues[10] *= std::sqrt(22.5);
584
493
// Table(s) of coefficients.
585
494
static const double coefficients0[15] = \
599
508
double basisvalues[15] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
601
510
// Declare helper variables.
608
511
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
609
512
double tmp1 = (1.0 - Y)/2.0;
610
513
double tmp2 = tmp1*tmp1;
612
515
// Compute basisvalues.
613
516
basisvalues[0] = 1.0;
614
517
basisvalues[1] = tmp0;
615
for (unsigned int r = 1; r < 4; r++)
617
rr = (r + 1)*((r + 1) + 1)/2;
619
tt = (r - 1)*((r - 1) + 1)/2;
620
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
621
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
622
}// end loop over 'r'
623
for (unsigned int r = 0; r < 4; r++)
625
rr = (r + 1)*(r + 1 + 1)/2 + 1;
627
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
628
}// end loop over 'r'
629
for (unsigned int r = 0; r < 3; r++)
631
for (unsigned int s = 1; s < 4 - r; s++)
633
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
634
ss = (r + s)*(r + s + 1)/2 + s;
635
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
636
tmp5 = (2.0 + 2.0*r + 2.0*s)*(3.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + s)*(2.0 + s + 2.0*r));
637
tmp6 = (1.0 + 4.0*r*r + 4.0*r)*(2.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
638
tmp7 = (1.0 + s + 2.0*r)*(3.0 + 2.0*r + 2.0*s)*s/((1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
639
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
640
}// end loop over 's'
641
}// end loop over 'r'
642
for (unsigned int r = 0; r < 5; r++)
644
for (unsigned int s = 0; s < 5 - r; s++)
646
rr = (r + s)*(r + s + 1)/2 + s;
647
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
648
}// end loop over 's'
649
}// end loop over 'r'
518
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
519
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
520
basisvalues[10] = basisvalues[6]*1.75*tmp0 - basisvalues[3]*0.75*tmp2;
521
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
522
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
523
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
524
basisvalues[11] = basisvalues[6]*(3.5 + 4.5*Y);
525
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
526
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
527
basisvalues[14] = basisvalues[9]*(0.028571429 + Y*1.8) - basisvalues[5]*0.77142857;
528
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
529
basisvalues[13] = basisvalues[8]*(0.28571429 + Y*2.0) - basisvalues[4]*0.71428571;
530
basisvalues[12] = basisvalues[7]*(1.0204082 + Y*2.5714286) - basisvalues[3]*0.55102041;
531
basisvalues[0] *= std::sqrt(0.5);
532
basisvalues[2] *= std::sqrt(1.0);
533
basisvalues[5] *= std::sqrt(1.5);
534
basisvalues[9] *= std::sqrt(2.0);
535
basisvalues[14] *= std::sqrt(2.5);
536
basisvalues[1] *= std::sqrt(3.0);
537
basisvalues[4] *= std::sqrt(4.5);
538
basisvalues[8] *= std::sqrt(6.0);
539
basisvalues[13] *= std::sqrt(7.5);
540
basisvalues[3] *= std::sqrt(7.5);
541
basisvalues[7] *= std::sqrt(10.0);
542
basisvalues[12] *= std::sqrt(12.5);
543
basisvalues[6] *= std::sqrt(14.0);
544
basisvalues[11] *= std::sqrt(17.5);
545
basisvalues[10] *= std::sqrt(22.5);
651
547
// Table(s) of coefficients.
652
548
static const double coefficients0[15] = \
666
562
double basisvalues[15] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
668
564
// Declare helper variables.
675
565
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
676
566
double tmp1 = (1.0 - Y)/2.0;
677
567
double tmp2 = tmp1*tmp1;
679
569
// Compute basisvalues.
680
570
basisvalues[0] = 1.0;
681
571
basisvalues[1] = tmp0;
682
for (unsigned int r = 1; r < 4; r++)
684
rr = (r + 1)*((r + 1) + 1)/2;
686
tt = (r - 1)*((r - 1) + 1)/2;
687
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
688
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
689
}// end loop over 'r'
690
for (unsigned int r = 0; r < 4; r++)
692
rr = (r + 1)*(r + 1 + 1)/2 + 1;
694
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
695
}// end loop over 'r'
696
for (unsigned int r = 0; r < 3; r++)
698
for (unsigned int s = 1; s < 4 - r; s++)
700
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
701
ss = (r + s)*(r + s + 1)/2 + s;
702
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
703
tmp5 = (2.0 + 2.0*r + 2.0*s)*(3.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + s)*(2.0 + s + 2.0*r));
704
tmp6 = (1.0 + 4.0*r*r + 4.0*r)*(2.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
705
tmp7 = (1.0 + s + 2.0*r)*(3.0 + 2.0*r + 2.0*s)*s/((1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
706
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
707
}// end loop over 's'
708
}// end loop over 'r'
709
for (unsigned int r = 0; r < 5; r++)
711
for (unsigned int s = 0; s < 5 - r; s++)
713
rr = (r + s)*(r + s + 1)/2 + s;
714
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
715
}// end loop over 's'
716
}// end loop over 'r'
572
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
573
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
574
basisvalues[10] = basisvalues[6]*1.75*tmp0 - basisvalues[3]*0.75*tmp2;
575
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
576
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
577
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
578
basisvalues[11] = basisvalues[6]*(3.5 + 4.5*Y);
579
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
580
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
581
basisvalues[14] = basisvalues[9]*(0.028571429 + Y*1.8) - basisvalues[5]*0.77142857;
582
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
583
basisvalues[13] = basisvalues[8]*(0.28571429 + Y*2.0) - basisvalues[4]*0.71428571;
584
basisvalues[12] = basisvalues[7]*(1.0204082 + Y*2.5714286) - basisvalues[3]*0.55102041;
585
basisvalues[0] *= std::sqrt(0.5);
586
basisvalues[2] *= std::sqrt(1.0);
587
basisvalues[5] *= std::sqrt(1.5);
588
basisvalues[9] *= std::sqrt(2.0);
589
basisvalues[14] *= std::sqrt(2.5);
590
basisvalues[1] *= std::sqrt(3.0);
591
basisvalues[4] *= std::sqrt(4.5);
592
basisvalues[8] *= std::sqrt(6.0);
593
basisvalues[13] *= std::sqrt(7.5);
594
basisvalues[3] *= std::sqrt(7.5);
595
basisvalues[7] *= std::sqrt(10.0);
596
basisvalues[12] *= std::sqrt(12.5);
597
basisvalues[6] *= std::sqrt(14.0);
598
basisvalues[11] *= std::sqrt(17.5);
599
basisvalues[10] *= std::sqrt(22.5);
718
601
// Table(s) of coefficients.
719
602
static const double coefficients0[15] = \
733
616
double basisvalues[15] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
735
618
// Declare helper variables.
742
619
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
743
620
double tmp1 = (1.0 - Y)/2.0;
744
621
double tmp2 = tmp1*tmp1;
746
623
// Compute basisvalues.
747
624
basisvalues[0] = 1.0;
748
625
basisvalues[1] = tmp0;
749
for (unsigned int r = 1; r < 4; r++)
751
rr = (r + 1)*((r + 1) + 1)/2;
753
tt = (r - 1)*((r - 1) + 1)/2;
754
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
755
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
756
}// end loop over 'r'
757
for (unsigned int r = 0; r < 4; r++)
759
rr = (r + 1)*(r + 1 + 1)/2 + 1;
761
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
762
}// end loop over 'r'
763
for (unsigned int r = 0; r < 3; r++)
765
for (unsigned int s = 1; s < 4 - r; s++)
767
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
768
ss = (r + s)*(r + s + 1)/2 + s;
769
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
770
tmp5 = (2.0 + 2.0*r + 2.0*s)*(3.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + s)*(2.0 + s + 2.0*r));
771
tmp6 = (1.0 + 4.0*r*r + 4.0*r)*(2.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
772
tmp7 = (1.0 + s + 2.0*r)*(3.0 + 2.0*r + 2.0*s)*s/((1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
773
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
774
}// end loop over 's'
775
}// end loop over 'r'
776
for (unsigned int r = 0; r < 5; r++)
778
for (unsigned int s = 0; s < 5 - r; s++)
780
rr = (r + s)*(r + s + 1)/2 + s;
781
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
782
}// end loop over 's'
783
}// end loop over 'r'
626
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
627
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
628
basisvalues[10] = basisvalues[6]*1.75*tmp0 - basisvalues[3]*0.75*tmp2;
629
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
630
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
631
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
632
basisvalues[11] = basisvalues[6]*(3.5 + 4.5*Y);
633
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
634
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
635
basisvalues[14] = basisvalues[9]*(0.028571429 + Y*1.8) - basisvalues[5]*0.77142857;
636
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
637
basisvalues[13] = basisvalues[8]*(0.28571429 + Y*2.0) - basisvalues[4]*0.71428571;
638
basisvalues[12] = basisvalues[7]*(1.0204082 + Y*2.5714286) - basisvalues[3]*0.55102041;
639
basisvalues[0] *= std::sqrt(0.5);
640
basisvalues[2] *= std::sqrt(1.0);
641
basisvalues[5] *= std::sqrt(1.5);
642
basisvalues[9] *= std::sqrt(2.0);
643
basisvalues[14] *= std::sqrt(2.5);
644
basisvalues[1] *= std::sqrt(3.0);
645
basisvalues[4] *= std::sqrt(4.5);
646
basisvalues[8] *= std::sqrt(6.0);
647
basisvalues[13] *= std::sqrt(7.5);
648
basisvalues[3] *= std::sqrt(7.5);
649
basisvalues[7] *= std::sqrt(10.0);
650
basisvalues[12] *= std::sqrt(12.5);
651
basisvalues[6] *= std::sqrt(14.0);
652
basisvalues[11] *= std::sqrt(17.5);
653
basisvalues[10] *= std::sqrt(22.5);
785
655
// Table(s) of coefficients.
786
656
static const double coefficients0[15] = \
800
670
double basisvalues[15] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
802
672
// Declare helper variables.
809
673
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
810
674
double tmp1 = (1.0 - Y)/2.0;
811
675
double tmp2 = tmp1*tmp1;
813
677
// Compute basisvalues.
814
678
basisvalues[0] = 1.0;
815
679
basisvalues[1] = tmp0;
816
for (unsigned int r = 1; r < 4; r++)
818
rr = (r + 1)*((r + 1) + 1)/2;
820
tt = (r - 1)*((r - 1) + 1)/2;
821
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
822
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
823
}// end loop over 'r'
824
for (unsigned int r = 0; r < 4; r++)
826
rr = (r + 1)*(r + 1 + 1)/2 + 1;
828
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
829
}// end loop over 'r'
830
for (unsigned int r = 0; r < 3; r++)
832
for (unsigned int s = 1; s < 4 - r; s++)
834
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
835
ss = (r + s)*(r + s + 1)/2 + s;
836
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
837
tmp5 = (2.0 + 2.0*r + 2.0*s)*(3.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + s)*(2.0 + s + 2.0*r));
838
tmp6 = (1.0 + 4.0*r*r + 4.0*r)*(2.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
839
tmp7 = (1.0 + s + 2.0*r)*(3.0 + 2.0*r + 2.0*s)*s/((1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
840
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
841
}// end loop over 's'
842
}// end loop over 'r'
843
for (unsigned int r = 0; r < 5; r++)
845
for (unsigned int s = 0; s < 5 - r; s++)
847
rr = (r + s)*(r + s + 1)/2 + s;
848
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
849
}// end loop over 's'
850
}// end loop over 'r'
680
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
681
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
682
basisvalues[10] = basisvalues[6]*1.75*tmp0 - basisvalues[3]*0.75*tmp2;
683
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
684
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
685
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
686
basisvalues[11] = basisvalues[6]*(3.5 + 4.5*Y);
687
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
688
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
689
basisvalues[14] = basisvalues[9]*(0.028571429 + Y*1.8) - basisvalues[5]*0.77142857;
690
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
691
basisvalues[13] = basisvalues[8]*(0.28571429 + Y*2.0) - basisvalues[4]*0.71428571;
692
basisvalues[12] = basisvalues[7]*(1.0204082 + Y*2.5714286) - basisvalues[3]*0.55102041;
693
basisvalues[0] *= std::sqrt(0.5);
694
basisvalues[2] *= std::sqrt(1.0);
695
basisvalues[5] *= std::sqrt(1.5);
696
basisvalues[9] *= std::sqrt(2.0);
697
basisvalues[14] *= std::sqrt(2.5);
698
basisvalues[1] *= std::sqrt(3.0);
699
basisvalues[4] *= std::sqrt(4.5);
700
basisvalues[8] *= std::sqrt(6.0);
701
basisvalues[13] *= std::sqrt(7.5);
702
basisvalues[3] *= std::sqrt(7.5);
703
basisvalues[7] *= std::sqrt(10.0);
704
basisvalues[12] *= std::sqrt(12.5);
705
basisvalues[6] *= std::sqrt(14.0);
706
basisvalues[11] *= std::sqrt(17.5);
707
basisvalues[10] *= std::sqrt(22.5);
852
709
// Table(s) of coefficients.
853
710
static const double coefficients0[15] = \
867
724
double basisvalues[15] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
869
726
// Declare helper variables.
876
727
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
877
728
double tmp1 = (1.0 - Y)/2.0;
878
729
double tmp2 = tmp1*tmp1;
880
731
// Compute basisvalues.
881
732
basisvalues[0] = 1.0;
882
733
basisvalues[1] = tmp0;
883
for (unsigned int r = 1; r < 4; r++)
885
rr = (r + 1)*((r + 1) + 1)/2;
887
tt = (r - 1)*((r - 1) + 1)/2;
888
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
889
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
890
}// end loop over 'r'
891
for (unsigned int r = 0; r < 4; r++)
893
rr = (r + 1)*(r + 1 + 1)/2 + 1;
895
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
896
}// end loop over 'r'
897
for (unsigned int r = 0; r < 3; r++)
899
for (unsigned int s = 1; s < 4 - r; s++)
901
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
902
ss = (r + s)*(r + s + 1)/2 + s;
903
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
904
tmp5 = (2.0 + 2.0*r + 2.0*s)*(3.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + s)*(2.0 + s + 2.0*r));
905
tmp6 = (1.0 + 4.0*r*r + 4.0*r)*(2.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
906
tmp7 = (1.0 + s + 2.0*r)*(3.0 + 2.0*r + 2.0*s)*s/((1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
907
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
908
}// end loop over 's'
909
}// end loop over 'r'
910
for (unsigned int r = 0; r < 5; r++)
912
for (unsigned int s = 0; s < 5 - r; s++)
914
rr = (r + s)*(r + s + 1)/2 + s;
915
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
916
}// end loop over 's'
917
}// end loop over 'r'
734
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
735
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
736
basisvalues[10] = basisvalues[6]*1.75*tmp0 - basisvalues[3]*0.75*tmp2;
737
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
738
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
739
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
740
basisvalues[11] = basisvalues[6]*(3.5 + 4.5*Y);
741
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
742
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
743
basisvalues[14] = basisvalues[9]*(0.028571429 + Y*1.8) - basisvalues[5]*0.77142857;
744
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
745
basisvalues[13] = basisvalues[8]*(0.28571429 + Y*2.0) - basisvalues[4]*0.71428571;
746
basisvalues[12] = basisvalues[7]*(1.0204082 + Y*2.5714286) - basisvalues[3]*0.55102041;
747
basisvalues[0] *= std::sqrt(0.5);
748
basisvalues[2] *= std::sqrt(1.0);
749
basisvalues[5] *= std::sqrt(1.5);
750
basisvalues[9] *= std::sqrt(2.0);
751
basisvalues[14] *= std::sqrt(2.5);
752
basisvalues[1] *= std::sqrt(3.0);
753
basisvalues[4] *= std::sqrt(4.5);
754
basisvalues[8] *= std::sqrt(6.0);
755
basisvalues[13] *= std::sqrt(7.5);
756
basisvalues[3] *= std::sqrt(7.5);
757
basisvalues[7] *= std::sqrt(10.0);
758
basisvalues[12] *= std::sqrt(12.5);
759
basisvalues[6] *= std::sqrt(14.0);
760
basisvalues[11] *= std::sqrt(17.5);
761
basisvalues[10] *= std::sqrt(22.5);
919
763
// Table(s) of coefficients.
920
764
static const double coefficients0[15] = \
1053
897
double basisvalues[15] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
1055
899
// Declare helper variables.
1056
unsigned int rr = 0;
1057
unsigned int ss = 0;
1058
unsigned int tt = 0;
1062
900
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
1063
901
double tmp1 = (1.0 - Y)/2.0;
1064
902
double tmp2 = tmp1*tmp1;
1066
904
// Compute basisvalues.
1067
905
basisvalues[0] = 1.0;
1068
906
basisvalues[1] = tmp0;
1069
for (unsigned int r = 1; r < 4; r++)
1071
rr = (r + 1)*((r + 1) + 1)/2;
1073
tt = (r - 1)*((r - 1) + 1)/2;
1074
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
1075
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
1076
}// end loop over 'r'
1077
for (unsigned int r = 0; r < 4; r++)
1079
rr = (r + 1)*(r + 1 + 1)/2 + 1;
1081
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
1082
}// end loop over 'r'
1083
for (unsigned int r = 0; r < 3; r++)
1085
for (unsigned int s = 1; s < 4 - r; s++)
1087
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
1088
ss = (r + s)*(r + s + 1)/2 + s;
1089
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
1090
tmp5 = (2.0 + 2.0*r + 2.0*s)*(3.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + s)*(2.0 + s + 2.0*r));
1091
tmp6 = (1.0 + 4.0*r*r + 4.0*r)*(2.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
1092
tmp7 = (1.0 + s + 2.0*r)*(3.0 + 2.0*r + 2.0*s)*s/((1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
1093
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
1094
}// end loop over 's'
1095
}// end loop over 'r'
1096
for (unsigned int r = 0; r < 5; r++)
1098
for (unsigned int s = 0; s < 5 - r; s++)
1100
rr = (r + s)*(r + s + 1)/2 + s;
1101
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
1102
}// end loop over 's'
1103
}// end loop over 'r'
907
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
908
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
909
basisvalues[10] = basisvalues[6]*1.75*tmp0 - basisvalues[3]*0.75*tmp2;
910
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
911
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
912
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
913
basisvalues[11] = basisvalues[6]*(3.5 + 4.5*Y);
914
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
915
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
916
basisvalues[14] = basisvalues[9]*(0.028571429 + Y*1.8) - basisvalues[5]*0.77142857;
917
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
918
basisvalues[13] = basisvalues[8]*(0.28571429 + Y*2.0) - basisvalues[4]*0.71428571;
919
basisvalues[12] = basisvalues[7]*(1.0204082 + Y*2.5714286) - basisvalues[3]*0.55102041;
920
basisvalues[0] *= std::sqrt(0.5);
921
basisvalues[2] *= std::sqrt(1.0);
922
basisvalues[5] *= std::sqrt(1.5);
923
basisvalues[9] *= std::sqrt(2.0);
924
basisvalues[14] *= std::sqrt(2.5);
925
basisvalues[1] *= std::sqrt(3.0);
926
basisvalues[4] *= std::sqrt(4.5);
927
basisvalues[8] *= std::sqrt(6.0);
928
basisvalues[13] *= std::sqrt(7.5);
929
basisvalues[3] *= std::sqrt(7.5);
930
basisvalues[7] *= std::sqrt(10.0);
931
basisvalues[12] *= std::sqrt(12.5);
932
basisvalues[6] *= std::sqrt(14.0);
933
basisvalues[11] *= std::sqrt(17.5);
934
basisvalues[10] *= std::sqrt(22.5);
1105
936
// Table(s) of coefficients.
1106
937
static const double coefficients0[15] = \
1286
1117
double basisvalues[15] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
1288
1119
// Declare helper variables.
1289
unsigned int rr = 0;
1290
unsigned int ss = 0;
1291
unsigned int tt = 0;
1295
1120
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
1296
1121
double tmp1 = (1.0 - Y)/2.0;
1297
1122
double tmp2 = tmp1*tmp1;
1299
1124
// Compute basisvalues.
1300
1125
basisvalues[0] = 1.0;
1301
1126
basisvalues[1] = tmp0;
1302
for (unsigned int r = 1; r < 4; r++)
1304
rr = (r + 1)*((r + 1) + 1)/2;
1306
tt = (r - 1)*((r - 1) + 1)/2;
1307
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
1308
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
1309
}// end loop over 'r'
1310
for (unsigned int r = 0; r < 4; r++)
1312
rr = (r + 1)*(r + 1 + 1)/2 + 1;
1314
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
1315
}// end loop over 'r'
1316
for (unsigned int r = 0; r < 3; r++)
1318
for (unsigned int s = 1; s < 4 - r; s++)
1320
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
1321
ss = (r + s)*(r + s + 1)/2 + s;
1322
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
1323
tmp5 = (2.0 + 2.0*r + 2.0*s)*(3.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + s)*(2.0 + s + 2.0*r));
1324
tmp6 = (1.0 + 4.0*r*r + 4.0*r)*(2.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
1325
tmp7 = (1.0 + s + 2.0*r)*(3.0 + 2.0*r + 2.0*s)*s/((1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
1326
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
1327
}// end loop over 's'
1328
}// end loop over 'r'
1329
for (unsigned int r = 0; r < 5; r++)
1331
for (unsigned int s = 0; s < 5 - r; s++)
1333
rr = (r + s)*(r + s + 1)/2 + s;
1334
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
1335
}// end loop over 's'
1336
}// end loop over 'r'
1127
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
1128
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
1129
basisvalues[10] = basisvalues[6]*1.75*tmp0 - basisvalues[3]*0.75*tmp2;
1130
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
1131
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
1132
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
1133
basisvalues[11] = basisvalues[6]*(3.5 + 4.5*Y);
1134
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
1135
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
1136
basisvalues[14] = basisvalues[9]*(0.028571429 + Y*1.8) - basisvalues[5]*0.77142857;
1137
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
1138
basisvalues[13] = basisvalues[8]*(0.28571429 + Y*2.0) - basisvalues[4]*0.71428571;
1139
basisvalues[12] = basisvalues[7]*(1.0204082 + Y*2.5714286) - basisvalues[3]*0.55102041;
1140
basisvalues[0] *= std::sqrt(0.5);
1141
basisvalues[2] *= std::sqrt(1.0);
1142
basisvalues[5] *= std::sqrt(1.5);
1143
basisvalues[9] *= std::sqrt(2.0);
1144
basisvalues[14] *= std::sqrt(2.5);
1145
basisvalues[1] *= std::sqrt(3.0);
1146
basisvalues[4] *= std::sqrt(4.5);
1147
basisvalues[8] *= std::sqrt(6.0);
1148
basisvalues[13] *= std::sqrt(7.5);
1149
basisvalues[3] *= std::sqrt(7.5);
1150
basisvalues[7] *= std::sqrt(10.0);
1151
basisvalues[12] *= std::sqrt(12.5);
1152
basisvalues[6] *= std::sqrt(14.0);
1153
basisvalues[11] *= std::sqrt(17.5);
1154
basisvalues[10] *= std::sqrt(22.5);
1338
1156
// Table(s) of coefficients.
1339
1157
static const double coefficients0[15] = \
1519
1337
double basisvalues[15] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
1521
1339
// Declare helper variables.
1522
unsigned int rr = 0;
1523
unsigned int ss = 0;
1524
unsigned int tt = 0;
1528
1340
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
1529
1341
double tmp1 = (1.0 - Y)/2.0;
1530
1342
double tmp2 = tmp1*tmp1;
1532
1344
// Compute basisvalues.
1533
1345
basisvalues[0] = 1.0;
1534
1346
basisvalues[1] = tmp0;
1535
for (unsigned int r = 1; r < 4; r++)
1537
rr = (r + 1)*((r + 1) + 1)/2;
1539
tt = (r - 1)*((r - 1) + 1)/2;
1540
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
1541
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
1542
}// end loop over 'r'
1543
for (unsigned int r = 0; r < 4; r++)
1545
rr = (r + 1)*(r + 1 + 1)/2 + 1;
1547
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
1548
}// end loop over 'r'
1549
for (unsigned int r = 0; r < 3; r++)
1551
for (unsigned int s = 1; s < 4 - r; s++)
1553
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
1554
ss = (r + s)*(r + s + 1)/2 + s;
1555
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
1556
tmp5 = (2.0 + 2.0*r + 2.0*s)*(3.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + s)*(2.0 + s + 2.0*r));
1557
tmp6 = (1.0 + 4.0*r*r + 4.0*r)*(2.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
1558
tmp7 = (1.0 + s + 2.0*r)*(3.0 + 2.0*r + 2.0*s)*s/((1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
1559
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
1560
}// end loop over 's'
1561
}// end loop over 'r'
1562
for (unsigned int r = 0; r < 5; r++)
1564
for (unsigned int s = 0; s < 5 - r; s++)
1566
rr = (r + s)*(r + s + 1)/2 + s;
1567
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
1568
}// end loop over 's'
1569
}// end loop over 'r'
1347
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
1348
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
1349
basisvalues[10] = basisvalues[6]*1.75*tmp0 - basisvalues[3]*0.75*tmp2;
1350
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
1351
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
1352
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
1353
basisvalues[11] = basisvalues[6]*(3.5 + 4.5*Y);
1354
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
1355
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
1356
basisvalues[14] = basisvalues[9]*(0.028571429 + Y*1.8) - basisvalues[5]*0.77142857;
1357
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
1358
basisvalues[13] = basisvalues[8]*(0.28571429 + Y*2.0) - basisvalues[4]*0.71428571;
1359
basisvalues[12] = basisvalues[7]*(1.0204082 + Y*2.5714286) - basisvalues[3]*0.55102041;
1360
basisvalues[0] *= std::sqrt(0.5);
1361
basisvalues[2] *= std::sqrt(1.0);
1362
basisvalues[5] *= std::sqrt(1.5);
1363
basisvalues[9] *= std::sqrt(2.0);
1364
basisvalues[14] *= std::sqrt(2.5);
1365
basisvalues[1] *= std::sqrt(3.0);
1366
basisvalues[4] *= std::sqrt(4.5);
1367
basisvalues[8] *= std::sqrt(6.0);
1368
basisvalues[13] *= std::sqrt(7.5);
1369
basisvalues[3] *= std::sqrt(7.5);
1370
basisvalues[7] *= std::sqrt(10.0);
1371
basisvalues[12] *= std::sqrt(12.5);
1372
basisvalues[6] *= std::sqrt(14.0);
1373
basisvalues[11] *= std::sqrt(17.5);
1374
basisvalues[10] *= std::sqrt(22.5);
1571
1376
// Table(s) of coefficients.
1572
1377
static const double coefficients0[15] = \
1752
1557
double basisvalues[15] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
1754
1559
// Declare helper variables.
1755
unsigned int rr = 0;
1756
unsigned int ss = 0;
1757
unsigned int tt = 0;
1761
1560
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
1762
1561
double tmp1 = (1.0 - Y)/2.0;
1763
1562
double tmp2 = tmp1*tmp1;
1765
1564
// Compute basisvalues.
1766
1565
basisvalues[0] = 1.0;
1767
1566
basisvalues[1] = tmp0;
1768
for (unsigned int r = 1; r < 4; r++)
1770
rr = (r + 1)*((r + 1) + 1)/2;
1772
tt = (r - 1)*((r - 1) + 1)/2;
1773
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
1774
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
1775
}// end loop over 'r'
1776
for (unsigned int r = 0; r < 4; r++)
1778
rr = (r + 1)*(r + 1 + 1)/2 + 1;
1780
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
1781
}// end loop over 'r'
1782
for (unsigned int r = 0; r < 3; r++)
1784
for (unsigned int s = 1; s < 4 - r; s++)
1786
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
1787
ss = (r + s)*(r + s + 1)/2 + s;
1788
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
1789
tmp5 = (2.0 + 2.0*r + 2.0*s)*(3.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + s)*(2.0 + s + 2.0*r));
1790
tmp6 = (1.0 + 4.0*r*r + 4.0*r)*(2.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
1791
tmp7 = (1.0 + s + 2.0*r)*(3.0 + 2.0*r + 2.0*s)*s/((1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
1792
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
1793
}// end loop over 's'
1794
}// end loop over 'r'
1795
for (unsigned int r = 0; r < 5; r++)
1797
for (unsigned int s = 0; s < 5 - r; s++)
1799
rr = (r + s)*(r + s + 1)/2 + s;
1800
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
1801
}// end loop over 's'
1802
}// end loop over 'r'
1567
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
1568
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
1569
basisvalues[10] = basisvalues[6]*1.75*tmp0 - basisvalues[3]*0.75*tmp2;
1570
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
1571
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
1572
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
1573
basisvalues[11] = basisvalues[6]*(3.5 + 4.5*Y);
1574
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
1575
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
1576
basisvalues[14] = basisvalues[9]*(0.028571429 + Y*1.8) - basisvalues[5]*0.77142857;
1577
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
1578
basisvalues[13] = basisvalues[8]*(0.28571429 + Y*2.0) - basisvalues[4]*0.71428571;
1579
basisvalues[12] = basisvalues[7]*(1.0204082 + Y*2.5714286) - basisvalues[3]*0.55102041;
1580
basisvalues[0] *= std::sqrt(0.5);
1581
basisvalues[2] *= std::sqrt(1.0);
1582
basisvalues[5] *= std::sqrt(1.5);
1583
basisvalues[9] *= std::sqrt(2.0);
1584
basisvalues[14] *= std::sqrt(2.5);
1585
basisvalues[1] *= std::sqrt(3.0);
1586
basisvalues[4] *= std::sqrt(4.5);
1587
basisvalues[8] *= std::sqrt(6.0);
1588
basisvalues[13] *= std::sqrt(7.5);
1589
basisvalues[3] *= std::sqrt(7.5);
1590
basisvalues[7] *= std::sqrt(10.0);
1591
basisvalues[12] *= std::sqrt(12.5);
1592
basisvalues[6] *= std::sqrt(14.0);
1593
basisvalues[11] *= std::sqrt(17.5);
1594
basisvalues[10] *= std::sqrt(22.5);
1804
1596
// Table(s) of coefficients.
1805
1597
static const double coefficients0[15] = \
1985
1777
double basisvalues[15] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
1987
1779
// Declare helper variables.
1988
unsigned int rr = 0;
1989
unsigned int ss = 0;
1990
unsigned int tt = 0;
1994
1780
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
1995
1781
double tmp1 = (1.0 - Y)/2.0;
1996
1782
double tmp2 = tmp1*tmp1;
1998
1784
// Compute basisvalues.
1999
1785
basisvalues[0] = 1.0;
2000
1786
basisvalues[1] = tmp0;
2001
for (unsigned int r = 1; r < 4; r++)
2003
rr = (r + 1)*((r + 1) + 1)/2;
2005
tt = (r - 1)*((r - 1) + 1)/2;
2006
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
2007
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
2008
}// end loop over 'r'
2009
for (unsigned int r = 0; r < 4; r++)
2011
rr = (r + 1)*(r + 1 + 1)/2 + 1;
2013
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
2014
}// end loop over 'r'
2015
for (unsigned int r = 0; r < 3; r++)
2017
for (unsigned int s = 1; s < 4 - r; s++)
2019
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
2020
ss = (r + s)*(r + s + 1)/2 + s;
2021
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
2022
tmp5 = (2.0 + 2.0*r + 2.0*s)*(3.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + s)*(2.0 + s + 2.0*r));
2023
tmp6 = (1.0 + 4.0*r*r + 4.0*r)*(2.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
2024
tmp7 = (1.0 + s + 2.0*r)*(3.0 + 2.0*r + 2.0*s)*s/((1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
2025
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
2026
}// end loop over 's'
2027
}// end loop over 'r'
2028
for (unsigned int r = 0; r < 5; r++)
2030
for (unsigned int s = 0; s < 5 - r; s++)
2032
rr = (r + s)*(r + s + 1)/2 + s;
2033
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
2034
}// end loop over 's'
2035
}// end loop over 'r'
1787
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
1788
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
1789
basisvalues[10] = basisvalues[6]*1.75*tmp0 - basisvalues[3]*0.75*tmp2;
1790
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
1791
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
1792
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
1793
basisvalues[11] = basisvalues[6]*(3.5 + 4.5*Y);
1794
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
1795
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
1796
basisvalues[14] = basisvalues[9]*(0.028571429 + Y*1.8) - basisvalues[5]*0.77142857;
1797
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
1798
basisvalues[13] = basisvalues[8]*(0.28571429 + Y*2.0) - basisvalues[4]*0.71428571;
1799
basisvalues[12] = basisvalues[7]*(1.0204082 + Y*2.5714286) - basisvalues[3]*0.55102041;
1800
basisvalues[0] *= std::sqrt(0.5);
1801
basisvalues[2] *= std::sqrt(1.0);
1802
basisvalues[5] *= std::sqrt(1.5);
1803
basisvalues[9] *= std::sqrt(2.0);
1804
basisvalues[14] *= std::sqrt(2.5);
1805
basisvalues[1] *= std::sqrt(3.0);
1806
basisvalues[4] *= std::sqrt(4.5);
1807
basisvalues[8] *= std::sqrt(6.0);
1808
basisvalues[13] *= std::sqrt(7.5);
1809
basisvalues[3] *= std::sqrt(7.5);
1810
basisvalues[7] *= std::sqrt(10.0);
1811
basisvalues[12] *= std::sqrt(12.5);
1812
basisvalues[6] *= std::sqrt(14.0);
1813
basisvalues[11] *= std::sqrt(17.5);
1814
basisvalues[10] *= std::sqrt(22.5);
2037
1816
// Table(s) of coefficients.
2038
1817
static const double coefficients0[15] = \
2218
1997
double basisvalues[15] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
2220
1999
// Declare helper variables.
2221
unsigned int rr = 0;
2222
unsigned int ss = 0;
2223
unsigned int tt = 0;
2227
2000
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
2228
2001
double tmp1 = (1.0 - Y)/2.0;
2229
2002
double tmp2 = tmp1*tmp1;
2231
2004
// Compute basisvalues.
2232
2005
basisvalues[0] = 1.0;
2233
2006
basisvalues[1] = tmp0;
2234
for (unsigned int r = 1; r < 4; r++)
2236
rr = (r + 1)*((r + 1) + 1)/2;
2238
tt = (r - 1)*((r - 1) + 1)/2;
2239
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
2240
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
2241
}// end loop over 'r'
2242
for (unsigned int r = 0; r < 4; r++)
2244
rr = (r + 1)*(r + 1 + 1)/2 + 1;
2246
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
2247
}// end loop over 'r'
2248
for (unsigned int r = 0; r < 3; r++)
2250
for (unsigned int s = 1; s < 4 - r; s++)
2252
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
2253
ss = (r + s)*(r + s + 1)/2 + s;
2254
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
2255
tmp5 = (2.0 + 2.0*r + 2.0*s)*(3.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + s)*(2.0 + s + 2.0*r));
2256
tmp6 = (1.0 + 4.0*r*r + 4.0*r)*(2.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
2257
tmp7 = (1.0 + s + 2.0*r)*(3.0 + 2.0*r + 2.0*s)*s/((1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
2258
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
2259
}// end loop over 's'
2260
}// end loop over 'r'
2261
for (unsigned int r = 0; r < 5; r++)
2263
for (unsigned int s = 0; s < 5 - r; s++)
2265
rr = (r + s)*(r + s + 1)/2 + s;
2266
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
2267
}// end loop over 's'
2268
}// end loop over 'r'
2007
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
2008
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
2009
basisvalues[10] = basisvalues[6]*1.75*tmp0 - basisvalues[3]*0.75*tmp2;
2010
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
2011
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
2012
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
2013
basisvalues[11] = basisvalues[6]*(3.5 + 4.5*Y);
2014
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
2015
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
2016
basisvalues[14] = basisvalues[9]*(0.028571429 + Y*1.8) - basisvalues[5]*0.77142857;
2017
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
2018
basisvalues[13] = basisvalues[8]*(0.28571429 + Y*2.0) - basisvalues[4]*0.71428571;
2019
basisvalues[12] = basisvalues[7]*(1.0204082 + Y*2.5714286) - basisvalues[3]*0.55102041;
2020
basisvalues[0] *= std::sqrt(0.5);
2021
basisvalues[2] *= std::sqrt(1.0);
2022
basisvalues[5] *= std::sqrt(1.5);
2023
basisvalues[9] *= std::sqrt(2.0);
2024
basisvalues[14] *= std::sqrt(2.5);
2025
basisvalues[1] *= std::sqrt(3.0);
2026
basisvalues[4] *= std::sqrt(4.5);
2027
basisvalues[8] *= std::sqrt(6.0);
2028
basisvalues[13] *= std::sqrt(7.5);
2029
basisvalues[3] *= std::sqrt(7.5);
2030
basisvalues[7] *= std::sqrt(10.0);
2031
basisvalues[12] *= std::sqrt(12.5);
2032
basisvalues[6] *= std::sqrt(14.0);
2033
basisvalues[11] *= std::sqrt(17.5);
2034
basisvalues[10] *= std::sqrt(22.5);
2270
2036
// Table(s) of coefficients.
2271
2037
static const double coefficients0[15] = \
2451
2217
double basisvalues[15] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
2453
2219
// Declare helper variables.
2454
unsigned int rr = 0;
2455
unsigned int ss = 0;
2456
unsigned int tt = 0;
2460
2220
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
2461
2221
double tmp1 = (1.0 - Y)/2.0;
2462
2222
double tmp2 = tmp1*tmp1;
2464
2224
// Compute basisvalues.
2465
2225
basisvalues[0] = 1.0;
2466
2226
basisvalues[1] = tmp0;
2467
for (unsigned int r = 1; r < 4; r++)
2469
rr = (r + 1)*((r + 1) + 1)/2;
2471
tt = (r - 1)*((r - 1) + 1)/2;
2472
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
2473
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
2474
}// end loop over 'r'
2475
for (unsigned int r = 0; r < 4; r++)
2477
rr = (r + 1)*(r + 1 + 1)/2 + 1;
2479
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
2480
}// end loop over 'r'
2481
for (unsigned int r = 0; r < 3; r++)
2483
for (unsigned int s = 1; s < 4 - r; s++)
2485
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
2486
ss = (r + s)*(r + s + 1)/2 + s;
2487
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
2488
tmp5 = (2.0 + 2.0*r + 2.0*s)*(3.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + s)*(2.0 + s + 2.0*r));
2489
tmp6 = (1.0 + 4.0*r*r + 4.0*r)*(2.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
2490
tmp7 = (1.0 + s + 2.0*r)*(3.0 + 2.0*r + 2.0*s)*s/((1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
2491
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
2492
}// end loop over 's'
2493
}// end loop over 'r'
2494
for (unsigned int r = 0; r < 5; r++)
2496
for (unsigned int s = 0; s < 5 - r; s++)
2498
rr = (r + s)*(r + s + 1)/2 + s;
2499
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
2500
}// end loop over 's'
2501
}// end loop over 'r'
2227
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
2228
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
2229
basisvalues[10] = basisvalues[6]*1.75*tmp0 - basisvalues[3]*0.75*tmp2;
2230
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
2231
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
2232
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
2233
basisvalues[11] = basisvalues[6]*(3.5 + 4.5*Y);
2234
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
2235
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
2236
basisvalues[14] = basisvalues[9]*(0.028571429 + Y*1.8) - basisvalues[5]*0.77142857;
2237
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
2238
basisvalues[13] = basisvalues[8]*(0.28571429 + Y*2.0) - basisvalues[4]*0.71428571;
2239
basisvalues[12] = basisvalues[7]*(1.0204082 + Y*2.5714286) - basisvalues[3]*0.55102041;
2240
basisvalues[0] *= std::sqrt(0.5);
2241
basisvalues[2] *= std::sqrt(1.0);
2242
basisvalues[5] *= std::sqrt(1.5);
2243
basisvalues[9] *= std::sqrt(2.0);
2244
basisvalues[14] *= std::sqrt(2.5);
2245
basisvalues[1] *= std::sqrt(3.0);
2246
basisvalues[4] *= std::sqrt(4.5);
2247
basisvalues[8] *= std::sqrt(6.0);
2248
basisvalues[13] *= std::sqrt(7.5);
2249
basisvalues[3] *= std::sqrt(7.5);
2250
basisvalues[7] *= std::sqrt(10.0);
2251
basisvalues[12] *= std::sqrt(12.5);
2252
basisvalues[6] *= std::sqrt(14.0);
2253
basisvalues[11] *= std::sqrt(17.5);
2254
basisvalues[10] *= std::sqrt(22.5);
2503
2256
// Table(s) of coefficients.
2504
2257
static const double coefficients0[15] = \
2684
2437
double basisvalues[15] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
2686
2439
// Declare helper variables.
2687
unsigned int rr = 0;
2688
unsigned int ss = 0;
2689
unsigned int tt = 0;
2693
2440
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
2694
2441
double tmp1 = (1.0 - Y)/2.0;
2695
2442
double tmp2 = tmp1*tmp1;
2697
2444
// Compute basisvalues.
2698
2445
basisvalues[0] = 1.0;
2699
2446
basisvalues[1] = tmp0;
2700
for (unsigned int r = 1; r < 4; r++)
2702
rr = (r + 1)*((r + 1) + 1)/2;
2704
tt = (r - 1)*((r - 1) + 1)/2;
2705
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
2706
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
2707
}// end loop over 'r'
2708
for (unsigned int r = 0; r < 4; r++)
2710
rr = (r + 1)*(r + 1 + 1)/2 + 1;
2712
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
2713
}// end loop over 'r'
2714
for (unsigned int r = 0; r < 3; r++)
2716
for (unsigned int s = 1; s < 4 - r; s++)
2718
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
2719
ss = (r + s)*(r + s + 1)/2 + s;
2720
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
2721
tmp5 = (2.0 + 2.0*r + 2.0*s)*(3.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + s)*(2.0 + s + 2.0*r));
2722
tmp6 = (1.0 + 4.0*r*r + 4.0*r)*(2.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
2723
tmp7 = (1.0 + s + 2.0*r)*(3.0 + 2.0*r + 2.0*s)*s/((1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
2724
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
2725
}// end loop over 's'
2726
}// end loop over 'r'
2727
for (unsigned int r = 0; r < 5; r++)
2729
for (unsigned int s = 0; s < 5 - r; s++)
2731
rr = (r + s)*(r + s + 1)/2 + s;
2732
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
2733
}// end loop over 's'
2734
}// end loop over 'r'
2447
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
2448
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
2449
basisvalues[10] = basisvalues[6]*1.75*tmp0 - basisvalues[3]*0.75*tmp2;
2450
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
2451
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
2452
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
2453
basisvalues[11] = basisvalues[6]*(3.5 + 4.5*Y);
2454
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
2455
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
2456
basisvalues[14] = basisvalues[9]*(0.028571429 + Y*1.8) - basisvalues[5]*0.77142857;
2457
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
2458
basisvalues[13] = basisvalues[8]*(0.28571429 + Y*2.0) - basisvalues[4]*0.71428571;
2459
basisvalues[12] = basisvalues[7]*(1.0204082 + Y*2.5714286) - basisvalues[3]*0.55102041;
2460
basisvalues[0] *= std::sqrt(0.5);
2461
basisvalues[2] *= std::sqrt(1.0);
2462
basisvalues[5] *= std::sqrt(1.5);
2463
basisvalues[9] *= std::sqrt(2.0);
2464
basisvalues[14] *= std::sqrt(2.5);
2465
basisvalues[1] *= std::sqrt(3.0);
2466
basisvalues[4] *= std::sqrt(4.5);
2467
basisvalues[8] *= std::sqrt(6.0);
2468
basisvalues[13] *= std::sqrt(7.5);
2469
basisvalues[3] *= std::sqrt(7.5);
2470
basisvalues[7] *= std::sqrt(10.0);
2471
basisvalues[12] *= std::sqrt(12.5);
2472
basisvalues[6] *= std::sqrt(14.0);
2473
basisvalues[11] *= std::sqrt(17.5);
2474
basisvalues[10] *= std::sqrt(22.5);
2736
2476
// Table(s) of coefficients.
2737
2477
static const double coefficients0[15] = \
2917
2657
double basisvalues[15] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
2919
2659
// Declare helper variables.
2920
unsigned int rr = 0;
2921
unsigned int ss = 0;
2922
unsigned int tt = 0;
2926
2660
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
2927
2661
double tmp1 = (1.0 - Y)/2.0;
2928
2662
double tmp2 = tmp1*tmp1;
2930
2664
// Compute basisvalues.
2931
2665
basisvalues[0] = 1.0;
2932
2666
basisvalues[1] = tmp0;
2933
for (unsigned int r = 1; r < 4; r++)
2935
rr = (r + 1)*((r + 1) + 1)/2;
2937
tt = (r - 1)*((r - 1) + 1)/2;
2938
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
2939
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
2940
}// end loop over 'r'
2941
for (unsigned int r = 0; r < 4; r++)
2943
rr = (r + 1)*(r + 1 + 1)/2 + 1;
2945
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
2946
}// end loop over 'r'
2947
for (unsigned int r = 0; r < 3; r++)
2949
for (unsigned int s = 1; s < 4 - r; s++)
2951
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
2952
ss = (r + s)*(r + s + 1)/2 + s;
2953
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
2954
tmp5 = (2.0 + 2.0*r + 2.0*s)*(3.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + s)*(2.0 + s + 2.0*r));
2955
tmp6 = (1.0 + 4.0*r*r + 4.0*r)*(2.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
2956
tmp7 = (1.0 + s + 2.0*r)*(3.0 + 2.0*r + 2.0*s)*s/((1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
2957
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
2958
}// end loop over 's'
2959
}// end loop over 'r'
2960
for (unsigned int r = 0; r < 5; r++)
2962
for (unsigned int s = 0; s < 5 - r; s++)
2964
rr = (r + s)*(r + s + 1)/2 + s;
2965
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
2966
}// end loop over 's'
2967
}// end loop over 'r'
2667
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
2668
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
2669
basisvalues[10] = basisvalues[6]*1.75*tmp0 - basisvalues[3]*0.75*tmp2;
2670
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
2671
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
2672
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
2673
basisvalues[11] = basisvalues[6]*(3.5 + 4.5*Y);
2674
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
2675
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
2676
basisvalues[14] = basisvalues[9]*(0.028571429 + Y*1.8) - basisvalues[5]*0.77142857;
2677
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
2678
basisvalues[13] = basisvalues[8]*(0.28571429 + Y*2.0) - basisvalues[4]*0.71428571;
2679
basisvalues[12] = basisvalues[7]*(1.0204082 + Y*2.5714286) - basisvalues[3]*0.55102041;
2680
basisvalues[0] *= std::sqrt(0.5);
2681
basisvalues[2] *= std::sqrt(1.0);
2682
basisvalues[5] *= std::sqrt(1.5);
2683
basisvalues[9] *= std::sqrt(2.0);
2684
basisvalues[14] *= std::sqrt(2.5);
2685
basisvalues[1] *= std::sqrt(3.0);
2686
basisvalues[4] *= std::sqrt(4.5);
2687
basisvalues[8] *= std::sqrt(6.0);
2688
basisvalues[13] *= std::sqrt(7.5);
2689
basisvalues[3] *= std::sqrt(7.5);
2690
basisvalues[7] *= std::sqrt(10.0);
2691
basisvalues[12] *= std::sqrt(12.5);
2692
basisvalues[6] *= std::sqrt(14.0);
2693
basisvalues[11] *= std::sqrt(17.5);
2694
basisvalues[10] *= std::sqrt(22.5);
2969
2696
// Table(s) of coefficients.
2970
2697
static const double coefficients0[15] = \
3150
2877
double basisvalues[15] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
3152
2879
// Declare helper variables.
3153
unsigned int rr = 0;
3154
unsigned int ss = 0;
3155
unsigned int tt = 0;
3159
2880
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
3160
2881
double tmp1 = (1.0 - Y)/2.0;
3161
2882
double tmp2 = tmp1*tmp1;
3163
2884
// Compute basisvalues.
3164
2885
basisvalues[0] = 1.0;
3165
2886
basisvalues[1] = tmp0;
3166
for (unsigned int r = 1; r < 4; r++)
3168
rr = (r + 1)*((r + 1) + 1)/2;
3170
tt = (r - 1)*((r - 1) + 1)/2;
3171
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
3172
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
3173
}// end loop over 'r'
3174
for (unsigned int r = 0; r < 4; r++)
3176
rr = (r + 1)*(r + 1 + 1)/2 + 1;
3178
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
3179
}// end loop over 'r'
3180
for (unsigned int r = 0; r < 3; r++)
3182
for (unsigned int s = 1; s < 4 - r; s++)
3184
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
3185
ss = (r + s)*(r + s + 1)/2 + s;
3186
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
3187
tmp5 = (2.0 + 2.0*r + 2.0*s)*(3.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + s)*(2.0 + s + 2.0*r));
3188
tmp6 = (1.0 + 4.0*r*r + 4.0*r)*(2.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
3189
tmp7 = (1.0 + s + 2.0*r)*(3.0 + 2.0*r + 2.0*s)*s/((1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
3190
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
3191
}// end loop over 's'
3192
}// end loop over 'r'
3193
for (unsigned int r = 0; r < 5; r++)
3195
for (unsigned int s = 0; s < 5 - r; s++)
3197
rr = (r + s)*(r + s + 1)/2 + s;
3198
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
3199
}// end loop over 's'
3200
}// end loop over 'r'
2887
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
2888
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
2889
basisvalues[10] = basisvalues[6]*1.75*tmp0 - basisvalues[3]*0.75*tmp2;
2890
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
2891
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
2892
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
2893
basisvalues[11] = basisvalues[6]*(3.5 + 4.5*Y);
2894
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
2895
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
2896
basisvalues[14] = basisvalues[9]*(0.028571429 + Y*1.8) - basisvalues[5]*0.77142857;
2897
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
2898
basisvalues[13] = basisvalues[8]*(0.28571429 + Y*2.0) - basisvalues[4]*0.71428571;
2899
basisvalues[12] = basisvalues[7]*(1.0204082 + Y*2.5714286) - basisvalues[3]*0.55102041;
2900
basisvalues[0] *= std::sqrt(0.5);
2901
basisvalues[2] *= std::sqrt(1.0);
2902
basisvalues[5] *= std::sqrt(1.5);
2903
basisvalues[9] *= std::sqrt(2.0);
2904
basisvalues[14] *= std::sqrt(2.5);
2905
basisvalues[1] *= std::sqrt(3.0);
2906
basisvalues[4] *= std::sqrt(4.5);
2907
basisvalues[8] *= std::sqrt(6.0);
2908
basisvalues[13] *= std::sqrt(7.5);
2909
basisvalues[3] *= std::sqrt(7.5);
2910
basisvalues[7] *= std::sqrt(10.0);
2911
basisvalues[12] *= std::sqrt(12.5);
2912
basisvalues[6] *= std::sqrt(14.0);
2913
basisvalues[11] *= std::sqrt(17.5);
2914
basisvalues[10] *= std::sqrt(22.5);
3202
2916
// Table(s) of coefficients.
3203
2917
static const double coefficients0[15] = \
3383
3097
double basisvalues[15] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
3385
3099
// Declare helper variables.
3386
unsigned int rr = 0;
3387
unsigned int ss = 0;
3388
unsigned int tt = 0;
3392
3100
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
3393
3101
double tmp1 = (1.0 - Y)/2.0;
3394
3102
double tmp2 = tmp1*tmp1;
3396
3104
// Compute basisvalues.
3397
3105
basisvalues[0] = 1.0;
3398
3106
basisvalues[1] = tmp0;
3399
for (unsigned int r = 1; r < 4; r++)
3401
rr = (r + 1)*((r + 1) + 1)/2;
3403
tt = (r - 1)*((r - 1) + 1)/2;
3404
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
3405
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
3406
}// end loop over 'r'
3407
for (unsigned int r = 0; r < 4; r++)
3409
rr = (r + 1)*(r + 1 + 1)/2 + 1;
3411
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
3412
}// end loop over 'r'
3413
for (unsigned int r = 0; r < 3; r++)
3415
for (unsigned int s = 1; s < 4 - r; s++)
3417
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
3418
ss = (r + s)*(r + s + 1)/2 + s;
3419
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
3420
tmp5 = (2.0 + 2.0*r + 2.0*s)*(3.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + s)*(2.0 + s + 2.0*r));
3421
tmp6 = (1.0 + 4.0*r*r + 4.0*r)*(2.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
3422
tmp7 = (1.0 + s + 2.0*r)*(3.0 + 2.0*r + 2.0*s)*s/((1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
3423
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
3424
}// end loop over 's'
3425
}// end loop over 'r'
3426
for (unsigned int r = 0; r < 5; r++)
3428
for (unsigned int s = 0; s < 5 - r; s++)
3430
rr = (r + s)*(r + s + 1)/2 + s;
3431
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
3432
}// end loop over 's'
3433
}// end loop over 'r'
3107
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
3108
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
3109
basisvalues[10] = basisvalues[6]*1.75*tmp0 - basisvalues[3]*0.75*tmp2;
3110
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
3111
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
3112
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
3113
basisvalues[11] = basisvalues[6]*(3.5 + 4.5*Y);
3114
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
3115
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
3116
basisvalues[14] = basisvalues[9]*(0.028571429 + Y*1.8) - basisvalues[5]*0.77142857;
3117
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
3118
basisvalues[13] = basisvalues[8]*(0.28571429 + Y*2.0) - basisvalues[4]*0.71428571;
3119
basisvalues[12] = basisvalues[7]*(1.0204082 + Y*2.5714286) - basisvalues[3]*0.55102041;
3120
basisvalues[0] *= std::sqrt(0.5);
3121
basisvalues[2] *= std::sqrt(1.0);
3122
basisvalues[5] *= std::sqrt(1.5);
3123
basisvalues[9] *= std::sqrt(2.0);
3124
basisvalues[14] *= std::sqrt(2.5);
3125
basisvalues[1] *= std::sqrt(3.0);
3126
basisvalues[4] *= std::sqrt(4.5);
3127
basisvalues[8] *= std::sqrt(6.0);
3128
basisvalues[13] *= std::sqrt(7.5);
3129
basisvalues[3] *= std::sqrt(7.5);
3130
basisvalues[7] *= std::sqrt(10.0);
3131
basisvalues[12] *= std::sqrt(12.5);
3132
basisvalues[6] *= std::sqrt(14.0);
3133
basisvalues[11] *= std::sqrt(17.5);
3134
basisvalues[10] *= std::sqrt(22.5);
3435
3136
// Table(s) of coefficients.
3436
3137
static const double coefficients0[15] = \
3616
3317
double basisvalues[15] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
3618
3319
// Declare helper variables.
3619
unsigned int rr = 0;
3620
unsigned int ss = 0;
3621
unsigned int tt = 0;
3625
3320
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
3626
3321
double tmp1 = (1.0 - Y)/2.0;
3627
3322
double tmp2 = tmp1*tmp1;
3629
3324
// Compute basisvalues.
3630
3325
basisvalues[0] = 1.0;
3631
3326
basisvalues[1] = tmp0;
3632
for (unsigned int r = 1; r < 4; r++)
3634
rr = (r + 1)*((r + 1) + 1)/2;
3636
tt = (r - 1)*((r - 1) + 1)/2;
3637
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
3638
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
3639
}// end loop over 'r'
3640
for (unsigned int r = 0; r < 4; r++)
3642
rr = (r + 1)*(r + 1 + 1)/2 + 1;
3644
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
3645
}// end loop over 'r'
3646
for (unsigned int r = 0; r < 3; r++)
3648
for (unsigned int s = 1; s < 4 - r; s++)
3650
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
3651
ss = (r + s)*(r + s + 1)/2 + s;
3652
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
3653
tmp5 = (2.0 + 2.0*r + 2.0*s)*(3.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + s)*(2.0 + s + 2.0*r));
3654
tmp6 = (1.0 + 4.0*r*r + 4.0*r)*(2.0 + 2.0*r + 2.0*s)/(2.0*(1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
3655
tmp7 = (1.0 + s + 2.0*r)*(3.0 + 2.0*r + 2.0*s)*s/((1.0 + 2.0*r + 2.0*s)*(1.0 + s)*(2.0 + s + 2.0*r));
3656
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
3657
}// end loop over 's'
3658
}// end loop over 'r'
3659
for (unsigned int r = 0; r < 5; r++)
3661
for (unsigned int s = 0; s < 5 - r; s++)
3663
rr = (r + s)*(r + s + 1)/2 + s;
3664
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
3665
}// end loop over 's'
3666
}// end loop over 'r'
3327
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
3328
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
3329
basisvalues[10] = basisvalues[6]*1.75*tmp0 - basisvalues[3]*0.75*tmp2;
3330
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
3331
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
3332
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
3333
basisvalues[11] = basisvalues[6]*(3.5 + 4.5*Y);
3334
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
3335
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
3336
basisvalues[14] = basisvalues[9]*(0.028571429 + Y*1.8) - basisvalues[5]*0.77142857;
3337
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
3338
basisvalues[13] = basisvalues[8]*(0.28571429 + Y*2.0) - basisvalues[4]*0.71428571;
3339
basisvalues[12] = basisvalues[7]*(1.0204082 + Y*2.5714286) - basisvalues[3]*0.55102041;
3340
basisvalues[0] *= std::sqrt(0.5);
3341
basisvalues[2] *= std::sqrt(1.0);
3342
basisvalues[5] *= std::sqrt(1.5);
3343
basisvalues[9] *= std::sqrt(2.0);
3344
basisvalues[14] *= std::sqrt(2.5);
3345
basisvalues[1] *= std::sqrt(3.0);
3346
basisvalues[4] *= std::sqrt(4.5);
3347
basisvalues[8] *= std::sqrt(6.0);
3348
basisvalues[13] *= std::sqrt(7.5);
3349
basisvalues[3] *= std::sqrt(7.5);
3350
basisvalues[7] *= std::sqrt(10.0);
3351
basisvalues[12] *= std::sqrt(12.5);
3352
basisvalues[6] *= std::sqrt(14.0);
3353
basisvalues[11] *= std::sqrt(17.5);
3354
basisvalues[10] *= std::sqrt(22.5);
3668
3356
// Table(s) of coefficients.
3669
3357
static const double coefficients0[15] = \