1
// This code conforms with the UFC specification version 2.0.0
2
// and was automatically generated by FFC version 1.0-beta.
1
// This code conforms with the UFC specification version 2.0.2
2
// and was automatically generated by FFC version 1.0-beta+.
4
4
// This code was generated with the following parameters:
130
130
double basisvalues[10] = {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 < 3; 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 < 3; 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 < 2; r++)
162
for (unsigned int s = 1; s < 3 - 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 < 4; r++)
175
for (unsigned int s = 0; s < 4 - 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[2] = basisvalues[0]*(0.5 + 1.5*Y);
143
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
144
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
145
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
146
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
147
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
148
basisvalues[0] *= std::sqrt(0.5);
149
basisvalues[2] *= std::sqrt(1.0);
150
basisvalues[5] *= std::sqrt(1.5);
151
basisvalues[9] *= std::sqrt(2.0);
152
basisvalues[1] *= std::sqrt(3.0);
153
basisvalues[4] *= std::sqrt(4.5);
154
basisvalues[8] *= std::sqrt(6.0);
155
basisvalues[3] *= std::sqrt(7.5);
156
basisvalues[7] *= std::sqrt(10.0);
157
basisvalues[6] *= std::sqrt(14.0);
182
159
// Table(s) of coefficients.
183
160
static const double coefficients0[10] = \
197
174
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
199
176
// Declare helper variables.
206
177
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
207
178
double tmp1 = (1.0 - Y)/2.0;
208
179
double tmp2 = tmp1*tmp1;
210
181
// Compute basisvalues.
211
182
basisvalues[0] = 1.0;
212
183
basisvalues[1] = tmp0;
213
for (unsigned int r = 1; r < 3; 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 < 3; 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 < 2; r++)
229
for (unsigned int s = 1; s < 3 - 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 < 4; r++)
242
for (unsigned int s = 0; s < 4 - 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'
184
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
185
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
186
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
187
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
188
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
189
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
190
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
191
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
192
basisvalues[0] *= std::sqrt(0.5);
193
basisvalues[2] *= std::sqrt(1.0);
194
basisvalues[5] *= std::sqrt(1.5);
195
basisvalues[9] *= std::sqrt(2.0);
196
basisvalues[1] *= std::sqrt(3.0);
197
basisvalues[4] *= std::sqrt(4.5);
198
basisvalues[8] *= std::sqrt(6.0);
199
basisvalues[3] *= std::sqrt(7.5);
200
basisvalues[7] *= std::sqrt(10.0);
201
basisvalues[6] *= std::sqrt(14.0);
249
203
// Table(s) of coefficients.
250
204
static const double coefficients0[10] = \
264
218
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
266
220
// Declare helper variables.
273
221
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
274
222
double tmp1 = (1.0 - Y)/2.0;
275
223
double tmp2 = tmp1*tmp1;
277
225
// Compute basisvalues.
278
226
basisvalues[0] = 1.0;
279
227
basisvalues[1] = tmp0;
280
for (unsigned int r = 1; r < 3; 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 < 3; 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 < 2; r++)
296
for (unsigned int s = 1; s < 3 - 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 < 4; r++)
309
for (unsigned int s = 0; s < 4 - 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'
228
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
229
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
230
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
231
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
232
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
233
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
234
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
235
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
236
basisvalues[0] *= std::sqrt(0.5);
237
basisvalues[2] *= std::sqrt(1.0);
238
basisvalues[5] *= std::sqrt(1.5);
239
basisvalues[9] *= std::sqrt(2.0);
240
basisvalues[1] *= std::sqrt(3.0);
241
basisvalues[4] *= std::sqrt(4.5);
242
basisvalues[8] *= std::sqrt(6.0);
243
basisvalues[3] *= std::sqrt(7.5);
244
basisvalues[7] *= std::sqrt(10.0);
245
basisvalues[6] *= std::sqrt(14.0);
316
247
// Table(s) of coefficients.
317
248
static const double coefficients0[10] = \
331
262
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
333
264
// Declare helper variables.
340
265
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
341
266
double tmp1 = (1.0 - Y)/2.0;
342
267
double tmp2 = tmp1*tmp1;
344
269
// Compute basisvalues.
345
270
basisvalues[0] = 1.0;
346
271
basisvalues[1] = tmp0;
347
for (unsigned int r = 1; r < 3; 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 < 3; 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 < 2; r++)
363
for (unsigned int s = 1; s < 3 - 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 < 4; r++)
376
for (unsigned int s = 0; s < 4 - 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'
272
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
273
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
274
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
275
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
276
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
277
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
278
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
279
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
280
basisvalues[0] *= std::sqrt(0.5);
281
basisvalues[2] *= std::sqrt(1.0);
282
basisvalues[5] *= std::sqrt(1.5);
283
basisvalues[9] *= std::sqrt(2.0);
284
basisvalues[1] *= std::sqrt(3.0);
285
basisvalues[4] *= std::sqrt(4.5);
286
basisvalues[8] *= std::sqrt(6.0);
287
basisvalues[3] *= std::sqrt(7.5);
288
basisvalues[7] *= std::sqrt(10.0);
289
basisvalues[6] *= std::sqrt(14.0);
383
291
// Table(s) of coefficients.
384
292
static const double coefficients0[10] = \
398
306
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
400
308
// Declare helper variables.
407
309
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
408
310
double tmp1 = (1.0 - Y)/2.0;
409
311
double tmp2 = tmp1*tmp1;
411
313
// Compute basisvalues.
412
314
basisvalues[0] = 1.0;
413
315
basisvalues[1] = tmp0;
414
for (unsigned int r = 1; r < 3; 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 < 3; 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 < 2; r++)
430
for (unsigned int s = 1; s < 3 - 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 < 4; r++)
443
for (unsigned int s = 0; s < 4 - 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'
316
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
317
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
318
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
319
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
320
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
321
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
322
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
323
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
324
basisvalues[0] *= std::sqrt(0.5);
325
basisvalues[2] *= std::sqrt(1.0);
326
basisvalues[5] *= std::sqrt(1.5);
327
basisvalues[9] *= std::sqrt(2.0);
328
basisvalues[1] *= std::sqrt(3.0);
329
basisvalues[4] *= std::sqrt(4.5);
330
basisvalues[8] *= std::sqrt(6.0);
331
basisvalues[3] *= std::sqrt(7.5);
332
basisvalues[7] *= std::sqrt(10.0);
333
basisvalues[6] *= std::sqrt(14.0);
450
335
// Table(s) of coefficients.
451
336
static const double coefficients0[10] = \
465
350
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
467
352
// Declare helper variables.
474
353
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
475
354
double tmp1 = (1.0 - Y)/2.0;
476
355
double tmp2 = tmp1*tmp1;
478
357
// Compute basisvalues.
479
358
basisvalues[0] = 1.0;
480
359
basisvalues[1] = tmp0;
481
for (unsigned int r = 1; r < 3; 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 < 3; 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 < 2; r++)
497
for (unsigned int s = 1; s < 3 - 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 < 4; r++)
510
for (unsigned int s = 0; s < 4 - 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'
360
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
361
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
362
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
363
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
364
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
365
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
366
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
367
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
368
basisvalues[0] *= std::sqrt(0.5);
369
basisvalues[2] *= std::sqrt(1.0);
370
basisvalues[5] *= std::sqrt(1.5);
371
basisvalues[9] *= std::sqrt(2.0);
372
basisvalues[1] *= std::sqrt(3.0);
373
basisvalues[4] *= std::sqrt(4.5);
374
basisvalues[8] *= std::sqrt(6.0);
375
basisvalues[3] *= std::sqrt(7.5);
376
basisvalues[7] *= std::sqrt(10.0);
377
basisvalues[6] *= std::sqrt(14.0);
517
379
// Table(s) of coefficients.
518
380
static const double coefficients0[10] = \
532
394
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
534
396
// Declare helper variables.
541
397
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
542
398
double tmp1 = (1.0 - Y)/2.0;
543
399
double tmp2 = tmp1*tmp1;
545
401
// Compute basisvalues.
546
402
basisvalues[0] = 1.0;
547
403
basisvalues[1] = tmp0;
548
for (unsigned int r = 1; r < 3; 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 < 3; 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 < 2; r++)
564
for (unsigned int s = 1; s < 3 - 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 < 4; r++)
577
for (unsigned int s = 0; s < 4 - 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'
404
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
405
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
406
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
407
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
408
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
409
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
410
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
411
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
412
basisvalues[0] *= std::sqrt(0.5);
413
basisvalues[2] *= std::sqrt(1.0);
414
basisvalues[5] *= std::sqrt(1.5);
415
basisvalues[9] *= std::sqrt(2.0);
416
basisvalues[1] *= std::sqrt(3.0);
417
basisvalues[4] *= std::sqrt(4.5);
418
basisvalues[8] *= std::sqrt(6.0);
419
basisvalues[3] *= std::sqrt(7.5);
420
basisvalues[7] *= std::sqrt(10.0);
421
basisvalues[6] *= std::sqrt(14.0);
584
423
// Table(s) of coefficients.
585
424
static const double coefficients0[10] = \
599
438
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
601
440
// Declare helper variables.
608
441
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
609
442
double tmp1 = (1.0 - Y)/2.0;
610
443
double tmp2 = tmp1*tmp1;
612
445
// Compute basisvalues.
613
446
basisvalues[0] = 1.0;
614
447
basisvalues[1] = tmp0;
615
for (unsigned int r = 1; r < 3; 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 < 3; 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 < 2; r++)
631
for (unsigned int s = 1; s < 3 - 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 < 4; r++)
644
for (unsigned int s = 0; s < 4 - 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'
448
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
449
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
450
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
451
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
452
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
453
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
454
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
455
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
456
basisvalues[0] *= std::sqrt(0.5);
457
basisvalues[2] *= std::sqrt(1.0);
458
basisvalues[5] *= std::sqrt(1.5);
459
basisvalues[9] *= std::sqrt(2.0);
460
basisvalues[1] *= std::sqrt(3.0);
461
basisvalues[4] *= std::sqrt(4.5);
462
basisvalues[8] *= std::sqrt(6.0);
463
basisvalues[3] *= std::sqrt(7.5);
464
basisvalues[7] *= std::sqrt(10.0);
465
basisvalues[6] *= std::sqrt(14.0);
651
467
// Table(s) of coefficients.
652
468
static const double coefficients0[10] = \
666
482
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
668
484
// Declare helper variables.
675
485
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
676
486
double tmp1 = (1.0 - Y)/2.0;
677
487
double tmp2 = tmp1*tmp1;
679
489
// Compute basisvalues.
680
490
basisvalues[0] = 1.0;
681
491
basisvalues[1] = tmp0;
682
for (unsigned int r = 1; r < 3; 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 < 3; 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 < 2; r++)
698
for (unsigned int s = 1; s < 3 - 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 < 4; r++)
711
for (unsigned int s = 0; s < 4 - 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'
492
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
493
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
494
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
495
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
496
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
497
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
498
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
499
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
500
basisvalues[0] *= std::sqrt(0.5);
501
basisvalues[2] *= std::sqrt(1.0);
502
basisvalues[5] *= std::sqrt(1.5);
503
basisvalues[9] *= std::sqrt(2.0);
504
basisvalues[1] *= std::sqrt(3.0);
505
basisvalues[4] *= std::sqrt(4.5);
506
basisvalues[8] *= std::sqrt(6.0);
507
basisvalues[3] *= std::sqrt(7.5);
508
basisvalues[7] *= std::sqrt(10.0);
509
basisvalues[6] *= std::sqrt(14.0);
718
511
// Table(s) of coefficients.
719
512
static const double coefficients0[10] = \
733
526
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
735
528
// Declare helper variables.
742
529
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
743
530
double tmp1 = (1.0 - Y)/2.0;
744
531
double tmp2 = tmp1*tmp1;
746
533
// Compute basisvalues.
747
534
basisvalues[0] = 1.0;
748
535
basisvalues[1] = tmp0;
749
for (unsigned int r = 1; r < 3; 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 < 3; 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 < 2; r++)
765
for (unsigned int s = 1; s < 3 - 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 < 4; r++)
778
for (unsigned int s = 0; s < 4 - 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'
536
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
537
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
538
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
539
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
540
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
541
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
542
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
543
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
544
basisvalues[0] *= std::sqrt(0.5);
545
basisvalues[2] *= std::sqrt(1.0);
546
basisvalues[5] *= std::sqrt(1.5);
547
basisvalues[9] *= std::sqrt(2.0);
548
basisvalues[1] *= std::sqrt(3.0);
549
basisvalues[4] *= std::sqrt(4.5);
550
basisvalues[8] *= std::sqrt(6.0);
551
basisvalues[3] *= std::sqrt(7.5);
552
basisvalues[7] *= std::sqrt(10.0);
553
basisvalues[6] *= std::sqrt(14.0);
785
555
// Table(s) of coefficients.
786
556
static const double coefficients0[10] = \
919
689
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
921
691
// Declare helper variables.
928
692
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
929
693
double tmp1 = (1.0 - Y)/2.0;
930
694
double tmp2 = tmp1*tmp1;
932
696
// Compute basisvalues.
933
697
basisvalues[0] = 1.0;
934
698
basisvalues[1] = tmp0;
935
for (unsigned int r = 1; r < 3; r++)
937
rr = (r + 1)*((r + 1) + 1)/2;
939
tt = (r - 1)*((r - 1) + 1)/2;
940
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
941
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
942
}// end loop over 'r'
943
for (unsigned int r = 0; r < 3; r++)
945
rr = (r + 1)*(r + 1 + 1)/2 + 1;
947
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
948
}// end loop over 'r'
949
for (unsigned int r = 0; r < 2; r++)
951
for (unsigned int s = 1; s < 3 - r; s++)
953
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
954
ss = (r + s)*(r + s + 1)/2 + s;
955
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
956
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));
957
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));
958
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));
959
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
960
}// end loop over 's'
961
}// end loop over 'r'
962
for (unsigned int r = 0; r < 4; r++)
964
for (unsigned int s = 0; s < 4 - r; s++)
966
rr = (r + s)*(r + s + 1)/2 + s;
967
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
968
}// end loop over 's'
969
}// end loop over 'r'
699
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
700
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
701
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
702
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
703
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
704
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
705
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
706
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
707
basisvalues[0] *= std::sqrt(0.5);
708
basisvalues[2] *= std::sqrt(1.0);
709
basisvalues[5] *= std::sqrt(1.5);
710
basisvalues[9] *= std::sqrt(2.0);
711
basisvalues[1] *= std::sqrt(3.0);
712
basisvalues[4] *= std::sqrt(4.5);
713
basisvalues[8] *= std::sqrt(6.0);
714
basisvalues[3] *= std::sqrt(7.5);
715
basisvalues[7] *= std::sqrt(10.0);
716
basisvalues[6] *= std::sqrt(14.0);
971
718
// Table(s) of coefficients.
972
719
static const double coefficients0[10] = \
1132
879
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
1134
881
// Declare helper variables.
1135
unsigned int rr = 0;
1136
unsigned int ss = 0;
1137
unsigned int tt = 0;
1141
882
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
1142
883
double tmp1 = (1.0 - Y)/2.0;
1143
884
double tmp2 = tmp1*tmp1;
1145
886
// Compute basisvalues.
1146
887
basisvalues[0] = 1.0;
1147
888
basisvalues[1] = tmp0;
1148
for (unsigned int r = 1; r < 3; r++)
1150
rr = (r + 1)*((r + 1) + 1)/2;
1152
tt = (r - 1)*((r - 1) + 1)/2;
1153
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
1154
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
1155
}// end loop over 'r'
1156
for (unsigned int r = 0; r < 3; r++)
1158
rr = (r + 1)*(r + 1 + 1)/2 + 1;
1160
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
1161
}// end loop over 'r'
1162
for (unsigned int r = 0; r < 2; r++)
1164
for (unsigned int s = 1; s < 3 - r; s++)
1166
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
1167
ss = (r + s)*(r + s + 1)/2 + s;
1168
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
1169
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));
1170
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));
1171
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));
1172
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
1173
}// end loop over 's'
1174
}// end loop over 'r'
1175
for (unsigned int r = 0; r < 4; r++)
1177
for (unsigned int s = 0; s < 4 - r; s++)
1179
rr = (r + s)*(r + s + 1)/2 + s;
1180
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
1181
}// end loop over 's'
1182
}// end loop over 'r'
889
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
890
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
891
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
892
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
893
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
894
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
895
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
896
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
897
basisvalues[0] *= std::sqrt(0.5);
898
basisvalues[2] *= std::sqrt(1.0);
899
basisvalues[5] *= std::sqrt(1.5);
900
basisvalues[9] *= std::sqrt(2.0);
901
basisvalues[1] *= std::sqrt(3.0);
902
basisvalues[4] *= std::sqrt(4.5);
903
basisvalues[8] *= std::sqrt(6.0);
904
basisvalues[3] *= std::sqrt(7.5);
905
basisvalues[7] *= std::sqrt(10.0);
906
basisvalues[6] *= std::sqrt(14.0);
1184
908
// Table(s) of coefficients.
1185
909
static const double coefficients0[10] = \
1345
1069
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
1347
1071
// Declare helper variables.
1348
unsigned int rr = 0;
1349
unsigned int ss = 0;
1350
unsigned int tt = 0;
1354
1072
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
1355
1073
double tmp1 = (1.0 - Y)/2.0;
1356
1074
double tmp2 = tmp1*tmp1;
1358
1076
// Compute basisvalues.
1359
1077
basisvalues[0] = 1.0;
1360
1078
basisvalues[1] = tmp0;
1361
for (unsigned int r = 1; r < 3; r++)
1363
rr = (r + 1)*((r + 1) + 1)/2;
1365
tt = (r - 1)*((r - 1) + 1)/2;
1366
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
1367
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
1368
}// end loop over 'r'
1369
for (unsigned int r = 0; r < 3; r++)
1371
rr = (r + 1)*(r + 1 + 1)/2 + 1;
1373
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
1374
}// end loop over 'r'
1375
for (unsigned int r = 0; r < 2; r++)
1377
for (unsigned int s = 1; s < 3 - r; s++)
1379
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
1380
ss = (r + s)*(r + s + 1)/2 + s;
1381
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
1382
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));
1383
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));
1384
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));
1385
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
1386
}// end loop over 's'
1387
}// end loop over 'r'
1388
for (unsigned int r = 0; r < 4; r++)
1390
for (unsigned int s = 0; s < 4 - r; s++)
1392
rr = (r + s)*(r + s + 1)/2 + s;
1393
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
1394
}// end loop over 's'
1395
}// end loop over 'r'
1079
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
1080
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
1081
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
1082
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
1083
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
1084
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
1085
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
1086
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
1087
basisvalues[0] *= std::sqrt(0.5);
1088
basisvalues[2] *= std::sqrt(1.0);
1089
basisvalues[5] *= std::sqrt(1.5);
1090
basisvalues[9] *= std::sqrt(2.0);
1091
basisvalues[1] *= std::sqrt(3.0);
1092
basisvalues[4] *= std::sqrt(4.5);
1093
basisvalues[8] *= std::sqrt(6.0);
1094
basisvalues[3] *= std::sqrt(7.5);
1095
basisvalues[7] *= std::sqrt(10.0);
1096
basisvalues[6] *= std::sqrt(14.0);
1397
1098
// Table(s) of coefficients.
1398
1099
static const double coefficients0[10] = \
1558
1259
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
1560
1261
// Declare helper variables.
1561
unsigned int rr = 0;
1562
unsigned int ss = 0;
1563
unsigned int tt = 0;
1567
1262
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
1568
1263
double tmp1 = (1.0 - Y)/2.0;
1569
1264
double tmp2 = tmp1*tmp1;
1571
1266
// Compute basisvalues.
1572
1267
basisvalues[0] = 1.0;
1573
1268
basisvalues[1] = tmp0;
1574
for (unsigned int r = 1; r < 3; r++)
1576
rr = (r + 1)*((r + 1) + 1)/2;
1578
tt = (r - 1)*((r - 1) + 1)/2;
1579
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
1580
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
1581
}// end loop over 'r'
1582
for (unsigned int r = 0; r < 3; r++)
1584
rr = (r + 1)*(r + 1 + 1)/2 + 1;
1586
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
1587
}// end loop over 'r'
1588
for (unsigned int r = 0; r < 2; r++)
1590
for (unsigned int s = 1; s < 3 - r; s++)
1592
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
1593
ss = (r + s)*(r + s + 1)/2 + s;
1594
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
1595
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));
1596
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));
1597
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));
1598
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
1599
}// end loop over 's'
1600
}// end loop over 'r'
1601
for (unsigned int r = 0; r < 4; r++)
1603
for (unsigned int s = 0; s < 4 - r; s++)
1605
rr = (r + s)*(r + s + 1)/2 + s;
1606
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
1607
}// end loop over 's'
1608
}// end loop over 'r'
1269
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
1270
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
1271
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
1272
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
1273
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
1274
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
1275
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
1276
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
1277
basisvalues[0] *= std::sqrt(0.5);
1278
basisvalues[2] *= std::sqrt(1.0);
1279
basisvalues[5] *= std::sqrt(1.5);
1280
basisvalues[9] *= std::sqrt(2.0);
1281
basisvalues[1] *= std::sqrt(3.0);
1282
basisvalues[4] *= std::sqrt(4.5);
1283
basisvalues[8] *= std::sqrt(6.0);
1284
basisvalues[3] *= std::sqrt(7.5);
1285
basisvalues[7] *= std::sqrt(10.0);
1286
basisvalues[6] *= std::sqrt(14.0);
1610
1288
// Table(s) of coefficients.
1611
1289
static const double coefficients0[10] = \
1771
1449
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
1773
1451
// Declare helper variables.
1774
unsigned int rr = 0;
1775
unsigned int ss = 0;
1776
unsigned int tt = 0;
1780
1452
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
1781
1453
double tmp1 = (1.0 - Y)/2.0;
1782
1454
double tmp2 = tmp1*tmp1;
1784
1456
// Compute basisvalues.
1785
1457
basisvalues[0] = 1.0;
1786
1458
basisvalues[1] = tmp0;
1787
for (unsigned int r = 1; r < 3; r++)
1789
rr = (r + 1)*((r + 1) + 1)/2;
1791
tt = (r - 1)*((r - 1) + 1)/2;
1792
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
1793
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
1794
}// end loop over 'r'
1795
for (unsigned int r = 0; r < 3; r++)
1797
rr = (r + 1)*(r + 1 + 1)/2 + 1;
1799
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
1800
}// end loop over 'r'
1801
for (unsigned int r = 0; r < 2; r++)
1803
for (unsigned int s = 1; s < 3 - r; s++)
1805
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
1806
ss = (r + s)*(r + s + 1)/2 + s;
1807
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
1808
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));
1809
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));
1810
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));
1811
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
1812
}// end loop over 's'
1813
}// end loop over 'r'
1814
for (unsigned int r = 0; r < 4; r++)
1816
for (unsigned int s = 0; s < 4 - r; s++)
1818
rr = (r + s)*(r + s + 1)/2 + s;
1819
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
1820
}// end loop over 's'
1821
}// end loop over 'r'
1459
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
1460
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
1461
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
1462
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
1463
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
1464
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
1465
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
1466
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
1467
basisvalues[0] *= std::sqrt(0.5);
1468
basisvalues[2] *= std::sqrt(1.0);
1469
basisvalues[5] *= std::sqrt(1.5);
1470
basisvalues[9] *= std::sqrt(2.0);
1471
basisvalues[1] *= std::sqrt(3.0);
1472
basisvalues[4] *= std::sqrt(4.5);
1473
basisvalues[8] *= std::sqrt(6.0);
1474
basisvalues[3] *= std::sqrt(7.5);
1475
basisvalues[7] *= std::sqrt(10.0);
1476
basisvalues[6] *= std::sqrt(14.0);
1823
1478
// Table(s) of coefficients.
1824
1479
static const double coefficients0[10] = \
1984
1639
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
1986
1641
// Declare helper variables.
1987
unsigned int rr = 0;
1988
unsigned int ss = 0;
1989
unsigned int tt = 0;
1993
1642
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
1994
1643
double tmp1 = (1.0 - Y)/2.0;
1995
1644
double tmp2 = tmp1*tmp1;
1997
1646
// Compute basisvalues.
1998
1647
basisvalues[0] = 1.0;
1999
1648
basisvalues[1] = tmp0;
2000
for (unsigned int r = 1; r < 3; r++)
2002
rr = (r + 1)*((r + 1) + 1)/2;
2004
tt = (r - 1)*((r - 1) + 1)/2;
2005
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
2006
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
2007
}// end loop over 'r'
2008
for (unsigned int r = 0; r < 3; r++)
2010
rr = (r + 1)*(r + 1 + 1)/2 + 1;
2012
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
2013
}// end loop over 'r'
2014
for (unsigned int r = 0; r < 2; r++)
2016
for (unsigned int s = 1; s < 3 - r; s++)
2018
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
2019
ss = (r + s)*(r + s + 1)/2 + s;
2020
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
2021
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));
2022
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));
2023
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));
2024
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
2025
}// end loop over 's'
2026
}// end loop over 'r'
2027
for (unsigned int r = 0; r < 4; r++)
2029
for (unsigned int s = 0; s < 4 - r; s++)
2031
rr = (r + s)*(r + s + 1)/2 + s;
2032
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
2033
}// end loop over 's'
2034
}// end loop over 'r'
1649
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
1650
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
1651
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
1652
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
1653
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
1654
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
1655
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
1656
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
1657
basisvalues[0] *= std::sqrt(0.5);
1658
basisvalues[2] *= std::sqrt(1.0);
1659
basisvalues[5] *= std::sqrt(1.5);
1660
basisvalues[9] *= std::sqrt(2.0);
1661
basisvalues[1] *= std::sqrt(3.0);
1662
basisvalues[4] *= std::sqrt(4.5);
1663
basisvalues[8] *= std::sqrt(6.0);
1664
basisvalues[3] *= std::sqrt(7.5);
1665
basisvalues[7] *= std::sqrt(10.0);
1666
basisvalues[6] *= std::sqrt(14.0);
2036
1668
// Table(s) of coefficients.
2037
1669
static const double coefficients0[10] = \
2197
1829
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
2199
1831
// Declare helper variables.
2200
unsigned int rr = 0;
2201
unsigned int ss = 0;
2202
unsigned int tt = 0;
2206
1832
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
2207
1833
double tmp1 = (1.0 - Y)/2.0;
2208
1834
double tmp2 = tmp1*tmp1;
2210
1836
// Compute basisvalues.
2211
1837
basisvalues[0] = 1.0;
2212
1838
basisvalues[1] = tmp0;
2213
for (unsigned int r = 1; r < 3; r++)
2215
rr = (r + 1)*((r + 1) + 1)/2;
2217
tt = (r - 1)*((r - 1) + 1)/2;
2218
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
2219
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
2220
}// end loop over 'r'
2221
for (unsigned int r = 0; r < 3; r++)
2223
rr = (r + 1)*(r + 1 + 1)/2 + 1;
2225
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
2226
}// end loop over 'r'
2227
for (unsigned int r = 0; r < 2; r++)
2229
for (unsigned int s = 1; s < 3 - r; s++)
2231
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
2232
ss = (r + s)*(r + s + 1)/2 + s;
2233
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
2234
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));
2235
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));
2236
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));
2237
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
2238
}// end loop over 's'
2239
}// end loop over 'r'
2240
for (unsigned int r = 0; r < 4; r++)
2242
for (unsigned int s = 0; s < 4 - r; s++)
2244
rr = (r + s)*(r + s + 1)/2 + s;
2245
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
2246
}// end loop over 's'
2247
}// end loop over 'r'
1839
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
1840
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
1841
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
1842
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
1843
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
1844
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
1845
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
1846
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
1847
basisvalues[0] *= std::sqrt(0.5);
1848
basisvalues[2] *= std::sqrt(1.0);
1849
basisvalues[5] *= std::sqrt(1.5);
1850
basisvalues[9] *= std::sqrt(2.0);
1851
basisvalues[1] *= std::sqrt(3.0);
1852
basisvalues[4] *= std::sqrt(4.5);
1853
basisvalues[8] *= std::sqrt(6.0);
1854
basisvalues[3] *= std::sqrt(7.5);
1855
basisvalues[7] *= std::sqrt(10.0);
1856
basisvalues[6] *= std::sqrt(14.0);
2249
1858
// Table(s) of coefficients.
2250
1859
static const double coefficients0[10] = \
2410
2019
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
2412
2021
// Declare helper variables.
2413
unsigned int rr = 0;
2414
unsigned int ss = 0;
2415
unsigned int tt = 0;
2419
2022
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
2420
2023
double tmp1 = (1.0 - Y)/2.0;
2421
2024
double tmp2 = tmp1*tmp1;
2423
2026
// Compute basisvalues.
2424
2027
basisvalues[0] = 1.0;
2425
2028
basisvalues[1] = tmp0;
2426
for (unsigned int r = 1; r < 3; r++)
2428
rr = (r + 1)*((r + 1) + 1)/2;
2430
tt = (r - 1)*((r - 1) + 1)/2;
2431
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
2432
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
2433
}// end loop over 'r'
2434
for (unsigned int r = 0; r < 3; r++)
2436
rr = (r + 1)*(r + 1 + 1)/2 + 1;
2438
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
2439
}// end loop over 'r'
2440
for (unsigned int r = 0; r < 2; r++)
2442
for (unsigned int s = 1; s < 3 - r; s++)
2444
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
2445
ss = (r + s)*(r + s + 1)/2 + s;
2446
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
2447
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));
2448
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));
2449
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));
2450
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
2451
}// end loop over 's'
2452
}// end loop over 'r'
2453
for (unsigned int r = 0; r < 4; r++)
2455
for (unsigned int s = 0; s < 4 - r; s++)
2457
rr = (r + s)*(r + s + 1)/2 + s;
2458
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
2459
}// end loop over 's'
2460
}// end loop over 'r'
2029
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
2030
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
2031
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
2032
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
2033
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
2034
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
2035
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
2036
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
2037
basisvalues[0] *= std::sqrt(0.5);
2038
basisvalues[2] *= std::sqrt(1.0);
2039
basisvalues[5] *= std::sqrt(1.5);
2040
basisvalues[9] *= std::sqrt(2.0);
2041
basisvalues[1] *= std::sqrt(3.0);
2042
basisvalues[4] *= std::sqrt(4.5);
2043
basisvalues[8] *= std::sqrt(6.0);
2044
basisvalues[3] *= std::sqrt(7.5);
2045
basisvalues[7] *= std::sqrt(10.0);
2046
basisvalues[6] *= std::sqrt(14.0);
2462
2048
// Table(s) of coefficients.
2463
2049
static const double coefficients0[10] = \
2623
2209
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
2625
2211
// Declare helper variables.
2626
unsigned int rr = 0;
2627
unsigned int ss = 0;
2628
unsigned int tt = 0;
2632
2212
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
2633
2213
double tmp1 = (1.0 - Y)/2.0;
2634
2214
double tmp2 = tmp1*tmp1;
2636
2216
// Compute basisvalues.
2637
2217
basisvalues[0] = 1.0;
2638
2218
basisvalues[1] = tmp0;
2639
for (unsigned int r = 1; r < 3; r++)
2641
rr = (r + 1)*((r + 1) + 1)/2;
2643
tt = (r - 1)*((r - 1) + 1)/2;
2644
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
2645
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
2646
}// end loop over 'r'
2647
for (unsigned int r = 0; r < 3; r++)
2649
rr = (r + 1)*(r + 1 + 1)/2 + 1;
2651
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
2652
}// end loop over 'r'
2653
for (unsigned int r = 0; r < 2; r++)
2655
for (unsigned int s = 1; s < 3 - r; s++)
2657
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
2658
ss = (r + s)*(r + s + 1)/2 + s;
2659
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
2660
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));
2661
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));
2662
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));
2663
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
2664
}// end loop over 's'
2665
}// end loop over 'r'
2666
for (unsigned int r = 0; r < 4; r++)
2668
for (unsigned int s = 0; s < 4 - r; s++)
2670
rr = (r + s)*(r + s + 1)/2 + s;
2671
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
2672
}// end loop over 's'
2673
}// end loop over 'r'
2219
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
2220
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
2221
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
2222
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
2223
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
2224
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
2225
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
2226
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
2227
basisvalues[0] *= std::sqrt(0.5);
2228
basisvalues[2] *= std::sqrt(1.0);
2229
basisvalues[5] *= std::sqrt(1.5);
2230
basisvalues[9] *= std::sqrt(2.0);
2231
basisvalues[1] *= std::sqrt(3.0);
2232
basisvalues[4] *= std::sqrt(4.5);
2233
basisvalues[8] *= std::sqrt(6.0);
2234
basisvalues[3] *= std::sqrt(7.5);
2235
basisvalues[7] *= std::sqrt(10.0);
2236
basisvalues[6] *= std::sqrt(14.0);
2675
2238
// Table(s) of coefficients.
2676
2239
static const double coefficients0[10] = \
2836
2399
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
2838
2401
// Declare helper variables.
2839
unsigned int rr = 0;
2840
unsigned int ss = 0;
2841
unsigned int tt = 0;
2845
2402
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
2846
2403
double tmp1 = (1.0 - Y)/2.0;
2847
2404
double tmp2 = tmp1*tmp1;
2849
2406
// Compute basisvalues.
2850
2407
basisvalues[0] = 1.0;
2851
2408
basisvalues[1] = tmp0;
2852
for (unsigned int r = 1; r < 3; r++)
2854
rr = (r + 1)*((r + 1) + 1)/2;
2856
tt = (r - 1)*((r - 1) + 1)/2;
2857
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
2858
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
2859
}// end loop over 'r'
2860
for (unsigned int r = 0; r < 3; r++)
2862
rr = (r + 1)*(r + 1 + 1)/2 + 1;
2864
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
2865
}// end loop over 'r'
2866
for (unsigned int r = 0; r < 2; r++)
2868
for (unsigned int s = 1; s < 3 - r; s++)
2870
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
2871
ss = (r + s)*(r + s + 1)/2 + s;
2872
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
2873
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));
2874
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));
2875
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));
2876
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
2877
}// end loop over 's'
2878
}// end loop over 'r'
2879
for (unsigned int r = 0; r < 4; r++)
2881
for (unsigned int s = 0; s < 4 - r; s++)
2883
rr = (r + s)*(r + s + 1)/2 + s;
2884
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
2885
}// end loop over 's'
2886
}// end loop over 'r'
2409
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
2410
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
2411
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
2412
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
2413
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
2414
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
2415
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
2416
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
2417
basisvalues[0] *= std::sqrt(0.5);
2418
basisvalues[2] *= std::sqrt(1.0);
2419
basisvalues[5] *= std::sqrt(1.5);
2420
basisvalues[9] *= std::sqrt(2.0);
2421
basisvalues[1] *= std::sqrt(3.0);
2422
basisvalues[4] *= std::sqrt(4.5);
2423
basisvalues[8] *= std::sqrt(6.0);
2424
basisvalues[3] *= std::sqrt(7.5);
2425
basisvalues[7] *= std::sqrt(10.0);
2426
basisvalues[6] *= std::sqrt(14.0);
2888
2428
// Table(s) of coefficients.
2889
2429
static const double coefficients0[10] = \
3387
2927
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
3389
2929
// Declare helper variables.
3390
unsigned int rr = 0;
3391
unsigned int ss = 0;
3392
unsigned int tt = 0;
3396
2930
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
3397
2931
double tmp1 = (1.0 - Y)/2.0;
3398
2932
double tmp2 = tmp1*tmp1;
3400
2934
// Compute basisvalues.
3401
2935
basisvalues[0] = 1.0;
3402
2936
basisvalues[1] = tmp0;
3403
for (unsigned int r = 1; r < 3; r++)
3405
rr = (r + 1)*((r + 1) + 1)/2;
3407
tt = (r - 1)*((r - 1) + 1)/2;
3408
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
3409
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
3410
}// end loop over 'r'
3411
for (unsigned int r = 0; r < 3; r++)
3413
rr = (r + 1)*(r + 1 + 1)/2 + 1;
3415
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
3416
}// end loop over 'r'
3417
for (unsigned int r = 0; r < 2; r++)
3419
for (unsigned int s = 1; s < 3 - r; s++)
3421
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
3422
ss = (r + s)*(r + s + 1)/2 + s;
3423
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
3424
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));
3425
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));
3426
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));
3427
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
3428
}// end loop over 's'
3429
}// end loop over 'r'
3430
for (unsigned int r = 0; r < 4; r++)
3432
for (unsigned int s = 0; s < 4 - r; s++)
3434
rr = (r + s)*(r + s + 1)/2 + s;
3435
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
3436
}// end loop over 's'
3437
}// end loop over 'r'
2937
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
2938
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
2939
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
2940
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
2941
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
2942
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
2943
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
2944
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
2945
basisvalues[0] *= std::sqrt(0.5);
2946
basisvalues[2] *= std::sqrt(1.0);
2947
basisvalues[5] *= std::sqrt(1.5);
2948
basisvalues[9] *= std::sqrt(2.0);
2949
basisvalues[1] *= std::sqrt(3.0);
2950
basisvalues[4] *= std::sqrt(4.5);
2951
basisvalues[8] *= std::sqrt(6.0);
2952
basisvalues[3] *= std::sqrt(7.5);
2953
basisvalues[7] *= std::sqrt(10.0);
2954
basisvalues[6] *= std::sqrt(14.0);
3439
2956
// Table(s) of coefficients.
3440
2957
static const double coefficients0[10] = \
3454
2971
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
3456
2973
// Declare helper variables.
3457
unsigned int rr = 0;
3458
unsigned int ss = 0;
3459
unsigned int tt = 0;
3463
2974
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
3464
2975
double tmp1 = (1.0 - Y)/2.0;
3465
2976
double tmp2 = tmp1*tmp1;
3467
2978
// Compute basisvalues.
3468
2979
basisvalues[0] = 1.0;
3469
2980
basisvalues[1] = tmp0;
3470
for (unsigned int r = 1; r < 3; r++)
3472
rr = (r + 1)*((r + 1) + 1)/2;
3474
tt = (r - 1)*((r - 1) + 1)/2;
3475
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
3476
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
3477
}// end loop over 'r'
3478
for (unsigned int r = 0; r < 3; r++)
3480
rr = (r + 1)*(r + 1 + 1)/2 + 1;
3482
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
3483
}// end loop over 'r'
3484
for (unsigned int r = 0; r < 2; r++)
3486
for (unsigned int s = 1; s < 3 - r; s++)
3488
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
3489
ss = (r + s)*(r + s + 1)/2 + s;
3490
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
3491
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));
3492
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));
3493
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));
3494
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
3495
}// end loop over 's'
3496
}// end loop over 'r'
3497
for (unsigned int r = 0; r < 4; r++)
3499
for (unsigned int s = 0; s < 4 - r; s++)
3501
rr = (r + s)*(r + s + 1)/2 + s;
3502
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
3503
}// end loop over 's'
3504
}// end loop over 'r'
2981
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
2982
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
2983
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
2984
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
2985
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
2986
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
2987
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
2988
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
2989
basisvalues[0] *= std::sqrt(0.5);
2990
basisvalues[2] *= std::sqrt(1.0);
2991
basisvalues[5] *= std::sqrt(1.5);
2992
basisvalues[9] *= std::sqrt(2.0);
2993
basisvalues[1] *= std::sqrt(3.0);
2994
basisvalues[4] *= std::sqrt(4.5);
2995
basisvalues[8] *= std::sqrt(6.0);
2996
basisvalues[3] *= std::sqrt(7.5);
2997
basisvalues[7] *= std::sqrt(10.0);
2998
basisvalues[6] *= std::sqrt(14.0);
3506
3000
// Table(s) of coefficients.
3507
3001
static const double coefficients0[10] = \
3521
3015
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
3523
3017
// Declare helper variables.
3524
unsigned int rr = 0;
3525
unsigned int ss = 0;
3526
unsigned int tt = 0;
3530
3018
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
3531
3019
double tmp1 = (1.0 - Y)/2.0;
3532
3020
double tmp2 = tmp1*tmp1;
3534
3022
// Compute basisvalues.
3535
3023
basisvalues[0] = 1.0;
3536
3024
basisvalues[1] = tmp0;
3537
for (unsigned int r = 1; r < 3; r++)
3539
rr = (r + 1)*((r + 1) + 1)/2;
3541
tt = (r - 1)*((r - 1) + 1)/2;
3542
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
3543
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
3544
}// end loop over 'r'
3545
for (unsigned int r = 0; r < 3; r++)
3547
rr = (r + 1)*(r + 1 + 1)/2 + 1;
3549
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
3550
}// end loop over 'r'
3551
for (unsigned int r = 0; r < 2; r++)
3553
for (unsigned int s = 1; s < 3 - r; s++)
3555
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
3556
ss = (r + s)*(r + s + 1)/2 + s;
3557
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
3558
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));
3559
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));
3560
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));
3561
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
3562
}// end loop over 's'
3563
}// end loop over 'r'
3564
for (unsigned int r = 0; r < 4; r++)
3566
for (unsigned int s = 0; s < 4 - r; s++)
3568
rr = (r + s)*(r + s + 1)/2 + s;
3569
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
3570
}// end loop over 's'
3571
}// end loop over 'r'
3025
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
3026
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
3027
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
3028
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
3029
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
3030
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
3031
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
3032
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
3033
basisvalues[0] *= std::sqrt(0.5);
3034
basisvalues[2] *= std::sqrt(1.0);
3035
basisvalues[5] *= std::sqrt(1.5);
3036
basisvalues[9] *= std::sqrt(2.0);
3037
basisvalues[1] *= std::sqrt(3.0);
3038
basisvalues[4] *= std::sqrt(4.5);
3039
basisvalues[8] *= std::sqrt(6.0);
3040
basisvalues[3] *= std::sqrt(7.5);
3041
basisvalues[7] *= std::sqrt(10.0);
3042
basisvalues[6] *= std::sqrt(14.0);
3573
3044
// Table(s) of coefficients.
3574
3045
static const double coefficients0[10] = \
3588
3059
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
3590
3061
// Declare helper variables.
3591
unsigned int rr = 0;
3592
unsigned int ss = 0;
3593
unsigned int tt = 0;
3597
3062
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
3598
3063
double tmp1 = (1.0 - Y)/2.0;
3599
3064
double tmp2 = tmp1*tmp1;
3601
3066
// Compute basisvalues.
3602
3067
basisvalues[0] = 1.0;
3603
3068
basisvalues[1] = tmp0;
3604
for (unsigned int r = 1; r < 3; r++)
3606
rr = (r + 1)*((r + 1) + 1)/2;
3608
tt = (r - 1)*((r - 1) + 1)/2;
3609
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
3610
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
3611
}// end loop over 'r'
3612
for (unsigned int r = 0; r < 3; r++)
3614
rr = (r + 1)*(r + 1 + 1)/2 + 1;
3616
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
3617
}// end loop over 'r'
3618
for (unsigned int r = 0; r < 2; r++)
3620
for (unsigned int s = 1; s < 3 - r; s++)
3622
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
3623
ss = (r + s)*(r + s + 1)/2 + s;
3624
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
3625
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));
3626
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));
3627
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));
3628
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
3629
}// end loop over 's'
3630
}// end loop over 'r'
3631
for (unsigned int r = 0; r < 4; r++)
3633
for (unsigned int s = 0; s < 4 - r; s++)
3635
rr = (r + s)*(r + s + 1)/2 + s;
3636
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
3637
}// end loop over 's'
3638
}// end loop over 'r'
3069
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
3070
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
3071
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
3072
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
3073
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
3074
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
3075
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
3076
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
3077
basisvalues[0] *= std::sqrt(0.5);
3078
basisvalues[2] *= std::sqrt(1.0);
3079
basisvalues[5] *= std::sqrt(1.5);
3080
basisvalues[9] *= std::sqrt(2.0);
3081
basisvalues[1] *= std::sqrt(3.0);
3082
basisvalues[4] *= std::sqrt(4.5);
3083
basisvalues[8] *= std::sqrt(6.0);
3084
basisvalues[3] *= std::sqrt(7.5);
3085
basisvalues[7] *= std::sqrt(10.0);
3086
basisvalues[6] *= std::sqrt(14.0);
3640
3088
// Table(s) of coefficients.
3641
3089
static const double coefficients0[10] = \
3655
3103
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
3657
3105
// Declare helper variables.
3658
unsigned int rr = 0;
3659
unsigned int ss = 0;
3660
unsigned int tt = 0;
3664
3106
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
3665
3107
double tmp1 = (1.0 - Y)/2.0;
3666
3108
double tmp2 = tmp1*tmp1;
3668
3110
// Compute basisvalues.
3669
3111
basisvalues[0] = 1.0;
3670
3112
basisvalues[1] = tmp0;
3671
for (unsigned int r = 1; r < 3; r++)
3673
rr = (r + 1)*((r + 1) + 1)/2;
3675
tt = (r - 1)*((r - 1) + 1)/2;
3676
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
3677
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
3678
}// end loop over 'r'
3679
for (unsigned int r = 0; r < 3; r++)
3681
rr = (r + 1)*(r + 1 + 1)/2 + 1;
3683
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
3684
}// end loop over 'r'
3685
for (unsigned int r = 0; r < 2; r++)
3687
for (unsigned int s = 1; s < 3 - r; s++)
3689
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
3690
ss = (r + s)*(r + s + 1)/2 + s;
3691
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
3692
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));
3693
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));
3694
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));
3695
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
3696
}// end loop over 's'
3697
}// end loop over 'r'
3698
for (unsigned int r = 0; r < 4; r++)
3700
for (unsigned int s = 0; s < 4 - r; s++)
3702
rr = (r + s)*(r + s + 1)/2 + s;
3703
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
3704
}// end loop over 's'
3705
}// end loop over 'r'
3113
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
3114
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
3115
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
3116
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
3117
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
3118
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
3119
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
3120
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
3121
basisvalues[0] *= std::sqrt(0.5);
3122
basisvalues[2] *= std::sqrt(1.0);
3123
basisvalues[5] *= std::sqrt(1.5);
3124
basisvalues[9] *= std::sqrt(2.0);
3125
basisvalues[1] *= std::sqrt(3.0);
3126
basisvalues[4] *= std::sqrt(4.5);
3127
basisvalues[8] *= std::sqrt(6.0);
3128
basisvalues[3] *= std::sqrt(7.5);
3129
basisvalues[7] *= std::sqrt(10.0);
3130
basisvalues[6] *= std::sqrt(14.0);
3707
3132
// Table(s) of coefficients.
3708
3133
static const double coefficients0[10] = \
3722
3147
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
3724
3149
// Declare helper variables.
3725
unsigned int rr = 0;
3726
unsigned int ss = 0;
3727
unsigned int tt = 0;
3731
3150
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
3732
3151
double tmp1 = (1.0 - Y)/2.0;
3733
3152
double tmp2 = tmp1*tmp1;
3735
3154
// Compute basisvalues.
3736
3155
basisvalues[0] = 1.0;
3737
3156
basisvalues[1] = tmp0;
3738
for (unsigned int r = 1; r < 3; r++)
3740
rr = (r + 1)*((r + 1) + 1)/2;
3742
tt = (r - 1)*((r - 1) + 1)/2;
3743
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
3744
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
3745
}// end loop over 'r'
3746
for (unsigned int r = 0; r < 3; r++)
3748
rr = (r + 1)*(r + 1 + 1)/2 + 1;
3750
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
3751
}// end loop over 'r'
3752
for (unsigned int r = 0; r < 2; r++)
3754
for (unsigned int s = 1; s < 3 - r; s++)
3756
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
3757
ss = (r + s)*(r + s + 1)/2 + s;
3758
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
3759
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));
3760
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));
3761
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));
3762
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
3763
}// end loop over 's'
3764
}// end loop over 'r'
3765
for (unsigned int r = 0; r < 4; r++)
3767
for (unsigned int s = 0; s < 4 - r; s++)
3769
rr = (r + s)*(r + s + 1)/2 + s;
3770
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
3771
}// end loop over 's'
3772
}// end loop over 'r'
3157
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
3158
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
3159
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
3160
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
3161
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
3162
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
3163
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
3164
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
3165
basisvalues[0] *= std::sqrt(0.5);
3166
basisvalues[2] *= std::sqrt(1.0);
3167
basisvalues[5] *= std::sqrt(1.5);
3168
basisvalues[9] *= std::sqrt(2.0);
3169
basisvalues[1] *= std::sqrt(3.0);
3170
basisvalues[4] *= std::sqrt(4.5);
3171
basisvalues[8] *= std::sqrt(6.0);
3172
basisvalues[3] *= std::sqrt(7.5);
3173
basisvalues[7] *= std::sqrt(10.0);
3174
basisvalues[6] *= std::sqrt(14.0);
3774
3176
// Table(s) of coefficients.
3775
3177
static const double coefficients0[10] = \
3789
3191
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
3791
3193
// Declare helper variables.
3792
unsigned int rr = 0;
3793
unsigned int ss = 0;
3794
unsigned int tt = 0;
3798
3194
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
3799
3195
double tmp1 = (1.0 - Y)/2.0;
3800
3196
double tmp2 = tmp1*tmp1;
3802
3198
// Compute basisvalues.
3803
3199
basisvalues[0] = 1.0;
3804
3200
basisvalues[1] = tmp0;
3805
for (unsigned int r = 1; r < 3; r++)
3807
rr = (r + 1)*((r + 1) + 1)/2;
3809
tt = (r - 1)*((r - 1) + 1)/2;
3810
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
3811
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
3812
}// end loop over 'r'
3813
for (unsigned int r = 0; r < 3; r++)
3815
rr = (r + 1)*(r + 1 + 1)/2 + 1;
3817
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
3818
}// end loop over 'r'
3819
for (unsigned int r = 0; r < 2; r++)
3821
for (unsigned int s = 1; s < 3 - r; s++)
3823
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
3824
ss = (r + s)*(r + s + 1)/2 + s;
3825
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
3826
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));
3827
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));
3828
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));
3829
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
3830
}// end loop over 's'
3831
}// end loop over 'r'
3832
for (unsigned int r = 0; r < 4; r++)
3834
for (unsigned int s = 0; s < 4 - r; s++)
3836
rr = (r + s)*(r + s + 1)/2 + s;
3837
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
3838
}// end loop over 's'
3839
}// end loop over 'r'
3201
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
3202
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
3203
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
3204
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
3205
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
3206
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
3207
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
3208
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
3209
basisvalues[0] *= std::sqrt(0.5);
3210
basisvalues[2] *= std::sqrt(1.0);
3211
basisvalues[5] *= std::sqrt(1.5);
3212
basisvalues[9] *= std::sqrt(2.0);
3213
basisvalues[1] *= std::sqrt(3.0);
3214
basisvalues[4] *= std::sqrt(4.5);
3215
basisvalues[8] *= std::sqrt(6.0);
3216
basisvalues[3] *= std::sqrt(7.5);
3217
basisvalues[7] *= std::sqrt(10.0);
3218
basisvalues[6] *= std::sqrt(14.0);
3841
3220
// Table(s) of coefficients.
3842
3221
static const double coefficients0[10] = \
3856
3235
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
3858
3237
// Declare helper variables.
3859
unsigned int rr = 0;
3860
unsigned int ss = 0;
3861
unsigned int tt = 0;
3865
3238
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
3866
3239
double tmp1 = (1.0 - Y)/2.0;
3867
3240
double tmp2 = tmp1*tmp1;
3869
3242
// Compute basisvalues.
3870
3243
basisvalues[0] = 1.0;
3871
3244
basisvalues[1] = tmp0;
3872
for (unsigned int r = 1; r < 3; r++)
3874
rr = (r + 1)*((r + 1) + 1)/2;
3876
tt = (r - 1)*((r - 1) + 1)/2;
3877
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
3878
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
3879
}// end loop over 'r'
3880
for (unsigned int r = 0; r < 3; r++)
3882
rr = (r + 1)*(r + 1 + 1)/2 + 1;
3884
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
3885
}// end loop over 'r'
3886
for (unsigned int r = 0; r < 2; r++)
3888
for (unsigned int s = 1; s < 3 - r; s++)
3890
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
3891
ss = (r + s)*(r + s + 1)/2 + s;
3892
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
3893
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));
3894
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));
3895
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));
3896
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
3897
}// end loop over 's'
3898
}// end loop over 'r'
3899
for (unsigned int r = 0; r < 4; r++)
3901
for (unsigned int s = 0; s < 4 - r; s++)
3903
rr = (r + s)*(r + s + 1)/2 + s;
3904
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
3905
}// end loop over 's'
3906
}// end loop over 'r'
3245
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
3246
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
3247
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
3248
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
3249
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
3250
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
3251
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
3252
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
3253
basisvalues[0] *= std::sqrt(0.5);
3254
basisvalues[2] *= std::sqrt(1.0);
3255
basisvalues[5] *= std::sqrt(1.5);
3256
basisvalues[9] *= std::sqrt(2.0);
3257
basisvalues[1] *= std::sqrt(3.0);
3258
basisvalues[4] *= std::sqrt(4.5);
3259
basisvalues[8] *= std::sqrt(6.0);
3260
basisvalues[3] *= std::sqrt(7.5);
3261
basisvalues[7] *= std::sqrt(10.0);
3262
basisvalues[6] *= std::sqrt(14.0);
3908
3264
// Table(s) of coefficients.
3909
3265
static const double coefficients0[10] = \
3923
3279
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
3925
3281
// Declare helper variables.
3926
unsigned int rr = 0;
3927
unsigned int ss = 0;
3928
unsigned int tt = 0;
3932
3282
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
3933
3283
double tmp1 = (1.0 - Y)/2.0;
3934
3284
double tmp2 = tmp1*tmp1;
3936
3286
// Compute basisvalues.
3937
3287
basisvalues[0] = 1.0;
3938
3288
basisvalues[1] = tmp0;
3939
for (unsigned int r = 1; r < 3; r++)
3941
rr = (r + 1)*((r + 1) + 1)/2;
3943
tt = (r - 1)*((r - 1) + 1)/2;
3944
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
3945
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
3946
}// end loop over 'r'
3947
for (unsigned int r = 0; r < 3; r++)
3949
rr = (r + 1)*(r + 1 + 1)/2 + 1;
3951
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
3952
}// end loop over 'r'
3953
for (unsigned int r = 0; r < 2; r++)
3955
for (unsigned int s = 1; s < 3 - r; s++)
3957
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
3958
ss = (r + s)*(r + s + 1)/2 + s;
3959
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
3960
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));
3961
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));
3962
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));
3963
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
3964
}// end loop over 's'
3965
}// end loop over 'r'
3966
for (unsigned int r = 0; r < 4; r++)
3968
for (unsigned int s = 0; s < 4 - r; s++)
3970
rr = (r + s)*(r + s + 1)/2 + s;
3971
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
3972
}// end loop over 's'
3973
}// end loop over 'r'
3289
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
3290
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
3291
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
3292
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
3293
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
3294
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
3295
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
3296
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
3297
basisvalues[0] *= std::sqrt(0.5);
3298
basisvalues[2] *= std::sqrt(1.0);
3299
basisvalues[5] *= std::sqrt(1.5);
3300
basisvalues[9] *= std::sqrt(2.0);
3301
basisvalues[1] *= std::sqrt(3.0);
3302
basisvalues[4] *= std::sqrt(4.5);
3303
basisvalues[8] *= std::sqrt(6.0);
3304
basisvalues[3] *= std::sqrt(7.5);
3305
basisvalues[7] *= std::sqrt(10.0);
3306
basisvalues[6] *= std::sqrt(14.0);
3975
3308
// Table(s) of coefficients.
3976
3309
static const double coefficients0[10] = \
3990
3323
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
3992
3325
// Declare helper variables.
3993
unsigned int rr = 0;
3994
unsigned int ss = 0;
3995
unsigned int tt = 0;
3999
3326
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
4000
3327
double tmp1 = (1.0 - Y)/2.0;
4001
3328
double tmp2 = tmp1*tmp1;
4003
3330
// Compute basisvalues.
4004
3331
basisvalues[0] = 1.0;
4005
3332
basisvalues[1] = tmp0;
4006
for (unsigned int r = 1; r < 3; r++)
4008
rr = (r + 1)*((r + 1) + 1)/2;
4010
tt = (r - 1)*((r - 1) + 1)/2;
4011
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
4012
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
4013
}// end loop over 'r'
4014
for (unsigned int r = 0; r < 3; r++)
4016
rr = (r + 1)*(r + 1 + 1)/2 + 1;
4018
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
4019
}// end loop over 'r'
4020
for (unsigned int r = 0; r < 2; r++)
4022
for (unsigned int s = 1; s < 3 - r; s++)
4024
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
4025
ss = (r + s)*(r + s + 1)/2 + s;
4026
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
4027
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));
4028
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));
4029
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));
4030
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
4031
}// end loop over 's'
4032
}// end loop over 'r'
4033
for (unsigned int r = 0; r < 4; r++)
4035
for (unsigned int s = 0; s < 4 - r; s++)
4037
rr = (r + s)*(r + s + 1)/2 + s;
4038
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
4039
}// end loop over 's'
4040
}// end loop over 'r'
3333
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
3334
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
3335
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
3336
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
3337
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
3338
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
3339
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
3340
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
3341
basisvalues[0] *= std::sqrt(0.5);
3342
basisvalues[2] *= std::sqrt(1.0);
3343
basisvalues[5] *= std::sqrt(1.5);
3344
basisvalues[9] *= std::sqrt(2.0);
3345
basisvalues[1] *= std::sqrt(3.0);
3346
basisvalues[4] *= std::sqrt(4.5);
3347
basisvalues[8] *= std::sqrt(6.0);
3348
basisvalues[3] *= std::sqrt(7.5);
3349
basisvalues[7] *= std::sqrt(10.0);
3350
basisvalues[6] *= std::sqrt(14.0);
4042
3352
// Table(s) of coefficients.
4043
3353
static const double coefficients0[10] = \
4057
3367
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
4059
3369
// Declare helper variables.
4060
unsigned int rr = 0;
4061
unsigned int ss = 0;
4062
unsigned int tt = 0;
4066
3370
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
4067
3371
double tmp1 = (1.0 - Y)/2.0;
4068
3372
double tmp2 = tmp1*tmp1;
4070
3374
// Compute basisvalues.
4071
3375
basisvalues[0] = 1.0;
4072
3376
basisvalues[1] = tmp0;
4073
for (unsigned int r = 1; r < 3; r++)
4075
rr = (r + 1)*((r + 1) + 1)/2;
4077
tt = (r - 1)*((r - 1) + 1)/2;
4078
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
4079
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
4080
}// end loop over 'r'
4081
for (unsigned int r = 0; r < 3; r++)
4083
rr = (r + 1)*(r + 1 + 1)/2 + 1;
4085
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
4086
}// end loop over 'r'
4087
for (unsigned int r = 0; r < 2; r++)
4089
for (unsigned int s = 1; s < 3 - r; s++)
4091
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
4092
ss = (r + s)*(r + s + 1)/2 + s;
4093
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
4094
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));
4095
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));
4096
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));
4097
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
4098
}// end loop over 's'
4099
}// end loop over 'r'
4100
for (unsigned int r = 0; r < 4; r++)
4102
for (unsigned int s = 0; s < 4 - r; s++)
4104
rr = (r + s)*(r + s + 1)/2 + s;
4105
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
4106
}// end loop over 's'
4107
}// end loop over 'r'
3377
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
3378
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
3379
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
3380
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
3381
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
3382
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
3383
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
3384
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
3385
basisvalues[0] *= std::sqrt(0.5);
3386
basisvalues[2] *= std::sqrt(1.0);
3387
basisvalues[5] *= std::sqrt(1.5);
3388
basisvalues[9] *= std::sqrt(2.0);
3389
basisvalues[1] *= std::sqrt(3.0);
3390
basisvalues[4] *= std::sqrt(4.5);
3391
basisvalues[8] *= std::sqrt(6.0);
3392
basisvalues[3] *= std::sqrt(7.5);
3393
basisvalues[7] *= std::sqrt(10.0);
3394
basisvalues[6] *= std::sqrt(14.0);
4109
3396
// Table(s) of coefficients.
4110
3397
static const double coefficients0[10] = \
4124
3411
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
4126
3413
// Declare helper variables.
4127
unsigned int rr = 0;
4128
unsigned int ss = 0;
4129
unsigned int tt = 0;
4133
3414
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
4134
3415
double tmp1 = (1.0 - Y)/2.0;
4135
3416
double tmp2 = tmp1*tmp1;
4137
3418
// Compute basisvalues.
4138
3419
basisvalues[0] = 1.0;
4139
3420
basisvalues[1] = tmp0;
4140
for (unsigned int r = 1; r < 3; r++)
4142
rr = (r + 1)*((r + 1) + 1)/2;
4144
tt = (r - 1)*((r - 1) + 1)/2;
4145
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
4146
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
4147
}// end loop over 'r'
4148
for (unsigned int r = 0; r < 3; r++)
4150
rr = (r + 1)*(r + 1 + 1)/2 + 1;
4152
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
4153
}// end loop over 'r'
4154
for (unsigned int r = 0; r < 2; r++)
4156
for (unsigned int s = 1; s < 3 - r; s++)
4158
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
4159
ss = (r + s)*(r + s + 1)/2 + s;
4160
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
4161
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));
4162
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));
4163
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));
4164
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
4165
}// end loop over 's'
4166
}// end loop over 'r'
4167
for (unsigned int r = 0; r < 4; r++)
4169
for (unsigned int s = 0; s < 4 - r; s++)
4171
rr = (r + s)*(r + s + 1)/2 + s;
4172
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
4173
}// end loop over 's'
4174
}// end loop over 'r'
3421
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
3422
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
3423
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
3424
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
3425
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
3426
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
3427
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
3428
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
3429
basisvalues[0] *= std::sqrt(0.5);
3430
basisvalues[2] *= std::sqrt(1.0);
3431
basisvalues[5] *= std::sqrt(1.5);
3432
basisvalues[9] *= std::sqrt(2.0);
3433
basisvalues[1] *= std::sqrt(3.0);
3434
basisvalues[4] *= std::sqrt(4.5);
3435
basisvalues[8] *= std::sqrt(6.0);
3436
basisvalues[3] *= std::sqrt(7.5);
3437
basisvalues[7] *= std::sqrt(10.0);
3438
basisvalues[6] *= std::sqrt(14.0);
4176
3440
// Table(s) of coefficients.
4177
3441
static const double coefficients0[10] = \
4191
3455
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
4193
3457
// Declare helper variables.
4194
unsigned int rr = 0;
4195
unsigned int ss = 0;
4196
unsigned int tt = 0;
4200
3458
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
4201
3459
double tmp1 = (1.0 - Y)/2.0;
4202
3460
double tmp2 = tmp1*tmp1;
4204
3462
// Compute basisvalues.
4205
3463
basisvalues[0] = 1.0;
4206
3464
basisvalues[1] = tmp0;
4207
for (unsigned int r = 1; r < 3; r++)
4209
rr = (r + 1)*((r + 1) + 1)/2;
4211
tt = (r - 1)*((r - 1) + 1)/2;
4212
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
4213
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
4214
}// end loop over 'r'
4215
for (unsigned int r = 0; r < 3; r++)
4217
rr = (r + 1)*(r + 1 + 1)/2 + 1;
4219
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
4220
}// end loop over 'r'
4221
for (unsigned int r = 0; r < 2; r++)
4223
for (unsigned int s = 1; s < 3 - r; s++)
4225
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
4226
ss = (r + s)*(r + s + 1)/2 + s;
4227
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
4228
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));
4229
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));
4230
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));
4231
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
4232
}// end loop over 's'
4233
}// end loop over 'r'
4234
for (unsigned int r = 0; r < 4; r++)
4236
for (unsigned int s = 0; s < 4 - r; s++)
4238
rr = (r + s)*(r + s + 1)/2 + s;
4239
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
4240
}// end loop over 's'
4241
}// end loop over 'r'
3465
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
3466
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
3467
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
3468
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
3469
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
3470
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
3471
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
3472
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
3473
basisvalues[0] *= std::sqrt(0.5);
3474
basisvalues[2] *= std::sqrt(1.0);
3475
basisvalues[5] *= std::sqrt(1.5);
3476
basisvalues[9] *= std::sqrt(2.0);
3477
basisvalues[1] *= std::sqrt(3.0);
3478
basisvalues[4] *= std::sqrt(4.5);
3479
basisvalues[8] *= std::sqrt(6.0);
3480
basisvalues[3] *= std::sqrt(7.5);
3481
basisvalues[7] *= std::sqrt(10.0);
3482
basisvalues[6] *= std::sqrt(14.0);
4243
3484
// Table(s) of coefficients.
4244
3485
static const double coefficients0[10] = \
4258
3499
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
4260
3501
// Declare helper variables.
4261
unsigned int rr = 0;
4262
unsigned int ss = 0;
4263
unsigned int tt = 0;
4267
3502
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
4268
3503
double tmp1 = (1.0 - Y)/2.0;
4269
3504
double tmp2 = tmp1*tmp1;
4271
3506
// Compute basisvalues.
4272
3507
basisvalues[0] = 1.0;
4273
3508
basisvalues[1] = tmp0;
4274
for (unsigned int r = 1; r < 3; r++)
4276
rr = (r + 1)*((r + 1) + 1)/2;
4278
tt = (r - 1)*((r - 1) + 1)/2;
4279
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
4280
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
4281
}// end loop over 'r'
4282
for (unsigned int r = 0; r < 3; r++)
4284
rr = (r + 1)*(r + 1 + 1)/2 + 1;
4286
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
4287
}// end loop over 'r'
4288
for (unsigned int r = 0; r < 2; r++)
4290
for (unsigned int s = 1; s < 3 - r; s++)
4292
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
4293
ss = (r + s)*(r + s + 1)/2 + s;
4294
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
4295
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));
4296
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));
4297
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));
4298
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
4299
}// end loop over 's'
4300
}// end loop over 'r'
4301
for (unsigned int r = 0; r < 4; r++)
4303
for (unsigned int s = 0; s < 4 - r; s++)
4305
rr = (r + s)*(r + s + 1)/2 + s;
4306
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
4307
}// end loop over 's'
4308
}// end loop over 'r'
3509
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
3510
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
3511
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
3512
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
3513
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
3514
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
3515
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
3516
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
3517
basisvalues[0] *= std::sqrt(0.5);
3518
basisvalues[2] *= std::sqrt(1.0);
3519
basisvalues[5] *= std::sqrt(1.5);
3520
basisvalues[9] *= std::sqrt(2.0);
3521
basisvalues[1] *= std::sqrt(3.0);
3522
basisvalues[4] *= std::sqrt(4.5);
3523
basisvalues[8] *= std::sqrt(6.0);
3524
basisvalues[3] *= std::sqrt(7.5);
3525
basisvalues[7] *= std::sqrt(10.0);
3526
basisvalues[6] *= std::sqrt(14.0);
4310
3528
// Table(s) of coefficients.
4311
3529
static const double coefficients0[10] = \
4325
3543
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
4327
3545
// Declare helper variables.
4328
unsigned int rr = 0;
4329
unsigned int ss = 0;
4330
unsigned int tt = 0;
4334
3546
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
4335
3547
double tmp1 = (1.0 - Y)/2.0;
4336
3548
double tmp2 = tmp1*tmp1;
4338
3550
// Compute basisvalues.
4339
3551
basisvalues[0] = 1.0;
4340
3552
basisvalues[1] = tmp0;
4341
for (unsigned int r = 1; r < 3; r++)
4343
rr = (r + 1)*((r + 1) + 1)/2;
4345
tt = (r - 1)*((r - 1) + 1)/2;
4346
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
4347
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
4348
}// end loop over 'r'
4349
for (unsigned int r = 0; r < 3; r++)
4351
rr = (r + 1)*(r + 1 + 1)/2 + 1;
4353
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
4354
}// end loop over 'r'
4355
for (unsigned int r = 0; r < 2; r++)
4357
for (unsigned int s = 1; s < 3 - r; s++)
4359
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
4360
ss = (r + s)*(r + s + 1)/2 + s;
4361
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
4362
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));
4363
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));
4364
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));
4365
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
4366
}// end loop over 's'
4367
}// end loop over 'r'
4368
for (unsigned int r = 0; r < 4; r++)
4370
for (unsigned int s = 0; s < 4 - r; s++)
4372
rr = (r + s)*(r + s + 1)/2 + s;
4373
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
4374
}// end loop over 's'
4375
}// end loop over 'r'
3553
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
3554
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
3555
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
3556
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
3557
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
3558
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
3559
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
3560
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
3561
basisvalues[0] *= std::sqrt(0.5);
3562
basisvalues[2] *= std::sqrt(1.0);
3563
basisvalues[5] *= std::sqrt(1.5);
3564
basisvalues[9] *= std::sqrt(2.0);
3565
basisvalues[1] *= std::sqrt(3.0);
3566
basisvalues[4] *= std::sqrt(4.5);
3567
basisvalues[8] *= std::sqrt(6.0);
3568
basisvalues[3] *= std::sqrt(7.5);
3569
basisvalues[7] *= std::sqrt(10.0);
3570
basisvalues[6] *= std::sqrt(14.0);
4377
3572
// Table(s) of coefficients.
4378
3573
static const double coefficients0[10] = \
4392
3587
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
4394
3589
// Declare helper variables.
4395
unsigned int rr = 0;
4396
unsigned int ss = 0;
4397
unsigned int tt = 0;
4401
3590
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
4402
3591
double tmp1 = (1.0 - Y)/2.0;
4403
3592
double tmp2 = tmp1*tmp1;
4405
3594
// Compute basisvalues.
4406
3595
basisvalues[0] = 1.0;
4407
3596
basisvalues[1] = tmp0;
4408
for (unsigned int r = 1; r < 3; r++)
4410
rr = (r + 1)*((r + 1) + 1)/2;
4412
tt = (r - 1)*((r - 1) + 1)/2;
4413
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
4414
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
4415
}// end loop over 'r'
4416
for (unsigned int r = 0; r < 3; r++)
4418
rr = (r + 1)*(r + 1 + 1)/2 + 1;
4420
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
4421
}// end loop over 'r'
4422
for (unsigned int r = 0; r < 2; r++)
4424
for (unsigned int s = 1; s < 3 - r; s++)
4426
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
4427
ss = (r + s)*(r + s + 1)/2 + s;
4428
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
4429
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));
4430
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));
4431
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));
4432
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
4433
}// end loop over 's'
4434
}// end loop over 'r'
4435
for (unsigned int r = 0; r < 4; r++)
4437
for (unsigned int s = 0; s < 4 - r; s++)
4439
rr = (r + s)*(r + s + 1)/2 + s;
4440
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
4441
}// end loop over 's'
4442
}// end loop over 'r'
3597
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
3598
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
3599
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
3600
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
3601
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
3602
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
3603
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
3604
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
3605
basisvalues[0] *= std::sqrt(0.5);
3606
basisvalues[2] *= std::sqrt(1.0);
3607
basisvalues[5] *= std::sqrt(1.5);
3608
basisvalues[9] *= std::sqrt(2.0);
3609
basisvalues[1] *= std::sqrt(3.0);
3610
basisvalues[4] *= std::sqrt(4.5);
3611
basisvalues[8] *= std::sqrt(6.0);
3612
basisvalues[3] *= std::sqrt(7.5);
3613
basisvalues[7] *= std::sqrt(10.0);
3614
basisvalues[6] *= std::sqrt(14.0);
4444
3616
// Table(s) of coefficients.
4445
3617
static const double coefficients0[10] = \
4459
3631
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
4461
3633
// Declare helper variables.
4462
unsigned int rr = 0;
4463
unsigned int ss = 0;
4464
unsigned int tt = 0;
4468
3634
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
4469
3635
double tmp1 = (1.0 - Y)/2.0;
4470
3636
double tmp2 = tmp1*tmp1;
4472
3638
// Compute basisvalues.
4473
3639
basisvalues[0] = 1.0;
4474
3640
basisvalues[1] = tmp0;
4475
for (unsigned int r = 1; r < 3; r++)
4477
rr = (r + 1)*((r + 1) + 1)/2;
4479
tt = (r - 1)*((r - 1) + 1)/2;
4480
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
4481
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
4482
}// end loop over 'r'
4483
for (unsigned int r = 0; r < 3; r++)
4485
rr = (r + 1)*(r + 1 + 1)/2 + 1;
4487
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
4488
}// end loop over 'r'
4489
for (unsigned int r = 0; r < 2; r++)
4491
for (unsigned int s = 1; s < 3 - r; s++)
4493
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
4494
ss = (r + s)*(r + s + 1)/2 + s;
4495
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
4496
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));
4497
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));
4498
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));
4499
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
4500
}// end loop over 's'
4501
}// end loop over 'r'
4502
for (unsigned int r = 0; r < 4; r++)
4504
for (unsigned int s = 0; s < 4 - r; s++)
4506
rr = (r + s)*(r + s + 1)/2 + s;
4507
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
4508
}// end loop over 's'
4509
}// end loop over 'r'
3641
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
3642
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
3643
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
3644
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
3645
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
3646
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
3647
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
3648
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
3649
basisvalues[0] *= std::sqrt(0.5);
3650
basisvalues[2] *= std::sqrt(1.0);
3651
basisvalues[5] *= std::sqrt(1.5);
3652
basisvalues[9] *= std::sqrt(2.0);
3653
basisvalues[1] *= std::sqrt(3.0);
3654
basisvalues[4] *= std::sqrt(4.5);
3655
basisvalues[8] *= std::sqrt(6.0);
3656
basisvalues[3] *= std::sqrt(7.5);
3657
basisvalues[7] *= std::sqrt(10.0);
3658
basisvalues[6] *= std::sqrt(14.0);
4511
3660
// Table(s) of coefficients.
4512
3661
static const double coefficients0[10] = \
4526
3675
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
4528
3677
// Declare helper variables.
4529
unsigned int rr = 0;
4530
unsigned int ss = 0;
4531
unsigned int tt = 0;
4535
3678
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
4536
3679
double tmp1 = (1.0 - Y)/2.0;
4537
3680
double tmp2 = tmp1*tmp1;
4539
3682
// Compute basisvalues.
4540
3683
basisvalues[0] = 1.0;
4541
3684
basisvalues[1] = tmp0;
4542
for (unsigned int r = 1; r < 3; r++)
4544
rr = (r + 1)*((r + 1) + 1)/2;
4546
tt = (r - 1)*((r - 1) + 1)/2;
4547
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
4548
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
4549
}// end loop over 'r'
4550
for (unsigned int r = 0; r < 3; r++)
4552
rr = (r + 1)*(r + 1 + 1)/2 + 1;
4554
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
4555
}// end loop over 'r'
4556
for (unsigned int r = 0; r < 2; r++)
4558
for (unsigned int s = 1; s < 3 - r; s++)
4560
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
4561
ss = (r + s)*(r + s + 1)/2 + s;
4562
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
4563
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));
4564
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));
4565
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));
4566
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
4567
}// end loop over 's'
4568
}// end loop over 'r'
4569
for (unsigned int r = 0; r < 4; r++)
4571
for (unsigned int s = 0; s < 4 - r; s++)
4573
rr = (r + s)*(r + s + 1)/2 + s;
4574
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
4575
}// end loop over 's'
4576
}// end loop over 'r'
3685
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
3686
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
3687
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
3688
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
3689
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
3690
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
3691
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
3692
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
3693
basisvalues[0] *= std::sqrt(0.5);
3694
basisvalues[2] *= std::sqrt(1.0);
3695
basisvalues[5] *= std::sqrt(1.5);
3696
basisvalues[9] *= std::sqrt(2.0);
3697
basisvalues[1] *= std::sqrt(3.0);
3698
basisvalues[4] *= std::sqrt(4.5);
3699
basisvalues[8] *= std::sqrt(6.0);
3700
basisvalues[3] *= std::sqrt(7.5);
3701
basisvalues[7] *= std::sqrt(10.0);
3702
basisvalues[6] *= std::sqrt(14.0);
4578
3704
// Table(s) of coefficients.
4579
3705
static const double coefficients0[10] = \
4715
3841
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
4717
3843
// Declare helper variables.
4718
unsigned int rr = 0;
4719
unsigned int ss = 0;
4720
unsigned int tt = 0;
4724
3844
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
4725
3845
double tmp1 = (1.0 - Y)/2.0;
4726
3846
double tmp2 = tmp1*tmp1;
4728
3848
// Compute basisvalues.
4729
3849
basisvalues[0] = 1.0;
4730
3850
basisvalues[1] = tmp0;
4731
for (unsigned int r = 1; r < 3; r++)
4733
rr = (r + 1)*((r + 1) + 1)/2;
4735
tt = (r - 1)*((r - 1) + 1)/2;
4736
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
4737
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
4738
}// end loop over 'r'
4739
for (unsigned int r = 0; r < 3; r++)
4741
rr = (r + 1)*(r + 1 + 1)/2 + 1;
4743
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
4744
}// end loop over 'r'
4745
for (unsigned int r = 0; r < 2; r++)
4747
for (unsigned int s = 1; s < 3 - r; s++)
4749
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
4750
ss = (r + s)*(r + s + 1)/2 + s;
4751
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
4752
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));
4753
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));
4754
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));
4755
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
4756
}// end loop over 's'
4757
}// end loop over 'r'
4758
for (unsigned int r = 0; r < 4; r++)
4760
for (unsigned int s = 0; s < 4 - r; s++)
4762
rr = (r + s)*(r + s + 1)/2 + s;
4763
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
4764
}// end loop over 's'
4765
}// end loop over 'r'
3851
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
3852
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
3853
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
3854
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
3855
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
3856
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
3857
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
3858
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
3859
basisvalues[0] *= std::sqrt(0.5);
3860
basisvalues[2] *= std::sqrt(1.0);
3861
basisvalues[5] *= std::sqrt(1.5);
3862
basisvalues[9] *= std::sqrt(2.0);
3863
basisvalues[1] *= std::sqrt(3.0);
3864
basisvalues[4] *= std::sqrt(4.5);
3865
basisvalues[8] *= std::sqrt(6.0);
3866
basisvalues[3] *= std::sqrt(7.5);
3867
basisvalues[7] *= std::sqrt(10.0);
3868
basisvalues[6] *= std::sqrt(14.0);
4767
3870
// Table(s) of coefficients.
4768
3871
static const double coefficients0[10] = \
4928
4031
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
4930
4033
// Declare helper variables.
4931
unsigned int rr = 0;
4932
unsigned int ss = 0;
4933
unsigned int tt = 0;
4937
4034
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
4938
4035
double tmp1 = (1.0 - Y)/2.0;
4939
4036
double tmp2 = tmp1*tmp1;
4941
4038
// Compute basisvalues.
4942
4039
basisvalues[0] = 1.0;
4943
4040
basisvalues[1] = tmp0;
4944
for (unsigned int r = 1; r < 3; r++)
4946
rr = (r + 1)*((r + 1) + 1)/2;
4948
tt = (r - 1)*((r - 1) + 1)/2;
4949
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
4950
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
4951
}// end loop over 'r'
4952
for (unsigned int r = 0; r < 3; r++)
4954
rr = (r + 1)*(r + 1 + 1)/2 + 1;
4956
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
4957
}// end loop over 'r'
4958
for (unsigned int r = 0; r < 2; r++)
4960
for (unsigned int s = 1; s < 3 - r; s++)
4962
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
4963
ss = (r + s)*(r + s + 1)/2 + s;
4964
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
4965
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));
4966
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));
4967
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));
4968
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
4969
}// end loop over 's'
4970
}// end loop over 'r'
4971
for (unsigned int r = 0; r < 4; r++)
4973
for (unsigned int s = 0; s < 4 - r; s++)
4975
rr = (r + s)*(r + s + 1)/2 + s;
4976
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
4977
}// end loop over 's'
4978
}// end loop over 'r'
4041
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
4042
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
4043
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
4044
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
4045
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
4046
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
4047
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
4048
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
4049
basisvalues[0] *= std::sqrt(0.5);
4050
basisvalues[2] *= std::sqrt(1.0);
4051
basisvalues[5] *= std::sqrt(1.5);
4052
basisvalues[9] *= std::sqrt(2.0);
4053
basisvalues[1] *= std::sqrt(3.0);
4054
basisvalues[4] *= std::sqrt(4.5);
4055
basisvalues[8] *= std::sqrt(6.0);
4056
basisvalues[3] *= std::sqrt(7.5);
4057
basisvalues[7] *= std::sqrt(10.0);
4058
basisvalues[6] *= std::sqrt(14.0);
4980
4060
// Table(s) of coefficients.
4981
4061
static const double coefficients0[10] = \
5141
4221
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
5143
4223
// Declare helper variables.
5144
unsigned int rr = 0;
5145
unsigned int ss = 0;
5146
unsigned int tt = 0;
5150
4224
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
5151
4225
double tmp1 = (1.0 - Y)/2.0;
5152
4226
double tmp2 = tmp1*tmp1;
5154
4228
// Compute basisvalues.
5155
4229
basisvalues[0] = 1.0;
5156
4230
basisvalues[1] = tmp0;
5157
for (unsigned int r = 1; r < 3; r++)
5159
rr = (r + 1)*((r + 1) + 1)/2;
5161
tt = (r - 1)*((r - 1) + 1)/2;
5162
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
5163
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
5164
}// end loop over 'r'
5165
for (unsigned int r = 0; r < 3; r++)
5167
rr = (r + 1)*(r + 1 + 1)/2 + 1;
5169
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
5170
}// end loop over 'r'
5171
for (unsigned int r = 0; r < 2; r++)
5173
for (unsigned int s = 1; s < 3 - r; s++)
5175
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
5176
ss = (r + s)*(r + s + 1)/2 + s;
5177
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
5178
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));
5179
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));
5180
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));
5181
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
5182
}// end loop over 's'
5183
}// end loop over 'r'
5184
for (unsigned int r = 0; r < 4; r++)
5186
for (unsigned int s = 0; s < 4 - r; s++)
5188
rr = (r + s)*(r + s + 1)/2 + s;
5189
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
5190
}// end loop over 's'
5191
}// end loop over 'r'
4231
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
4232
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
4233
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
4234
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
4235
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
4236
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
4237
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
4238
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
4239
basisvalues[0] *= std::sqrt(0.5);
4240
basisvalues[2] *= std::sqrt(1.0);
4241
basisvalues[5] *= std::sqrt(1.5);
4242
basisvalues[9] *= std::sqrt(2.0);
4243
basisvalues[1] *= std::sqrt(3.0);
4244
basisvalues[4] *= std::sqrt(4.5);
4245
basisvalues[8] *= std::sqrt(6.0);
4246
basisvalues[3] *= std::sqrt(7.5);
4247
basisvalues[7] *= std::sqrt(10.0);
4248
basisvalues[6] *= std::sqrt(14.0);
5193
4250
// Table(s) of coefficients.
5194
4251
static const double coefficients0[10] = \
5354
4411
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
5356
4413
// Declare helper variables.
5357
unsigned int rr = 0;
5358
unsigned int ss = 0;
5359
unsigned int tt = 0;
5363
4414
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
5364
4415
double tmp1 = (1.0 - Y)/2.0;
5365
4416
double tmp2 = tmp1*tmp1;
5367
4418
// Compute basisvalues.
5368
4419
basisvalues[0] = 1.0;
5369
4420
basisvalues[1] = tmp0;
5370
for (unsigned int r = 1; r < 3; r++)
5372
rr = (r + 1)*((r + 1) + 1)/2;
5374
tt = (r - 1)*((r - 1) + 1)/2;
5375
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
5376
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
5377
}// end loop over 'r'
5378
for (unsigned int r = 0; r < 3; r++)
5380
rr = (r + 1)*(r + 1 + 1)/2 + 1;
5382
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
5383
}// end loop over 'r'
5384
for (unsigned int r = 0; r < 2; r++)
5386
for (unsigned int s = 1; s < 3 - r; s++)
5388
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
5389
ss = (r + s)*(r + s + 1)/2 + s;
5390
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
5391
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));
5392
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));
5393
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));
5394
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
5395
}// end loop over 's'
5396
}// end loop over 'r'
5397
for (unsigned int r = 0; r < 4; r++)
5399
for (unsigned int s = 0; s < 4 - r; s++)
5401
rr = (r + s)*(r + s + 1)/2 + s;
5402
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
5403
}// end loop over 's'
5404
}// end loop over 'r'
4421
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
4422
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
4423
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
4424
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
4425
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
4426
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
4427
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
4428
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
4429
basisvalues[0] *= std::sqrt(0.5);
4430
basisvalues[2] *= std::sqrt(1.0);
4431
basisvalues[5] *= std::sqrt(1.5);
4432
basisvalues[9] *= std::sqrt(2.0);
4433
basisvalues[1] *= std::sqrt(3.0);
4434
basisvalues[4] *= std::sqrt(4.5);
4435
basisvalues[8] *= std::sqrt(6.0);
4436
basisvalues[3] *= std::sqrt(7.5);
4437
basisvalues[7] *= std::sqrt(10.0);
4438
basisvalues[6] *= std::sqrt(14.0);
5406
4440
// Table(s) of coefficients.
5407
4441
static const double coefficients0[10] = \
5567
4601
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
5569
4603
// Declare helper variables.
5570
unsigned int rr = 0;
5571
unsigned int ss = 0;
5572
unsigned int tt = 0;
5576
4604
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
5577
4605
double tmp1 = (1.0 - Y)/2.0;
5578
4606
double tmp2 = tmp1*tmp1;
5580
4608
// Compute basisvalues.
5581
4609
basisvalues[0] = 1.0;
5582
4610
basisvalues[1] = tmp0;
5583
for (unsigned int r = 1; r < 3; r++)
5585
rr = (r + 1)*((r + 1) + 1)/2;
5587
tt = (r - 1)*((r - 1) + 1)/2;
5588
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
5589
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
5590
}// end loop over 'r'
5591
for (unsigned int r = 0; r < 3; r++)
5593
rr = (r + 1)*(r + 1 + 1)/2 + 1;
5595
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
5596
}// end loop over 'r'
5597
for (unsigned int r = 0; r < 2; r++)
5599
for (unsigned int s = 1; s < 3 - r; s++)
5601
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
5602
ss = (r + s)*(r + s + 1)/2 + s;
5603
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
5604
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));
5605
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));
5606
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));
5607
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
5608
}// end loop over 's'
5609
}// end loop over 'r'
5610
for (unsigned int r = 0; r < 4; r++)
5612
for (unsigned int s = 0; s < 4 - r; s++)
5614
rr = (r + s)*(r + s + 1)/2 + s;
5615
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
5616
}// end loop over 's'
5617
}// end loop over 'r'
4611
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
4612
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
4613
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
4614
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
4615
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
4616
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
4617
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
4618
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
4619
basisvalues[0] *= std::sqrt(0.5);
4620
basisvalues[2] *= std::sqrt(1.0);
4621
basisvalues[5] *= std::sqrt(1.5);
4622
basisvalues[9] *= std::sqrt(2.0);
4623
basisvalues[1] *= std::sqrt(3.0);
4624
basisvalues[4] *= std::sqrt(4.5);
4625
basisvalues[8] *= std::sqrt(6.0);
4626
basisvalues[3] *= std::sqrt(7.5);
4627
basisvalues[7] *= std::sqrt(10.0);
4628
basisvalues[6] *= std::sqrt(14.0);
5619
4630
// Table(s) of coefficients.
5620
4631
static const double coefficients0[10] = \
5780
4791
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
5782
4793
// Declare helper variables.
5783
unsigned int rr = 0;
5784
unsigned int ss = 0;
5785
unsigned int tt = 0;
5789
4794
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
5790
4795
double tmp1 = (1.0 - Y)/2.0;
5791
4796
double tmp2 = tmp1*tmp1;
5793
4798
// Compute basisvalues.
5794
4799
basisvalues[0] = 1.0;
5795
4800
basisvalues[1] = tmp0;
5796
for (unsigned int r = 1; r < 3; r++)
5798
rr = (r + 1)*((r + 1) + 1)/2;
5800
tt = (r - 1)*((r - 1) + 1)/2;
5801
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
5802
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
5803
}// end loop over 'r'
5804
for (unsigned int r = 0; r < 3; r++)
5806
rr = (r + 1)*(r + 1 + 1)/2 + 1;
5808
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
5809
}// end loop over 'r'
5810
for (unsigned int r = 0; r < 2; r++)
5812
for (unsigned int s = 1; s < 3 - r; s++)
5814
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
5815
ss = (r + s)*(r + s + 1)/2 + s;
5816
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
5817
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));
5818
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));
5819
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));
5820
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
5821
}// end loop over 's'
5822
}// end loop over 'r'
5823
for (unsigned int r = 0; r < 4; r++)
5825
for (unsigned int s = 0; s < 4 - r; s++)
5827
rr = (r + s)*(r + s + 1)/2 + s;
5828
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
5829
}// end loop over 's'
5830
}// end loop over 'r'
4801
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
4802
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
4803
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
4804
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
4805
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
4806
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
4807
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
4808
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
4809
basisvalues[0] *= std::sqrt(0.5);
4810
basisvalues[2] *= std::sqrt(1.0);
4811
basisvalues[5] *= std::sqrt(1.5);
4812
basisvalues[9] *= std::sqrt(2.0);
4813
basisvalues[1] *= std::sqrt(3.0);
4814
basisvalues[4] *= std::sqrt(4.5);
4815
basisvalues[8] *= std::sqrt(6.0);
4816
basisvalues[3] *= std::sqrt(7.5);
4817
basisvalues[7] *= std::sqrt(10.0);
4818
basisvalues[6] *= std::sqrt(14.0);
5832
4820
// Table(s) of coefficients.
5833
4821
static const double coefficients0[10] = \
5993
4981
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
5995
4983
// Declare helper variables.
5996
unsigned int rr = 0;
5997
unsigned int ss = 0;
5998
unsigned int tt = 0;
6002
4984
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
6003
4985
double tmp1 = (1.0 - Y)/2.0;
6004
4986
double tmp2 = tmp1*tmp1;
6006
4988
// Compute basisvalues.
6007
4989
basisvalues[0] = 1.0;
6008
4990
basisvalues[1] = tmp0;
6009
for (unsigned int r = 1; r < 3; r++)
6011
rr = (r + 1)*((r + 1) + 1)/2;
6013
tt = (r - 1)*((r - 1) + 1)/2;
6014
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
6015
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
6016
}// end loop over 'r'
6017
for (unsigned int r = 0; r < 3; r++)
6019
rr = (r + 1)*(r + 1 + 1)/2 + 1;
6021
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
6022
}// end loop over 'r'
6023
for (unsigned int r = 0; r < 2; r++)
6025
for (unsigned int s = 1; s < 3 - r; s++)
6027
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
6028
ss = (r + s)*(r + s + 1)/2 + s;
6029
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
6030
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));
6031
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));
6032
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));
6033
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
6034
}// end loop over 's'
6035
}// end loop over 'r'
6036
for (unsigned int r = 0; r < 4; r++)
6038
for (unsigned int s = 0; s < 4 - r; s++)
6040
rr = (r + s)*(r + s + 1)/2 + s;
6041
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
6042
}// end loop over 's'
6043
}// end loop over 'r'
4991
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
4992
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
4993
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
4994
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
4995
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
4996
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
4997
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
4998
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
4999
basisvalues[0] *= std::sqrt(0.5);
5000
basisvalues[2] *= std::sqrt(1.0);
5001
basisvalues[5] *= std::sqrt(1.5);
5002
basisvalues[9] *= std::sqrt(2.0);
5003
basisvalues[1] *= std::sqrt(3.0);
5004
basisvalues[4] *= std::sqrt(4.5);
5005
basisvalues[8] *= std::sqrt(6.0);
5006
basisvalues[3] *= std::sqrt(7.5);
5007
basisvalues[7] *= std::sqrt(10.0);
5008
basisvalues[6] *= std::sqrt(14.0);
6045
5010
// Table(s) of coefficients.
6046
5011
static const double coefficients0[10] = \
6206
5171
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
6208
5173
// Declare helper variables.
6209
unsigned int rr = 0;
6210
unsigned int ss = 0;
6211
unsigned int tt = 0;
6215
5174
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
6216
5175
double tmp1 = (1.0 - Y)/2.0;
6217
5176
double tmp2 = tmp1*tmp1;
6219
5178
// Compute basisvalues.
6220
5179
basisvalues[0] = 1.0;
6221
5180
basisvalues[1] = tmp0;
6222
for (unsigned int r = 1; r < 3; r++)
6224
rr = (r + 1)*((r + 1) + 1)/2;
6226
tt = (r - 1)*((r - 1) + 1)/2;
6227
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
6228
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
6229
}// end loop over 'r'
6230
for (unsigned int r = 0; r < 3; r++)
6232
rr = (r + 1)*(r + 1 + 1)/2 + 1;
6234
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
6235
}// end loop over 'r'
6236
for (unsigned int r = 0; r < 2; r++)
6238
for (unsigned int s = 1; s < 3 - r; s++)
6240
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
6241
ss = (r + s)*(r + s + 1)/2 + s;
6242
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
6243
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));
6244
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));
6245
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));
6246
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
6247
}// end loop over 's'
6248
}// end loop over 'r'
6249
for (unsigned int r = 0; r < 4; r++)
6251
for (unsigned int s = 0; s < 4 - r; s++)
6253
rr = (r + s)*(r + s + 1)/2 + s;
6254
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
6255
}// end loop over 's'
6256
}// end loop over 'r'
5181
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
5182
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
5183
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
5184
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
5185
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
5186
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
5187
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
5188
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
5189
basisvalues[0] *= std::sqrt(0.5);
5190
basisvalues[2] *= std::sqrt(1.0);
5191
basisvalues[5] *= std::sqrt(1.5);
5192
basisvalues[9] *= std::sqrt(2.0);
5193
basisvalues[1] *= std::sqrt(3.0);
5194
basisvalues[4] *= std::sqrt(4.5);
5195
basisvalues[8] *= std::sqrt(6.0);
5196
basisvalues[3] *= std::sqrt(7.5);
5197
basisvalues[7] *= std::sqrt(10.0);
5198
basisvalues[6] *= std::sqrt(14.0);
6258
5200
// Table(s) of coefficients.
6259
5201
static const double coefficients0[10] = \
6419
5361
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
6421
5363
// Declare helper variables.
6422
unsigned int rr = 0;
6423
unsigned int ss = 0;
6424
unsigned int tt = 0;
6428
5364
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
6429
5365
double tmp1 = (1.0 - Y)/2.0;
6430
5366
double tmp2 = tmp1*tmp1;
6432
5368
// Compute basisvalues.
6433
5369
basisvalues[0] = 1.0;
6434
5370
basisvalues[1] = tmp0;
6435
for (unsigned int r = 1; r < 3; r++)
6437
rr = (r + 1)*((r + 1) + 1)/2;
6439
tt = (r - 1)*((r - 1) + 1)/2;
6440
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
6441
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
6442
}// end loop over 'r'
6443
for (unsigned int r = 0; r < 3; r++)
6445
rr = (r + 1)*(r + 1 + 1)/2 + 1;
6447
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
6448
}// end loop over 'r'
6449
for (unsigned int r = 0; r < 2; r++)
6451
for (unsigned int s = 1; s < 3 - r; s++)
6453
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
6454
ss = (r + s)*(r + s + 1)/2 + s;
6455
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
6456
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));
6457
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));
6458
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));
6459
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
6460
}// end loop over 's'
6461
}// end loop over 'r'
6462
for (unsigned int r = 0; r < 4; r++)
6464
for (unsigned int s = 0; s < 4 - r; s++)
6466
rr = (r + s)*(r + s + 1)/2 + s;
6467
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
6468
}// end loop over 's'
6469
}// end loop over 'r'
5371
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
5372
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
5373
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
5374
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
5375
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
5376
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
5377
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
5378
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
5379
basisvalues[0] *= std::sqrt(0.5);
5380
basisvalues[2] *= std::sqrt(1.0);
5381
basisvalues[5] *= std::sqrt(1.5);
5382
basisvalues[9] *= std::sqrt(2.0);
5383
basisvalues[1] *= std::sqrt(3.0);
5384
basisvalues[4] *= std::sqrt(4.5);
5385
basisvalues[8] *= std::sqrt(6.0);
5386
basisvalues[3] *= std::sqrt(7.5);
5387
basisvalues[7] *= std::sqrt(10.0);
5388
basisvalues[6] *= std::sqrt(14.0);
6471
5390
// Table(s) of coefficients.
6472
5391
static const double coefficients0[10] = \
6632
5551
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
6634
5553
// Declare helper variables.
6635
unsigned int rr = 0;
6636
unsigned int ss = 0;
6637
unsigned int tt = 0;
6641
5554
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
6642
5555
double tmp1 = (1.0 - Y)/2.0;
6643
5556
double tmp2 = tmp1*tmp1;
6645
5558
// Compute basisvalues.
6646
5559
basisvalues[0] = 1.0;
6647
5560
basisvalues[1] = tmp0;
6648
for (unsigned int r = 1; r < 3; r++)
6650
rr = (r + 1)*((r + 1) + 1)/2;
6652
tt = (r - 1)*((r - 1) + 1)/2;
6653
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
6654
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
6655
}// end loop over 'r'
6656
for (unsigned int r = 0; r < 3; r++)
6658
rr = (r + 1)*(r + 1 + 1)/2 + 1;
6660
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
6661
}// end loop over 'r'
6662
for (unsigned int r = 0; r < 2; r++)
6664
for (unsigned int s = 1; s < 3 - r; s++)
6666
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
6667
ss = (r + s)*(r + s + 1)/2 + s;
6668
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
6669
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));
6670
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));
6671
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));
6672
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
6673
}// end loop over 's'
6674
}// end loop over 'r'
6675
for (unsigned int r = 0; r < 4; r++)
6677
for (unsigned int s = 0; s < 4 - r; s++)
6679
rr = (r + s)*(r + s + 1)/2 + s;
6680
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
6681
}// end loop over 's'
6682
}// end loop over 'r'
5561
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
5562
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
5563
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
5564
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
5565
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
5566
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
5567
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
5568
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
5569
basisvalues[0] *= std::sqrt(0.5);
5570
basisvalues[2] *= std::sqrt(1.0);
5571
basisvalues[5] *= std::sqrt(1.5);
5572
basisvalues[9] *= std::sqrt(2.0);
5573
basisvalues[1] *= std::sqrt(3.0);
5574
basisvalues[4] *= std::sqrt(4.5);
5575
basisvalues[8] *= std::sqrt(6.0);
5576
basisvalues[3] *= std::sqrt(7.5);
5577
basisvalues[7] *= std::sqrt(10.0);
5578
basisvalues[6] *= std::sqrt(14.0);
6684
5580
// Table(s) of coefficients.
6685
5581
static const double coefficients0[10] = \
6845
5741
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
6847
5743
// Declare helper variables.
6848
unsigned int rr = 0;
6849
unsigned int ss = 0;
6850
unsigned int tt = 0;
6854
5744
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
6855
5745
double tmp1 = (1.0 - Y)/2.0;
6856
5746
double tmp2 = tmp1*tmp1;
6858
5748
// Compute basisvalues.
6859
5749
basisvalues[0] = 1.0;
6860
5750
basisvalues[1] = tmp0;
6861
for (unsigned int r = 1; r < 3; r++)
6863
rr = (r + 1)*((r + 1) + 1)/2;
6865
tt = (r - 1)*((r - 1) + 1)/2;
6866
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
6867
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
6868
}// end loop over 'r'
6869
for (unsigned int r = 0; r < 3; r++)
6871
rr = (r + 1)*(r + 1 + 1)/2 + 1;
6873
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
6874
}// end loop over 'r'
6875
for (unsigned int r = 0; r < 2; r++)
6877
for (unsigned int s = 1; s < 3 - r; s++)
6879
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
6880
ss = (r + s)*(r + s + 1)/2 + s;
6881
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
6882
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));
6883
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));
6884
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));
6885
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
6886
}// end loop over 's'
6887
}// end loop over 'r'
6888
for (unsigned int r = 0; r < 4; r++)
6890
for (unsigned int s = 0; s < 4 - r; s++)
6892
rr = (r + s)*(r + s + 1)/2 + s;
6893
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
6894
}// end loop over 's'
6895
}// end loop over 'r'
5751
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
5752
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
5753
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
5754
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
5755
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
5756
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
5757
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
5758
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
5759
basisvalues[0] *= std::sqrt(0.5);
5760
basisvalues[2] *= std::sqrt(1.0);
5761
basisvalues[5] *= std::sqrt(1.5);
5762
basisvalues[9] *= std::sqrt(2.0);
5763
basisvalues[1] *= std::sqrt(3.0);
5764
basisvalues[4] *= std::sqrt(4.5);
5765
basisvalues[8] *= std::sqrt(6.0);
5766
basisvalues[3] *= std::sqrt(7.5);
5767
basisvalues[7] *= std::sqrt(10.0);
5768
basisvalues[6] *= std::sqrt(14.0);
6897
5770
// Table(s) of coefficients.
6898
5771
static const double coefficients0[10] = \
7058
5931
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
7060
5933
// Declare helper variables.
7061
unsigned int rr = 0;
7062
unsigned int ss = 0;
7063
unsigned int tt = 0;
7067
5934
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
7068
5935
double tmp1 = (1.0 - Y)/2.0;
7069
5936
double tmp2 = tmp1*tmp1;
7071
5938
// Compute basisvalues.
7072
5939
basisvalues[0] = 1.0;
7073
5940
basisvalues[1] = tmp0;
7074
for (unsigned int r = 1; r < 3; r++)
7076
rr = (r + 1)*((r + 1) + 1)/2;
7078
tt = (r - 1)*((r - 1) + 1)/2;
7079
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
7080
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
7081
}// end loop over 'r'
7082
for (unsigned int r = 0; r < 3; r++)
7084
rr = (r + 1)*(r + 1 + 1)/2 + 1;
7086
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
7087
}// end loop over 'r'
7088
for (unsigned int r = 0; r < 2; r++)
7090
for (unsigned int s = 1; s < 3 - r; s++)
7092
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
7093
ss = (r + s)*(r + s + 1)/2 + s;
7094
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
7095
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));
7096
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));
7097
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));
7098
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
7099
}// end loop over 's'
7100
}// end loop over 'r'
7101
for (unsigned int r = 0; r < 4; r++)
7103
for (unsigned int s = 0; s < 4 - r; s++)
7105
rr = (r + s)*(r + s + 1)/2 + s;
7106
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
7107
}// end loop over 's'
7108
}// end loop over 'r'
5941
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
5942
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
5943
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
5944
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
5945
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
5946
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
5947
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
5948
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
5949
basisvalues[0] *= std::sqrt(0.5);
5950
basisvalues[2] *= std::sqrt(1.0);
5951
basisvalues[5] *= std::sqrt(1.5);
5952
basisvalues[9] *= std::sqrt(2.0);
5953
basisvalues[1] *= std::sqrt(3.0);
5954
basisvalues[4] *= std::sqrt(4.5);
5955
basisvalues[8] *= std::sqrt(6.0);
5956
basisvalues[3] *= std::sqrt(7.5);
5957
basisvalues[7] *= std::sqrt(10.0);
5958
basisvalues[6] *= std::sqrt(14.0);
7110
5960
// Table(s) of coefficients.
7111
5961
static const double coefficients0[10] = \
7271
6121
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
7273
6123
// Declare helper variables.
7274
unsigned int rr = 0;
7275
unsigned int ss = 0;
7276
unsigned int tt = 0;
7280
6124
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
7281
6125
double tmp1 = (1.0 - Y)/2.0;
7282
6126
double tmp2 = tmp1*tmp1;
7284
6128
// Compute basisvalues.
7285
6129
basisvalues[0] = 1.0;
7286
6130
basisvalues[1] = tmp0;
7287
for (unsigned int r = 1; r < 3; r++)
7289
rr = (r + 1)*((r + 1) + 1)/2;
7291
tt = (r - 1)*((r - 1) + 1)/2;
7292
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
7293
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
7294
}// end loop over 'r'
7295
for (unsigned int r = 0; r < 3; r++)
7297
rr = (r + 1)*(r + 1 + 1)/2 + 1;
7299
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
7300
}// end loop over 'r'
7301
for (unsigned int r = 0; r < 2; r++)
7303
for (unsigned int s = 1; s < 3 - r; s++)
7305
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
7306
ss = (r + s)*(r + s + 1)/2 + s;
7307
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
7308
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));
7309
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));
7310
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));
7311
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
7312
}// end loop over 's'
7313
}// end loop over 'r'
7314
for (unsigned int r = 0; r < 4; r++)
7316
for (unsigned int s = 0; s < 4 - r; s++)
7318
rr = (r + s)*(r + s + 1)/2 + s;
7319
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
7320
}// end loop over 's'
7321
}// end loop over 'r'
6131
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
6132
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
6133
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
6134
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
6135
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
6136
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
6137
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
6138
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
6139
basisvalues[0] *= std::sqrt(0.5);
6140
basisvalues[2] *= std::sqrt(1.0);
6141
basisvalues[5] *= std::sqrt(1.5);
6142
basisvalues[9] *= std::sqrt(2.0);
6143
basisvalues[1] *= std::sqrt(3.0);
6144
basisvalues[4] *= std::sqrt(4.5);
6145
basisvalues[8] *= std::sqrt(6.0);
6146
basisvalues[3] *= std::sqrt(7.5);
6147
basisvalues[7] *= std::sqrt(10.0);
6148
basisvalues[6] *= std::sqrt(14.0);
7323
6150
// Table(s) of coefficients.
7324
6151
static const double coefficients0[10] = \
7484
6311
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
7486
6313
// Declare helper variables.
7487
unsigned int rr = 0;
7488
unsigned int ss = 0;
7489
unsigned int tt = 0;
7493
6314
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
7494
6315
double tmp1 = (1.0 - Y)/2.0;
7495
6316
double tmp2 = tmp1*tmp1;
7497
6318
// Compute basisvalues.
7498
6319
basisvalues[0] = 1.0;
7499
6320
basisvalues[1] = tmp0;
7500
for (unsigned int r = 1; r < 3; r++)
7502
rr = (r + 1)*((r + 1) + 1)/2;
7504
tt = (r - 1)*((r - 1) + 1)/2;
7505
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
7506
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
7507
}// end loop over 'r'
7508
for (unsigned int r = 0; r < 3; r++)
7510
rr = (r + 1)*(r + 1 + 1)/2 + 1;
7512
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
7513
}// end loop over 'r'
7514
for (unsigned int r = 0; r < 2; r++)
7516
for (unsigned int s = 1; s < 3 - r; s++)
7518
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
7519
ss = (r + s)*(r + s + 1)/2 + s;
7520
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
7521
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));
7522
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));
7523
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));
7524
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
7525
}// end loop over 's'
7526
}// end loop over 'r'
7527
for (unsigned int r = 0; r < 4; r++)
7529
for (unsigned int s = 0; s < 4 - r; s++)
7531
rr = (r + s)*(r + s + 1)/2 + s;
7532
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
7533
}// end loop over 's'
7534
}// end loop over 'r'
6321
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
6322
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
6323
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
6324
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
6325
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
6326
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
6327
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
6328
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
6329
basisvalues[0] *= std::sqrt(0.5);
6330
basisvalues[2] *= std::sqrt(1.0);
6331
basisvalues[5] *= std::sqrt(1.5);
6332
basisvalues[9] *= std::sqrt(2.0);
6333
basisvalues[1] *= std::sqrt(3.0);
6334
basisvalues[4] *= std::sqrt(4.5);
6335
basisvalues[8] *= std::sqrt(6.0);
6336
basisvalues[3] *= std::sqrt(7.5);
6337
basisvalues[7] *= std::sqrt(10.0);
6338
basisvalues[6] *= std::sqrt(14.0);
7536
6340
// Table(s) of coefficients.
7537
6341
static const double coefficients0[10] = \
7697
6501
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
7699
6503
// Declare helper variables.
7700
unsigned int rr = 0;
7701
unsigned int ss = 0;
7702
unsigned int tt = 0;
7706
6504
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
7707
6505
double tmp1 = (1.0 - Y)/2.0;
7708
6506
double tmp2 = tmp1*tmp1;
7710
6508
// Compute basisvalues.
7711
6509
basisvalues[0] = 1.0;
7712
6510
basisvalues[1] = tmp0;
7713
for (unsigned int r = 1; r < 3; r++)
7715
rr = (r + 1)*((r + 1) + 1)/2;
7717
tt = (r - 1)*((r - 1) + 1)/2;
7718
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
7719
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
7720
}// end loop over 'r'
7721
for (unsigned int r = 0; r < 3; r++)
7723
rr = (r + 1)*(r + 1 + 1)/2 + 1;
7725
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
7726
}// end loop over 'r'
7727
for (unsigned int r = 0; r < 2; r++)
7729
for (unsigned int s = 1; s < 3 - r; s++)
7731
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
7732
ss = (r + s)*(r + s + 1)/2 + s;
7733
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
7734
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));
7735
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));
7736
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));
7737
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
7738
}// end loop over 's'
7739
}// end loop over 'r'
7740
for (unsigned int r = 0; r < 4; r++)
7742
for (unsigned int s = 0; s < 4 - r; s++)
7744
rr = (r + s)*(r + s + 1)/2 + s;
7745
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
7746
}// end loop over 's'
7747
}// end loop over 'r'
6511
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
6512
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
6513
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
6514
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
6515
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
6516
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
6517
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
6518
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
6519
basisvalues[0] *= std::sqrt(0.5);
6520
basisvalues[2] *= std::sqrt(1.0);
6521
basisvalues[5] *= std::sqrt(1.5);
6522
basisvalues[9] *= std::sqrt(2.0);
6523
basisvalues[1] *= std::sqrt(3.0);
6524
basisvalues[4] *= std::sqrt(4.5);
6525
basisvalues[8] *= std::sqrt(6.0);
6526
basisvalues[3] *= std::sqrt(7.5);
6527
basisvalues[7] *= std::sqrt(10.0);
6528
basisvalues[6] *= std::sqrt(14.0);
7749
6530
// Table(s) of coefficients.
7750
6531
static const double coefficients0[10] = \
7910
6691
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
7912
6693
// Declare helper variables.
7913
unsigned int rr = 0;
7914
unsigned int ss = 0;
7915
unsigned int tt = 0;
7919
6694
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
7920
6695
double tmp1 = (1.0 - Y)/2.0;
7921
6696
double tmp2 = tmp1*tmp1;
7923
6698
// Compute basisvalues.
7924
6699
basisvalues[0] = 1.0;
7925
6700
basisvalues[1] = tmp0;
7926
for (unsigned int r = 1; r < 3; r++)
7928
rr = (r + 1)*((r + 1) + 1)/2;
7930
tt = (r - 1)*((r - 1) + 1)/2;
7931
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
7932
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
7933
}// end loop over 'r'
7934
for (unsigned int r = 0; r < 3; r++)
7936
rr = (r + 1)*(r + 1 + 1)/2 + 1;
7938
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
7939
}// end loop over 'r'
7940
for (unsigned int r = 0; r < 2; r++)
7942
for (unsigned int s = 1; s < 3 - r; s++)
7944
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
7945
ss = (r + s)*(r + s + 1)/2 + s;
7946
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
7947
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));
7948
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));
7949
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));
7950
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
7951
}// end loop over 's'
7952
}// end loop over 'r'
7953
for (unsigned int r = 0; r < 4; r++)
7955
for (unsigned int s = 0; s < 4 - r; s++)
7957
rr = (r + s)*(r + s + 1)/2 + s;
7958
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
7959
}// end loop over 's'
7960
}// end loop over 'r'
6701
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
6702
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
6703
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
6704
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
6705
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
6706
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
6707
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
6708
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
6709
basisvalues[0] *= std::sqrt(0.5);
6710
basisvalues[2] *= std::sqrt(1.0);
6711
basisvalues[5] *= std::sqrt(1.5);
6712
basisvalues[9] *= std::sqrt(2.0);
6713
basisvalues[1] *= std::sqrt(3.0);
6714
basisvalues[4] *= std::sqrt(4.5);
6715
basisvalues[8] *= std::sqrt(6.0);
6716
basisvalues[3] *= std::sqrt(7.5);
6717
basisvalues[7] *= std::sqrt(10.0);
6718
basisvalues[6] *= std::sqrt(14.0);
7962
6720
// Table(s) of coefficients.
7963
6721
static const double coefficients0[10] = \
8123
6881
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
8125
6883
// Declare helper variables.
8126
unsigned int rr = 0;
8127
unsigned int ss = 0;
8128
unsigned int tt = 0;
8132
6884
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
8133
6885
double tmp1 = (1.0 - Y)/2.0;
8134
6886
double tmp2 = tmp1*tmp1;
8136
6888
// Compute basisvalues.
8137
6889
basisvalues[0] = 1.0;
8138
6890
basisvalues[1] = tmp0;
8139
for (unsigned int r = 1; r < 3; r++)
8141
rr = (r + 1)*((r + 1) + 1)/2;
8143
tt = (r - 1)*((r - 1) + 1)/2;
8144
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
8145
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
8146
}// end loop over 'r'
8147
for (unsigned int r = 0; r < 3; r++)
8149
rr = (r + 1)*(r + 1 + 1)/2 + 1;
8151
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
8152
}// end loop over 'r'
8153
for (unsigned int r = 0; r < 2; r++)
8155
for (unsigned int s = 1; s < 3 - r; s++)
8157
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
8158
ss = (r + s)*(r + s + 1)/2 + s;
8159
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
8160
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));
8161
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));
8162
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));
8163
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
8164
}// end loop over 's'
8165
}// end loop over 'r'
8166
for (unsigned int r = 0; r < 4; r++)
8168
for (unsigned int s = 0; s < 4 - r; s++)
8170
rr = (r + s)*(r + s + 1)/2 + s;
8171
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
8172
}// end loop over 's'
8173
}// end loop over 'r'
6891
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
6892
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
6893
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
6894
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
6895
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
6896
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
6897
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
6898
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
6899
basisvalues[0] *= std::sqrt(0.5);
6900
basisvalues[2] *= std::sqrt(1.0);
6901
basisvalues[5] *= std::sqrt(1.5);
6902
basisvalues[9] *= std::sqrt(2.0);
6903
basisvalues[1] *= std::sqrt(3.0);
6904
basisvalues[4] *= std::sqrt(4.5);
6905
basisvalues[8] *= std::sqrt(6.0);
6906
basisvalues[3] *= std::sqrt(7.5);
6907
basisvalues[7] *= std::sqrt(10.0);
6908
basisvalues[6] *= std::sqrt(14.0);
8175
6910
// Table(s) of coefficients.
8176
6911
static const double coefficients0[10] = \
8336
7071
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
8338
7073
// Declare helper variables.
8339
unsigned int rr = 0;
8340
unsigned int ss = 0;
8341
unsigned int tt = 0;
8345
7074
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
8346
7075
double tmp1 = (1.0 - Y)/2.0;
8347
7076
double tmp2 = tmp1*tmp1;
8349
7078
// Compute basisvalues.
8350
7079
basisvalues[0] = 1.0;
8351
7080
basisvalues[1] = tmp0;
8352
for (unsigned int r = 1; r < 3; r++)
8354
rr = (r + 1)*((r + 1) + 1)/2;
8356
tt = (r - 1)*((r - 1) + 1)/2;
8357
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
8358
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
8359
}// end loop over 'r'
8360
for (unsigned int r = 0; r < 3; r++)
8362
rr = (r + 1)*(r + 1 + 1)/2 + 1;
8364
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
8365
}// end loop over 'r'
8366
for (unsigned int r = 0; r < 2; r++)
8368
for (unsigned int s = 1; s < 3 - r; s++)
8370
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
8371
ss = (r + s)*(r + s + 1)/2 + s;
8372
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
8373
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));
8374
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));
8375
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));
8376
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
8377
}// end loop over 's'
8378
}// end loop over 'r'
8379
for (unsigned int r = 0; r < 4; r++)
8381
for (unsigned int s = 0; s < 4 - r; s++)
8383
rr = (r + s)*(r + s + 1)/2 + s;
8384
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
8385
}// end loop over 's'
8386
}// end loop over 'r'
7081
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
7082
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
7083
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
7084
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
7085
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
7086
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
7087
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
7088
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
7089
basisvalues[0] *= std::sqrt(0.5);
7090
basisvalues[2] *= std::sqrt(1.0);
7091
basisvalues[5] *= std::sqrt(1.5);
7092
basisvalues[9] *= std::sqrt(2.0);
7093
basisvalues[1] *= std::sqrt(3.0);
7094
basisvalues[4] *= std::sqrt(4.5);
7095
basisvalues[8] *= std::sqrt(6.0);
7096
basisvalues[3] *= std::sqrt(7.5);
7097
basisvalues[7] *= std::sqrt(10.0);
7098
basisvalues[6] *= std::sqrt(14.0);
8388
7100
// Table(s) of coefficients.
8389
7101
static const double coefficients0[10] = \
8861
7573
/// Return the number of sub elements (for a mixed element)
8862
7574
virtual unsigned int num_sub_elements() const
8867
7579
/// Create a new finite element for sub element i (for a mixed element)
8868
7580
virtual ufc::finite_element* create_sub_element(unsigned int i) const
7586
return new x_element1_finite_element_0();
7591
return new x_element1_finite_element_0();
8988
7714
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
8990
7716
// Declare helper variables.
8991
unsigned int rr = 0;
8992
unsigned int ss = 0;
8993
unsigned int tt = 0;
8997
7717
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
8998
7718
double tmp1 = (1.0 - Y)/2.0;
8999
7719
double tmp2 = tmp1*tmp1;
9001
7721
// Compute basisvalues.
9002
7722
basisvalues[0] = 1.0;
9003
7723
basisvalues[1] = tmp0;
9004
for (unsigned int r = 1; r < 3; r++)
9006
rr = (r + 1)*((r + 1) + 1)/2;
9008
tt = (r - 1)*((r - 1) + 1)/2;
9009
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
9010
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
9011
}// end loop over 'r'
9012
for (unsigned int r = 0; r < 3; r++)
9014
rr = (r + 1)*(r + 1 + 1)/2 + 1;
9016
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
9017
}// end loop over 'r'
9018
for (unsigned int r = 0; r < 2; r++)
9020
for (unsigned int s = 1; s < 3 - r; s++)
9022
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
9023
ss = (r + s)*(r + s + 1)/2 + s;
9024
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
9025
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));
9026
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));
9027
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));
9028
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
9029
}// end loop over 's'
9030
}// end loop over 'r'
9031
for (unsigned int r = 0; r < 4; r++)
9033
for (unsigned int s = 0; s < 4 - r; s++)
9035
rr = (r + s)*(r + s + 1)/2 + s;
9036
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
9037
}// end loop over 's'
9038
}// end loop over 'r'
7724
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
7725
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
7726
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
7727
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
7728
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
7729
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
7730
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
7731
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
7732
basisvalues[0] *= std::sqrt(0.5);
7733
basisvalues[2] *= std::sqrt(1.0);
7734
basisvalues[5] *= std::sqrt(1.5);
7735
basisvalues[9] *= std::sqrt(2.0);
7736
basisvalues[1] *= std::sqrt(3.0);
7737
basisvalues[4] *= std::sqrt(4.5);
7738
basisvalues[8] *= std::sqrt(6.0);
7739
basisvalues[3] *= std::sqrt(7.5);
7740
basisvalues[7] *= std::sqrt(10.0);
7741
basisvalues[6] *= std::sqrt(14.0);
9040
7743
// Table(s) of coefficients.
9041
7744
static const double coefficients0[10] = \
9055
7758
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
9057
7760
// Declare helper variables.
9058
unsigned int rr = 0;
9059
unsigned int ss = 0;
9060
unsigned int tt = 0;
9064
7761
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
9065
7762
double tmp1 = (1.0 - Y)/2.0;
9066
7763
double tmp2 = tmp1*tmp1;
9068
7765
// Compute basisvalues.
9069
7766
basisvalues[0] = 1.0;
9070
7767
basisvalues[1] = tmp0;
9071
for (unsigned int r = 1; r < 3; r++)
9073
rr = (r + 1)*((r + 1) + 1)/2;
9075
tt = (r - 1)*((r - 1) + 1)/2;
9076
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
9077
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
9078
}// end loop over 'r'
9079
for (unsigned int r = 0; r < 3; r++)
9081
rr = (r + 1)*(r + 1 + 1)/2 + 1;
9083
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
9084
}// end loop over 'r'
9085
for (unsigned int r = 0; r < 2; r++)
9087
for (unsigned int s = 1; s < 3 - r; s++)
9089
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
9090
ss = (r + s)*(r + s + 1)/2 + s;
9091
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
9092
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));
9093
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));
9094
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));
9095
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
9096
}// end loop over 's'
9097
}// end loop over 'r'
9098
for (unsigned int r = 0; r < 4; r++)
9100
for (unsigned int s = 0; s < 4 - r; s++)
9102
rr = (r + s)*(r + s + 1)/2 + s;
9103
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
9104
}// end loop over 's'
9105
}// end loop over 'r'
7768
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
7769
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
7770
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
7771
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
7772
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
7773
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
7774
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
7775
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
7776
basisvalues[0] *= std::sqrt(0.5);
7777
basisvalues[2] *= std::sqrt(1.0);
7778
basisvalues[5] *= std::sqrt(1.5);
7779
basisvalues[9] *= std::sqrt(2.0);
7780
basisvalues[1] *= std::sqrt(3.0);
7781
basisvalues[4] *= std::sqrt(4.5);
7782
basisvalues[8] *= std::sqrt(6.0);
7783
basisvalues[3] *= std::sqrt(7.5);
7784
basisvalues[7] *= std::sqrt(10.0);
7785
basisvalues[6] *= std::sqrt(14.0);
9107
7787
// Table(s) of coefficients.
9108
7788
static const double coefficients0[10] = \
9122
7802
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
9124
7804
// Declare helper variables.
9125
unsigned int rr = 0;
9126
unsigned int ss = 0;
9127
unsigned int tt = 0;
9131
7805
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
9132
7806
double tmp1 = (1.0 - Y)/2.0;
9133
7807
double tmp2 = tmp1*tmp1;
9135
7809
// Compute basisvalues.
9136
7810
basisvalues[0] = 1.0;
9137
7811
basisvalues[1] = tmp0;
9138
for (unsigned int r = 1; r < 3; r++)
9140
rr = (r + 1)*((r + 1) + 1)/2;
9142
tt = (r - 1)*((r - 1) + 1)/2;
9143
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
9144
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
9145
}// end loop over 'r'
9146
for (unsigned int r = 0; r < 3; r++)
9148
rr = (r + 1)*(r + 1 + 1)/2 + 1;
9150
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
9151
}// end loop over 'r'
9152
for (unsigned int r = 0; r < 2; r++)
9154
for (unsigned int s = 1; s < 3 - r; s++)
9156
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
9157
ss = (r + s)*(r + s + 1)/2 + s;
9158
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
9159
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));
9160
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));
9161
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));
9162
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
9163
}// end loop over 's'
9164
}// end loop over 'r'
9165
for (unsigned int r = 0; r < 4; r++)
9167
for (unsigned int s = 0; s < 4 - r; s++)
9169
rr = (r + s)*(r + s + 1)/2 + s;
9170
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
9171
}// end loop over 's'
9172
}// end loop over 'r'
7812
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
7813
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
7814
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
7815
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
7816
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
7817
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
7818
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
7819
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
7820
basisvalues[0] *= std::sqrt(0.5);
7821
basisvalues[2] *= std::sqrt(1.0);
7822
basisvalues[5] *= std::sqrt(1.5);
7823
basisvalues[9] *= std::sqrt(2.0);
7824
basisvalues[1] *= std::sqrt(3.0);
7825
basisvalues[4] *= std::sqrt(4.5);
7826
basisvalues[8] *= std::sqrt(6.0);
7827
basisvalues[3] *= std::sqrt(7.5);
7828
basisvalues[7] *= std::sqrt(10.0);
7829
basisvalues[6] *= std::sqrt(14.0);
9174
7831
// Table(s) of coefficients.
9175
7832
static const double coefficients0[10] = \
9189
7846
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
9191
7848
// Declare helper variables.
9192
unsigned int rr = 0;
9193
unsigned int ss = 0;
9194
unsigned int tt = 0;
9198
7849
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
9199
7850
double tmp1 = (1.0 - Y)/2.0;
9200
7851
double tmp2 = tmp1*tmp1;
9202
7853
// Compute basisvalues.
9203
7854
basisvalues[0] = 1.0;
9204
7855
basisvalues[1] = tmp0;
9205
for (unsigned int r = 1; r < 3; r++)
9207
rr = (r + 1)*((r + 1) + 1)/2;
9209
tt = (r - 1)*((r - 1) + 1)/2;
9210
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
9211
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
9212
}// end loop over 'r'
9213
for (unsigned int r = 0; r < 3; r++)
9215
rr = (r + 1)*(r + 1 + 1)/2 + 1;
9217
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
9218
}// end loop over 'r'
9219
for (unsigned int r = 0; r < 2; r++)
9221
for (unsigned int s = 1; s < 3 - r; s++)
9223
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
9224
ss = (r + s)*(r + s + 1)/2 + s;
9225
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
9226
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));
9227
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));
9228
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));
9229
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
9230
}// end loop over 's'
9231
}// end loop over 'r'
9232
for (unsigned int r = 0; r < 4; r++)
9234
for (unsigned int s = 0; s < 4 - r; s++)
9236
rr = (r + s)*(r + s + 1)/2 + s;
9237
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
9238
}// end loop over 's'
9239
}// end loop over 'r'
7856
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
7857
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
7858
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
7859
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
7860
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
7861
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
7862
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
7863
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
7864
basisvalues[0] *= std::sqrt(0.5);
7865
basisvalues[2] *= std::sqrt(1.0);
7866
basisvalues[5] *= std::sqrt(1.5);
7867
basisvalues[9] *= std::sqrt(2.0);
7868
basisvalues[1] *= std::sqrt(3.0);
7869
basisvalues[4] *= std::sqrt(4.5);
7870
basisvalues[8] *= std::sqrt(6.0);
7871
basisvalues[3] *= std::sqrt(7.5);
7872
basisvalues[7] *= std::sqrt(10.0);
7873
basisvalues[6] *= std::sqrt(14.0);
9241
7875
// Table(s) of coefficients.
9242
7876
static const double coefficients0[10] = \
9256
7890
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
9258
7892
// Declare helper variables.
9259
unsigned int rr = 0;
9260
unsigned int ss = 0;
9261
unsigned int tt = 0;
9265
7893
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
9266
7894
double tmp1 = (1.0 - Y)/2.0;
9267
7895
double tmp2 = tmp1*tmp1;
9269
7897
// Compute basisvalues.
9270
7898
basisvalues[0] = 1.0;
9271
7899
basisvalues[1] = tmp0;
9272
for (unsigned int r = 1; r < 3; r++)
9274
rr = (r + 1)*((r + 1) + 1)/2;
9276
tt = (r - 1)*((r - 1) + 1)/2;
9277
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
9278
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
9279
}// end loop over 'r'
9280
for (unsigned int r = 0; r < 3; r++)
9282
rr = (r + 1)*(r + 1 + 1)/2 + 1;
9284
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
9285
}// end loop over 'r'
9286
for (unsigned int r = 0; r < 2; r++)
9288
for (unsigned int s = 1; s < 3 - r; s++)
9290
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
9291
ss = (r + s)*(r + s + 1)/2 + s;
9292
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
9293
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));
9294
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));
9295
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));
9296
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
9297
}// end loop over 's'
9298
}// end loop over 'r'
9299
for (unsigned int r = 0; r < 4; r++)
9301
for (unsigned int s = 0; s < 4 - r; s++)
9303
rr = (r + s)*(r + s + 1)/2 + s;
9304
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
9305
}// end loop over 's'
9306
}// end loop over 'r'
7900
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
7901
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
7902
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
7903
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
7904
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
7905
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
7906
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
7907
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
7908
basisvalues[0] *= std::sqrt(0.5);
7909
basisvalues[2] *= std::sqrt(1.0);
7910
basisvalues[5] *= std::sqrt(1.5);
7911
basisvalues[9] *= std::sqrt(2.0);
7912
basisvalues[1] *= std::sqrt(3.0);
7913
basisvalues[4] *= std::sqrt(4.5);
7914
basisvalues[8] *= std::sqrt(6.0);
7915
basisvalues[3] *= std::sqrt(7.5);
7916
basisvalues[7] *= std::sqrt(10.0);
7917
basisvalues[6] *= std::sqrt(14.0);
9308
7919
// Table(s) of coefficients.
9309
7920
static const double coefficients0[10] = \
9323
7934
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
9325
7936
// Declare helper variables.
9326
unsigned int rr = 0;
9327
unsigned int ss = 0;
9328
unsigned int tt = 0;
9332
7937
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
9333
7938
double tmp1 = (1.0 - Y)/2.0;
9334
7939
double tmp2 = tmp1*tmp1;
9336
7941
// Compute basisvalues.
9337
7942
basisvalues[0] = 1.0;
9338
7943
basisvalues[1] = tmp0;
9339
for (unsigned int r = 1; r < 3; r++)
9341
rr = (r + 1)*((r + 1) + 1)/2;
9343
tt = (r - 1)*((r - 1) + 1)/2;
9344
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
9345
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
9346
}// end loop over 'r'
9347
for (unsigned int r = 0; r < 3; r++)
9349
rr = (r + 1)*(r + 1 + 1)/2 + 1;
9351
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
9352
}// end loop over 'r'
9353
for (unsigned int r = 0; r < 2; r++)
9355
for (unsigned int s = 1; s < 3 - r; s++)
9357
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
9358
ss = (r + s)*(r + s + 1)/2 + s;
9359
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
9360
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));
9361
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));
9362
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));
9363
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
9364
}// end loop over 's'
9365
}// end loop over 'r'
9366
for (unsigned int r = 0; r < 4; r++)
9368
for (unsigned int s = 0; s < 4 - r; s++)
9370
rr = (r + s)*(r + s + 1)/2 + s;
9371
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
9372
}// end loop over 's'
9373
}// end loop over 'r'
7944
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
7945
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
7946
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
7947
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
7948
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
7949
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
7950
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
7951
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
7952
basisvalues[0] *= std::sqrt(0.5);
7953
basisvalues[2] *= std::sqrt(1.0);
7954
basisvalues[5] *= std::sqrt(1.5);
7955
basisvalues[9] *= std::sqrt(2.0);
7956
basisvalues[1] *= std::sqrt(3.0);
7957
basisvalues[4] *= std::sqrt(4.5);
7958
basisvalues[8] *= std::sqrt(6.0);
7959
basisvalues[3] *= std::sqrt(7.5);
7960
basisvalues[7] *= std::sqrt(10.0);
7961
basisvalues[6] *= std::sqrt(14.0);
9375
7963
// Table(s) of coefficients.
9376
7964
static const double coefficients0[10] = \
9390
7978
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
9392
7980
// Declare helper variables.
9393
unsigned int rr = 0;
9394
unsigned int ss = 0;
9395
unsigned int tt = 0;
9399
7981
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
9400
7982
double tmp1 = (1.0 - Y)/2.0;
9401
7983
double tmp2 = tmp1*tmp1;
9403
7985
// Compute basisvalues.
9404
7986
basisvalues[0] = 1.0;
9405
7987
basisvalues[1] = tmp0;
9406
for (unsigned int r = 1; r < 3; r++)
9408
rr = (r + 1)*((r + 1) + 1)/2;
9410
tt = (r - 1)*((r - 1) + 1)/2;
9411
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
9412
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
9413
}// end loop over 'r'
9414
for (unsigned int r = 0; r < 3; r++)
9416
rr = (r + 1)*(r + 1 + 1)/2 + 1;
9418
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
9419
}// end loop over 'r'
9420
for (unsigned int r = 0; r < 2; r++)
9422
for (unsigned int s = 1; s < 3 - r; s++)
9424
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
9425
ss = (r + s)*(r + s + 1)/2 + s;
9426
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
9427
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));
9428
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));
9429
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));
9430
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
9431
}// end loop over 's'
9432
}// end loop over 'r'
9433
for (unsigned int r = 0; r < 4; r++)
9435
for (unsigned int s = 0; s < 4 - r; s++)
9437
rr = (r + s)*(r + s + 1)/2 + s;
9438
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
9439
}// end loop over 's'
9440
}// end loop over 'r'
7988
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
7989
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
7990
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
7991
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
7992
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
7993
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
7994
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
7995
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
7996
basisvalues[0] *= std::sqrt(0.5);
7997
basisvalues[2] *= std::sqrt(1.0);
7998
basisvalues[5] *= std::sqrt(1.5);
7999
basisvalues[9] *= std::sqrt(2.0);
8000
basisvalues[1] *= std::sqrt(3.0);
8001
basisvalues[4] *= std::sqrt(4.5);
8002
basisvalues[8] *= std::sqrt(6.0);
8003
basisvalues[3] *= std::sqrt(7.5);
8004
basisvalues[7] *= std::sqrt(10.0);
8005
basisvalues[6] *= std::sqrt(14.0);
9442
8007
// Table(s) of coefficients.
9443
8008
static const double coefficients0[10] = \
9457
8022
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
9459
8024
// Declare helper variables.
9460
unsigned int rr = 0;
9461
unsigned int ss = 0;
9462
unsigned int tt = 0;
9466
8025
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
9467
8026
double tmp1 = (1.0 - Y)/2.0;
9468
8027
double tmp2 = tmp1*tmp1;
9470
8029
// Compute basisvalues.
9471
8030
basisvalues[0] = 1.0;
9472
8031
basisvalues[1] = tmp0;
9473
for (unsigned int r = 1; r < 3; r++)
9475
rr = (r + 1)*((r + 1) + 1)/2;
9477
tt = (r - 1)*((r - 1) + 1)/2;
9478
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
9479
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
9480
}// end loop over 'r'
9481
for (unsigned int r = 0; r < 3; r++)
9483
rr = (r + 1)*(r + 1 + 1)/2 + 1;
9485
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
9486
}// end loop over 'r'
9487
for (unsigned int r = 0; r < 2; r++)
9489
for (unsigned int s = 1; s < 3 - r; s++)
9491
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
9492
ss = (r + s)*(r + s + 1)/2 + s;
9493
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
9494
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));
9495
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));
9496
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));
9497
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
9498
}// end loop over 's'
9499
}// end loop over 'r'
9500
for (unsigned int r = 0; r < 4; r++)
9502
for (unsigned int s = 0; s < 4 - r; s++)
9504
rr = (r + s)*(r + s + 1)/2 + s;
9505
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
9506
}// end loop over 's'
9507
}// end loop over 'r'
8032
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
8033
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
8034
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
8035
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
8036
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
8037
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
8038
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
8039
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
8040
basisvalues[0] *= std::sqrt(0.5);
8041
basisvalues[2] *= std::sqrt(1.0);
8042
basisvalues[5] *= std::sqrt(1.5);
8043
basisvalues[9] *= std::sqrt(2.0);
8044
basisvalues[1] *= std::sqrt(3.0);
8045
basisvalues[4] *= std::sqrt(4.5);
8046
basisvalues[8] *= std::sqrt(6.0);
8047
basisvalues[3] *= std::sqrt(7.5);
8048
basisvalues[7] *= std::sqrt(10.0);
8049
basisvalues[6] *= std::sqrt(14.0);
9509
8051
// Table(s) of coefficients.
9510
8052
static const double coefficients0[10] = \
9524
8066
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
9526
8068
// Declare helper variables.
9527
unsigned int rr = 0;
9528
unsigned int ss = 0;
9529
unsigned int tt = 0;
9533
8069
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
9534
8070
double tmp1 = (1.0 - Y)/2.0;
9535
8071
double tmp2 = tmp1*tmp1;
9537
8073
// Compute basisvalues.
9538
8074
basisvalues[0] = 1.0;
9539
8075
basisvalues[1] = tmp0;
9540
for (unsigned int r = 1; r < 3; r++)
9542
rr = (r + 1)*((r + 1) + 1)/2;
9544
tt = (r - 1)*((r - 1) + 1)/2;
9545
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
9546
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
9547
}// end loop over 'r'
9548
for (unsigned int r = 0; r < 3; r++)
9550
rr = (r + 1)*(r + 1 + 1)/2 + 1;
9552
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
9553
}// end loop over 'r'
9554
for (unsigned int r = 0; r < 2; r++)
9556
for (unsigned int s = 1; s < 3 - r; s++)
9558
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
9559
ss = (r + s)*(r + s + 1)/2 + s;
9560
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
9561
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));
9562
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));
9563
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));
9564
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
9565
}// end loop over 's'
9566
}// end loop over 'r'
9567
for (unsigned int r = 0; r < 4; r++)
9569
for (unsigned int s = 0; s < 4 - r; s++)
9571
rr = (r + s)*(r + s + 1)/2 + s;
9572
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
9573
}// end loop over 's'
9574
}// end loop over 'r'
8076
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
8077
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
8078
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
8079
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
8080
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
8081
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
8082
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
8083
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
8084
basisvalues[0] *= std::sqrt(0.5);
8085
basisvalues[2] *= std::sqrt(1.0);
8086
basisvalues[5] *= std::sqrt(1.5);
8087
basisvalues[9] *= std::sqrt(2.0);
8088
basisvalues[1] *= std::sqrt(3.0);
8089
basisvalues[4] *= std::sqrt(4.5);
8090
basisvalues[8] *= std::sqrt(6.0);
8091
basisvalues[3] *= std::sqrt(7.5);
8092
basisvalues[7] *= std::sqrt(10.0);
8093
basisvalues[6] *= std::sqrt(14.0);
9576
8095
// Table(s) of coefficients.
9577
8096
static const double coefficients0[10] = \
9591
8110
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
9593
8112
// Declare helper variables.
9594
unsigned int rr = 0;
9595
unsigned int ss = 0;
9596
unsigned int tt = 0;
9600
8113
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
9601
8114
double tmp1 = (1.0 - Y)/2.0;
9602
8115
double tmp2 = tmp1*tmp1;
9604
8117
// Compute basisvalues.
9605
8118
basisvalues[0] = 1.0;
9606
8119
basisvalues[1] = tmp0;
9607
for (unsigned int r = 1; r < 3; r++)
9609
rr = (r + 1)*((r + 1) + 1)/2;
9611
tt = (r - 1)*((r - 1) + 1)/2;
9612
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
9613
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
9614
}// end loop over 'r'
9615
for (unsigned int r = 0; r < 3; r++)
9617
rr = (r + 1)*(r + 1 + 1)/2 + 1;
9619
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
9620
}// end loop over 'r'
9621
for (unsigned int r = 0; r < 2; r++)
9623
for (unsigned int s = 1; s < 3 - r; s++)
9625
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
9626
ss = (r + s)*(r + s + 1)/2 + s;
9627
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
9628
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));
9629
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));
9630
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));
9631
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
9632
}// end loop over 's'
9633
}// end loop over 'r'
9634
for (unsigned int r = 0; r < 4; r++)
9636
for (unsigned int s = 0; s < 4 - r; s++)
9638
rr = (r + s)*(r + s + 1)/2 + s;
9639
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
9640
}// end loop over 's'
9641
}// end loop over 'r'
8120
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
8121
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
8122
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
8123
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
8124
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
8125
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
8126
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
8127
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
8128
basisvalues[0] *= std::sqrt(0.5);
8129
basisvalues[2] *= std::sqrt(1.0);
8130
basisvalues[5] *= std::sqrt(1.5);
8131
basisvalues[9] *= std::sqrt(2.0);
8132
basisvalues[1] *= std::sqrt(3.0);
8133
basisvalues[4] *= std::sqrt(4.5);
8134
basisvalues[8] *= std::sqrt(6.0);
8135
basisvalues[3] *= std::sqrt(7.5);
8136
basisvalues[7] *= std::sqrt(10.0);
8137
basisvalues[6] *= std::sqrt(14.0);
9643
8139
// Table(s) of coefficients.
9644
8140
static const double coefficients0[10] = \
9658
8154
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
9660
8156
// Declare helper variables.
9661
unsigned int rr = 0;
9662
unsigned int ss = 0;
9663
unsigned int tt = 0;
9667
8157
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
9668
8158
double tmp1 = (1.0 - Y)/2.0;
9669
8159
double tmp2 = tmp1*tmp1;
9671
8161
// Compute basisvalues.
9672
8162
basisvalues[0] = 1.0;
9673
8163
basisvalues[1] = tmp0;
9674
for (unsigned int r = 1; r < 3; r++)
9676
rr = (r + 1)*((r + 1) + 1)/2;
9678
tt = (r - 1)*((r - 1) + 1)/2;
9679
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
9680
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
9681
}// end loop over 'r'
9682
for (unsigned int r = 0; r < 3; r++)
9684
rr = (r + 1)*(r + 1 + 1)/2 + 1;
9686
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
9687
}// end loop over 'r'
9688
for (unsigned int r = 0; r < 2; r++)
9690
for (unsigned int s = 1; s < 3 - r; s++)
9692
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
9693
ss = (r + s)*(r + s + 1)/2 + s;
9694
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
9695
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));
9696
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));
9697
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));
9698
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
9699
}// end loop over 's'
9700
}// end loop over 'r'
9701
for (unsigned int r = 0; r < 4; r++)
9703
for (unsigned int s = 0; s < 4 - r; s++)
9705
rr = (r + s)*(r + s + 1)/2 + s;
9706
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
9707
}// end loop over 's'
9708
}// end loop over 'r'
8164
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
8165
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
8166
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
8167
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
8168
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
8169
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
8170
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
8171
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
8172
basisvalues[0] *= std::sqrt(0.5);
8173
basisvalues[2] *= std::sqrt(1.0);
8174
basisvalues[5] *= std::sqrt(1.5);
8175
basisvalues[9] *= std::sqrt(2.0);
8176
basisvalues[1] *= std::sqrt(3.0);
8177
basisvalues[4] *= std::sqrt(4.5);
8178
basisvalues[8] *= std::sqrt(6.0);
8179
basisvalues[3] *= std::sqrt(7.5);
8180
basisvalues[7] *= std::sqrt(10.0);
8181
basisvalues[6] *= std::sqrt(14.0);
9710
8183
// Table(s) of coefficients.
9711
8184
static const double coefficients0[10] = \
9725
8198
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
9727
8200
// Declare helper variables.
9728
unsigned int rr = 0;
9729
unsigned int ss = 0;
9730
unsigned int tt = 0;
9734
8201
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
9735
8202
double tmp1 = (1.0 - Y)/2.0;
9736
8203
double tmp2 = tmp1*tmp1;
9738
8205
// Compute basisvalues.
9739
8206
basisvalues[0] = 1.0;
9740
8207
basisvalues[1] = tmp0;
9741
for (unsigned int r = 1; r < 3; r++)
9743
rr = (r + 1)*((r + 1) + 1)/2;
9745
tt = (r - 1)*((r - 1) + 1)/2;
9746
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
9747
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
9748
}// end loop over 'r'
9749
for (unsigned int r = 0; r < 3; r++)
9751
rr = (r + 1)*(r + 1 + 1)/2 + 1;
9753
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
9754
}// end loop over 'r'
9755
for (unsigned int r = 0; r < 2; r++)
9757
for (unsigned int s = 1; s < 3 - r; s++)
9759
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
9760
ss = (r + s)*(r + s + 1)/2 + s;
9761
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
9762
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));
9763
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));
9764
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));
9765
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
9766
}// end loop over 's'
9767
}// end loop over 'r'
9768
for (unsigned int r = 0; r < 4; r++)
9770
for (unsigned int s = 0; s < 4 - r; s++)
9772
rr = (r + s)*(r + s + 1)/2 + s;
9773
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
9774
}// end loop over 's'
9775
}// end loop over 'r'
8208
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
8209
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
8210
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
8211
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
8212
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
8213
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
8214
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
8215
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
8216
basisvalues[0] *= std::sqrt(0.5);
8217
basisvalues[2] *= std::sqrt(1.0);
8218
basisvalues[5] *= std::sqrt(1.5);
8219
basisvalues[9] *= std::sqrt(2.0);
8220
basisvalues[1] *= std::sqrt(3.0);
8221
basisvalues[4] *= std::sqrt(4.5);
8222
basisvalues[8] *= std::sqrt(6.0);
8223
basisvalues[3] *= std::sqrt(7.5);
8224
basisvalues[7] *= std::sqrt(10.0);
8225
basisvalues[6] *= std::sqrt(14.0);
9777
8227
// Table(s) of coefficients.
9778
8228
static const double coefficients0[10] = \
9792
8242
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
9794
8244
// Declare helper variables.
9795
unsigned int rr = 0;
9796
unsigned int ss = 0;
9797
unsigned int tt = 0;
9801
8245
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
9802
8246
double tmp1 = (1.0 - Y)/2.0;
9803
8247
double tmp2 = tmp1*tmp1;
9805
8249
// Compute basisvalues.
9806
8250
basisvalues[0] = 1.0;
9807
8251
basisvalues[1] = tmp0;
9808
for (unsigned int r = 1; r < 3; r++)
9810
rr = (r + 1)*((r + 1) + 1)/2;
9812
tt = (r - 1)*((r - 1) + 1)/2;
9813
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
9814
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
9815
}// end loop over 'r'
9816
for (unsigned int r = 0; r < 3; r++)
9818
rr = (r + 1)*(r + 1 + 1)/2 + 1;
9820
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
9821
}// end loop over 'r'
9822
for (unsigned int r = 0; r < 2; r++)
9824
for (unsigned int s = 1; s < 3 - r; s++)
9826
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
9827
ss = (r + s)*(r + s + 1)/2 + s;
9828
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
9829
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));
9830
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));
9831
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));
9832
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
9833
}// end loop over 's'
9834
}// end loop over 'r'
9835
for (unsigned int r = 0; r < 4; r++)
9837
for (unsigned int s = 0; s < 4 - r; s++)
9839
rr = (r + s)*(r + s + 1)/2 + s;
9840
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
9841
}// end loop over 's'
9842
}// end loop over 'r'
8252
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
8253
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
8254
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
8255
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
8256
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
8257
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
8258
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
8259
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
8260
basisvalues[0] *= std::sqrt(0.5);
8261
basisvalues[2] *= std::sqrt(1.0);
8262
basisvalues[5] *= std::sqrt(1.5);
8263
basisvalues[9] *= std::sqrt(2.0);
8264
basisvalues[1] *= std::sqrt(3.0);
8265
basisvalues[4] *= std::sqrt(4.5);
8266
basisvalues[8] *= std::sqrt(6.0);
8267
basisvalues[3] *= std::sqrt(7.5);
8268
basisvalues[7] *= std::sqrt(10.0);
8269
basisvalues[6] *= std::sqrt(14.0);
9844
8271
// Table(s) of coefficients.
9845
8272
static const double coefficients0[10] = \
9859
8286
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
9861
8288
// Declare helper variables.
9862
unsigned int rr = 0;
9863
unsigned int ss = 0;
9864
unsigned int tt = 0;
9868
8289
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
9869
8290
double tmp1 = (1.0 - Y)/2.0;
9870
8291
double tmp2 = tmp1*tmp1;
9872
8293
// Compute basisvalues.
9873
8294
basisvalues[0] = 1.0;
9874
8295
basisvalues[1] = tmp0;
9875
for (unsigned int r = 1; r < 3; r++)
9877
rr = (r + 1)*((r + 1) + 1)/2;
9879
tt = (r - 1)*((r - 1) + 1)/2;
9880
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
9881
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
9882
}// end loop over 'r'
9883
for (unsigned int r = 0; r < 3; r++)
9885
rr = (r + 1)*(r + 1 + 1)/2 + 1;
9887
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
9888
}// end loop over 'r'
9889
for (unsigned int r = 0; r < 2; r++)
9891
for (unsigned int s = 1; s < 3 - r; s++)
9893
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
9894
ss = (r + s)*(r + s + 1)/2 + s;
9895
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
9896
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));
9897
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));
9898
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));
9899
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
9900
}// end loop over 's'
9901
}// end loop over 'r'
9902
for (unsigned int r = 0; r < 4; r++)
9904
for (unsigned int s = 0; s < 4 - r; s++)
9906
rr = (r + s)*(r + s + 1)/2 + s;
9907
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
9908
}// end loop over 's'
9909
}// end loop over 'r'
8296
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
8297
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
8298
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
8299
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
8300
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
8301
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
8302
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
8303
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
8304
basisvalues[0] *= std::sqrt(0.5);
8305
basisvalues[2] *= std::sqrt(1.0);
8306
basisvalues[5] *= std::sqrt(1.5);
8307
basisvalues[9] *= std::sqrt(2.0);
8308
basisvalues[1] *= std::sqrt(3.0);
8309
basisvalues[4] *= std::sqrt(4.5);
8310
basisvalues[8] *= std::sqrt(6.0);
8311
basisvalues[3] *= std::sqrt(7.5);
8312
basisvalues[7] *= std::sqrt(10.0);
8313
basisvalues[6] *= std::sqrt(14.0);
9911
8315
// Table(s) of coefficients.
9912
8316
static const double coefficients0[10] = \
9926
8330
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
9928
8332
// Declare helper variables.
9929
unsigned int rr = 0;
9930
unsigned int ss = 0;
9931
unsigned int tt = 0;
9935
8333
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
9936
8334
double tmp1 = (1.0 - Y)/2.0;
9937
8335
double tmp2 = tmp1*tmp1;
9939
8337
// Compute basisvalues.
9940
8338
basisvalues[0] = 1.0;
9941
8339
basisvalues[1] = tmp0;
9942
for (unsigned int r = 1; r < 3; r++)
9944
rr = (r + 1)*((r + 1) + 1)/2;
9946
tt = (r - 1)*((r - 1) + 1)/2;
9947
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
9948
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
9949
}// end loop over 'r'
9950
for (unsigned int r = 0; r < 3; r++)
9952
rr = (r + 1)*(r + 1 + 1)/2 + 1;
9954
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
9955
}// end loop over 'r'
9956
for (unsigned int r = 0; r < 2; r++)
9958
for (unsigned int s = 1; s < 3 - r; s++)
9960
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
9961
ss = (r + s)*(r + s + 1)/2 + s;
9962
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
9963
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));
9964
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));
9965
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));
9966
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
9967
}// end loop over 's'
9968
}// end loop over 'r'
9969
for (unsigned int r = 0; r < 4; r++)
9971
for (unsigned int s = 0; s < 4 - r; s++)
9973
rr = (r + s)*(r + s + 1)/2 + s;
9974
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
9975
}// end loop over 's'
9976
}// end loop over 'r'
8340
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
8341
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
8342
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
8343
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
8344
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
8345
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
8346
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
8347
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
8348
basisvalues[0] *= std::sqrt(0.5);
8349
basisvalues[2] *= std::sqrt(1.0);
8350
basisvalues[5] *= std::sqrt(1.5);
8351
basisvalues[9] *= std::sqrt(2.0);
8352
basisvalues[1] *= std::sqrt(3.0);
8353
basisvalues[4] *= std::sqrt(4.5);
8354
basisvalues[8] *= std::sqrt(6.0);
8355
basisvalues[3] *= std::sqrt(7.5);
8356
basisvalues[7] *= std::sqrt(10.0);
8357
basisvalues[6] *= std::sqrt(14.0);
9978
8359
// Table(s) of coefficients.
9979
8360
static const double coefficients0[10] = \
9993
8374
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
9995
8376
// Declare helper variables.
9996
unsigned int rr = 0;
9997
unsigned int ss = 0;
9998
unsigned int tt = 0;
10002
8377
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
10003
8378
double tmp1 = (1.0 - Y)/2.0;
10004
8379
double tmp2 = tmp1*tmp1;
10006
8381
// Compute basisvalues.
10007
8382
basisvalues[0] = 1.0;
10008
8383
basisvalues[1] = tmp0;
10009
for (unsigned int r = 1; r < 3; r++)
10011
rr = (r + 1)*((r + 1) + 1)/2;
10013
tt = (r - 1)*((r - 1) + 1)/2;
10014
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
10015
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
10016
}// end loop over 'r'
10017
for (unsigned int r = 0; r < 3; r++)
10019
rr = (r + 1)*(r + 1 + 1)/2 + 1;
10021
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
10022
}// end loop over 'r'
10023
for (unsigned int r = 0; r < 2; r++)
10025
for (unsigned int s = 1; s < 3 - r; s++)
10027
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
10028
ss = (r + s)*(r + s + 1)/2 + s;
10029
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
10030
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));
10031
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));
10032
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));
10033
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
10034
}// end loop over 's'
10035
}// end loop over 'r'
10036
for (unsigned int r = 0; r < 4; r++)
10038
for (unsigned int s = 0; s < 4 - r; s++)
10040
rr = (r + s)*(r + s + 1)/2 + s;
10041
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
10042
}// end loop over 's'
10043
}// end loop over 'r'
8384
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
8385
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
8386
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
8387
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
8388
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
8389
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
8390
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
8391
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
8392
basisvalues[0] *= std::sqrt(0.5);
8393
basisvalues[2] *= std::sqrt(1.0);
8394
basisvalues[5] *= std::sqrt(1.5);
8395
basisvalues[9] *= std::sqrt(2.0);
8396
basisvalues[1] *= std::sqrt(3.0);
8397
basisvalues[4] *= std::sqrt(4.5);
8398
basisvalues[8] *= std::sqrt(6.0);
8399
basisvalues[3] *= std::sqrt(7.5);
8400
basisvalues[7] *= std::sqrt(10.0);
8401
basisvalues[6] *= std::sqrt(14.0);
10045
8403
// Table(s) of coefficients.
10046
8404
static const double coefficients0[10] = \
10060
8418
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
10062
8420
// Declare helper variables.
10063
unsigned int rr = 0;
10064
unsigned int ss = 0;
10065
unsigned int tt = 0;
10069
8421
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
10070
8422
double tmp1 = (1.0 - Y)/2.0;
10071
8423
double tmp2 = tmp1*tmp1;
10073
8425
// Compute basisvalues.
10074
8426
basisvalues[0] = 1.0;
10075
8427
basisvalues[1] = tmp0;
10076
for (unsigned int r = 1; r < 3; r++)
10078
rr = (r + 1)*((r + 1) + 1)/2;
10080
tt = (r - 1)*((r - 1) + 1)/2;
10081
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
10082
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
10083
}// end loop over 'r'
10084
for (unsigned int r = 0; r < 3; r++)
10086
rr = (r + 1)*(r + 1 + 1)/2 + 1;
10088
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
10089
}// end loop over 'r'
10090
for (unsigned int r = 0; r < 2; r++)
10092
for (unsigned int s = 1; s < 3 - r; s++)
10094
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
10095
ss = (r + s)*(r + s + 1)/2 + s;
10096
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
10097
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));
10098
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));
10099
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));
10100
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
10101
}// end loop over 's'
10102
}// end loop over 'r'
10103
for (unsigned int r = 0; r < 4; r++)
10105
for (unsigned int s = 0; s < 4 - r; s++)
10107
rr = (r + s)*(r + s + 1)/2 + s;
10108
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
10109
}// end loop over 's'
10110
}// end loop over 'r'
8428
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
8429
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
8430
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
8431
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
8432
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
8433
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
8434
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
8435
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
8436
basisvalues[0] *= std::sqrt(0.5);
8437
basisvalues[2] *= std::sqrt(1.0);
8438
basisvalues[5] *= std::sqrt(1.5);
8439
basisvalues[9] *= std::sqrt(2.0);
8440
basisvalues[1] *= std::sqrt(3.0);
8441
basisvalues[4] *= std::sqrt(4.5);
8442
basisvalues[8] *= std::sqrt(6.0);
8443
basisvalues[3] *= std::sqrt(7.5);
8444
basisvalues[7] *= std::sqrt(10.0);
8445
basisvalues[6] *= std::sqrt(14.0);
10112
8447
// Table(s) of coefficients.
10113
8448
static const double coefficients0[10] = \
10127
8462
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
10129
8464
// Declare helper variables.
10130
unsigned int rr = 0;
10131
unsigned int ss = 0;
10132
unsigned int tt = 0;
10136
8465
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
10137
8466
double tmp1 = (1.0 - Y)/2.0;
10138
8467
double tmp2 = tmp1*tmp1;
10140
8469
// Compute basisvalues.
10141
8470
basisvalues[0] = 1.0;
10142
8471
basisvalues[1] = tmp0;
10143
for (unsigned int r = 1; r < 3; r++)
10145
rr = (r + 1)*((r + 1) + 1)/2;
10147
tt = (r - 1)*((r - 1) + 1)/2;
10148
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
10149
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
10150
}// end loop over 'r'
10151
for (unsigned int r = 0; r < 3; r++)
10153
rr = (r + 1)*(r + 1 + 1)/2 + 1;
10155
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
10156
}// end loop over 'r'
10157
for (unsigned int r = 0; r < 2; r++)
10159
for (unsigned int s = 1; s < 3 - r; s++)
10161
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
10162
ss = (r + s)*(r + s + 1)/2 + s;
10163
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
10164
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));
10165
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));
10166
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));
10167
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
10168
}// end loop over 's'
10169
}// end loop over 'r'
10170
for (unsigned int r = 0; r < 4; r++)
10172
for (unsigned int s = 0; s < 4 - r; s++)
10174
rr = (r + s)*(r + s + 1)/2 + s;
10175
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
10176
}// end loop over 's'
10177
}// end loop over 'r'
8472
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
8473
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
8474
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
8475
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
8476
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
8477
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
8478
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
8479
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
8480
basisvalues[0] *= std::sqrt(0.5);
8481
basisvalues[2] *= std::sqrt(1.0);
8482
basisvalues[5] *= std::sqrt(1.5);
8483
basisvalues[9] *= std::sqrt(2.0);
8484
basisvalues[1] *= std::sqrt(3.0);
8485
basisvalues[4] *= std::sqrt(4.5);
8486
basisvalues[8] *= std::sqrt(6.0);
8487
basisvalues[3] *= std::sqrt(7.5);
8488
basisvalues[7] *= std::sqrt(10.0);
8489
basisvalues[6] *= std::sqrt(14.0);
10179
8491
// Table(s) of coefficients.
10180
8492
static const double coefficients0[10] = \
10194
8506
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
10196
8508
// Declare helper variables.
10197
unsigned int rr = 0;
10198
unsigned int ss = 0;
10199
unsigned int tt = 0;
10203
8509
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
10204
8510
double tmp1 = (1.0 - Y)/2.0;
10205
8511
double tmp2 = tmp1*tmp1;
10207
8513
// Compute basisvalues.
10208
8514
basisvalues[0] = 1.0;
10209
8515
basisvalues[1] = tmp0;
10210
for (unsigned int r = 1; r < 3; r++)
10212
rr = (r + 1)*((r + 1) + 1)/2;
10214
tt = (r - 1)*((r - 1) + 1)/2;
10215
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
10216
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
10217
}// end loop over 'r'
10218
for (unsigned int r = 0; r < 3; r++)
10220
rr = (r + 1)*(r + 1 + 1)/2 + 1;
10222
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
10223
}// end loop over 'r'
10224
for (unsigned int r = 0; r < 2; r++)
10226
for (unsigned int s = 1; s < 3 - r; s++)
10228
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
10229
ss = (r + s)*(r + s + 1)/2 + s;
10230
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
10231
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));
10232
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));
10233
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));
10234
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
10235
}// end loop over 's'
10236
}// end loop over 'r'
10237
for (unsigned int r = 0; r < 4; r++)
10239
for (unsigned int s = 0; s < 4 - r; s++)
10241
rr = (r + s)*(r + s + 1)/2 + s;
10242
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
10243
}// end loop over 's'
10244
}// end loop over 'r'
8516
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
8517
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
8518
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
8519
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
8520
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
8521
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
8522
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
8523
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
8524
basisvalues[0] *= std::sqrt(0.5);
8525
basisvalues[2] *= std::sqrt(1.0);
8526
basisvalues[5] *= std::sqrt(1.5);
8527
basisvalues[9] *= std::sqrt(2.0);
8528
basisvalues[1] *= std::sqrt(3.0);
8529
basisvalues[4] *= std::sqrt(4.5);
8530
basisvalues[8] *= std::sqrt(6.0);
8531
basisvalues[3] *= std::sqrt(7.5);
8532
basisvalues[7] *= std::sqrt(10.0);
8533
basisvalues[6] *= std::sqrt(14.0);
10246
8535
// Table(s) of coefficients.
10247
8536
static const double coefficients0[10] = \
10261
8550
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
10263
8552
// Declare helper variables.
10264
unsigned int rr = 0;
10265
unsigned int ss = 0;
10266
unsigned int tt = 0;
10270
8553
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
10271
8554
double tmp1 = (1.0 - Y)/2.0;
10272
8555
double tmp2 = tmp1*tmp1;
10274
8557
// Compute basisvalues.
10275
8558
basisvalues[0] = 1.0;
10276
8559
basisvalues[1] = tmp0;
10277
for (unsigned int r = 1; r < 3; r++)
10279
rr = (r + 1)*((r + 1) + 1)/2;
10281
tt = (r - 1)*((r - 1) + 1)/2;
10282
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
10283
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
10284
}// end loop over 'r'
10285
for (unsigned int r = 0; r < 3; r++)
10287
rr = (r + 1)*(r + 1 + 1)/2 + 1;
10289
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
10290
}// end loop over 'r'
10291
for (unsigned int r = 0; r < 2; r++)
10293
for (unsigned int s = 1; s < 3 - r; s++)
10295
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
10296
ss = (r + s)*(r + s + 1)/2 + s;
10297
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
10298
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));
10299
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));
10300
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));
10301
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
10302
}// end loop over 's'
10303
}// end loop over 'r'
10304
for (unsigned int r = 0; r < 4; r++)
10306
for (unsigned int s = 0; s < 4 - r; s++)
10308
rr = (r + s)*(r + s + 1)/2 + s;
10309
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
10310
}// end loop over 's'
10311
}// end loop over 'r'
8560
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
8561
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
8562
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
8563
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
8564
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
8565
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
8566
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
8567
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
8568
basisvalues[0] *= std::sqrt(0.5);
8569
basisvalues[2] *= std::sqrt(1.0);
8570
basisvalues[5] *= std::sqrt(1.5);
8571
basisvalues[9] *= std::sqrt(2.0);
8572
basisvalues[1] *= std::sqrt(3.0);
8573
basisvalues[4] *= std::sqrt(4.5);
8574
basisvalues[8] *= std::sqrt(6.0);
8575
basisvalues[3] *= std::sqrt(7.5);
8576
basisvalues[7] *= std::sqrt(10.0);
8577
basisvalues[6] *= std::sqrt(14.0);
10313
8579
// Table(s) of coefficients.
10314
8580
static const double coefficients0[10] = \
10328
8594
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
10330
8596
// Declare helper variables.
10331
unsigned int rr = 0;
10332
unsigned int ss = 0;
10333
unsigned int tt = 0;
10337
8597
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
10338
8598
double tmp1 = (1.0 - Y)/2.0;
10339
8599
double tmp2 = tmp1*tmp1;
10341
8601
// Compute basisvalues.
10342
8602
basisvalues[0] = 1.0;
10343
8603
basisvalues[1] = tmp0;
10344
for (unsigned int r = 1; r < 3; r++)
10346
rr = (r + 1)*((r + 1) + 1)/2;
10348
tt = (r - 1)*((r - 1) + 1)/2;
10349
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
10350
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
10351
}// end loop over 'r'
10352
for (unsigned int r = 0; r < 3; r++)
10354
rr = (r + 1)*(r + 1 + 1)/2 + 1;
10356
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
10357
}// end loop over 'r'
10358
for (unsigned int r = 0; r < 2; r++)
10360
for (unsigned int s = 1; s < 3 - r; s++)
10362
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
10363
ss = (r + s)*(r + s + 1)/2 + s;
10364
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
10365
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));
10366
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));
10367
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));
10368
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
10369
}// end loop over 's'
10370
}// end loop over 'r'
10371
for (unsigned int r = 0; r < 4; r++)
10373
for (unsigned int s = 0; s < 4 - r; s++)
10375
rr = (r + s)*(r + s + 1)/2 + s;
10376
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
10377
}// end loop over 's'
10378
}// end loop over 'r'
8604
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
8605
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
8606
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
8607
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
8608
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
8609
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
8610
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
8611
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
8612
basisvalues[0] *= std::sqrt(0.5);
8613
basisvalues[2] *= std::sqrt(1.0);
8614
basisvalues[5] *= std::sqrt(1.5);
8615
basisvalues[9] *= std::sqrt(2.0);
8616
basisvalues[1] *= std::sqrt(3.0);
8617
basisvalues[4] *= std::sqrt(4.5);
8618
basisvalues[8] *= std::sqrt(6.0);
8619
basisvalues[3] *= std::sqrt(7.5);
8620
basisvalues[7] *= std::sqrt(10.0);
8621
basisvalues[6] *= std::sqrt(14.0);
10380
8623
// Table(s) of coefficients.
10381
8624
static const double coefficients0[10] = \
10395
8638
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
10397
8640
// Declare helper variables.
10398
unsigned int rr = 0;
10399
unsigned int ss = 0;
10400
unsigned int tt = 0;
10404
8641
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
10405
8642
double tmp1 = (1.0 - Y)/2.0;
10406
8643
double tmp2 = tmp1*tmp1;
10408
8645
// Compute basisvalues.
10409
8646
basisvalues[0] = 1.0;
10410
8647
basisvalues[1] = tmp0;
10411
for (unsigned int r = 1; r < 3; r++)
10413
rr = (r + 1)*((r + 1) + 1)/2;
10415
tt = (r - 1)*((r - 1) + 1)/2;
10416
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
10417
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
10418
}// end loop over 'r'
10419
for (unsigned int r = 0; r < 3; r++)
10421
rr = (r + 1)*(r + 1 + 1)/2 + 1;
10423
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
10424
}// end loop over 'r'
10425
for (unsigned int r = 0; r < 2; r++)
10427
for (unsigned int s = 1; s < 3 - r; s++)
10429
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
10430
ss = (r + s)*(r + s + 1)/2 + s;
10431
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
10432
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));
10433
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));
10434
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));
10435
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
10436
}// end loop over 's'
10437
}// end loop over 'r'
10438
for (unsigned int r = 0; r < 4; r++)
10440
for (unsigned int s = 0; s < 4 - r; s++)
10442
rr = (r + s)*(r + s + 1)/2 + s;
10443
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
10444
}// end loop over 's'
10445
}// end loop over 'r'
8648
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
8649
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
8650
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
8651
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
8652
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
8653
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
8654
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
8655
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
8656
basisvalues[0] *= std::sqrt(0.5);
8657
basisvalues[2] *= std::sqrt(1.0);
8658
basisvalues[5] *= std::sqrt(1.5);
8659
basisvalues[9] *= std::sqrt(2.0);
8660
basisvalues[1] *= std::sqrt(3.0);
8661
basisvalues[4] *= std::sqrt(4.5);
8662
basisvalues[8] *= std::sqrt(6.0);
8663
basisvalues[3] *= std::sqrt(7.5);
8664
basisvalues[7] *= std::sqrt(10.0);
8665
basisvalues[6] *= std::sqrt(14.0);
10447
8667
// Table(s) of coefficients.
10448
8668
static const double coefficients0[10] = \
10462
8682
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
10464
8684
// Declare helper variables.
10465
unsigned int rr = 0;
10466
unsigned int ss = 0;
10467
unsigned int tt = 0;
10471
8685
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
10472
8686
double tmp1 = (1.0 - Y)/2.0;
10473
8687
double tmp2 = tmp1*tmp1;
10475
8689
// Compute basisvalues.
10476
8690
basisvalues[0] = 1.0;
10477
8691
basisvalues[1] = tmp0;
10478
for (unsigned int r = 1; r < 3; r++)
10480
rr = (r + 1)*((r + 1) + 1)/2;
10482
tt = (r - 1)*((r - 1) + 1)/2;
10483
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
10484
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
10485
}// end loop over 'r'
10486
for (unsigned int r = 0; r < 3; r++)
10488
rr = (r + 1)*(r + 1 + 1)/2 + 1;
10490
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
10491
}// end loop over 'r'
10492
for (unsigned int r = 0; r < 2; r++)
10494
for (unsigned int s = 1; s < 3 - r; s++)
10496
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
10497
ss = (r + s)*(r + s + 1)/2 + s;
10498
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
10499
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));
10500
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));
10501
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));
10502
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
10503
}// end loop over 's'
10504
}// end loop over 'r'
10505
for (unsigned int r = 0; r < 4; r++)
10507
for (unsigned int s = 0; s < 4 - r; s++)
10509
rr = (r + s)*(r + s + 1)/2 + s;
10510
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
10511
}// end loop over 's'
10512
}// end loop over 'r'
8692
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
8693
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
8694
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
8695
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
8696
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
8697
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
8698
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
8699
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
8700
basisvalues[0] *= std::sqrt(0.5);
8701
basisvalues[2] *= std::sqrt(1.0);
8702
basisvalues[5] *= std::sqrt(1.5);
8703
basisvalues[9] *= std::sqrt(2.0);
8704
basisvalues[1] *= std::sqrt(3.0);
8705
basisvalues[4] *= std::sqrt(4.5);
8706
basisvalues[8] *= std::sqrt(6.0);
8707
basisvalues[3] *= std::sqrt(7.5);
8708
basisvalues[7] *= std::sqrt(10.0);
8709
basisvalues[6] *= std::sqrt(14.0);
10514
8711
// Table(s) of coefficients.
10515
8712
static const double coefficients0[10] = \
10529
8726
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
10531
8728
// Declare helper variables.
10532
unsigned int rr = 0;
10533
unsigned int ss = 0;
10534
unsigned int tt = 0;
10538
8729
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
10539
8730
double tmp1 = (1.0 - Y)/2.0;
10540
8731
double tmp2 = tmp1*tmp1;
10542
8733
// Compute basisvalues.
10543
8734
basisvalues[0] = 1.0;
10544
8735
basisvalues[1] = tmp0;
10545
for (unsigned int r = 1; r < 3; r++)
10547
rr = (r + 1)*((r + 1) + 1)/2;
10549
tt = (r - 1)*((r - 1) + 1)/2;
10550
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
10551
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
10552
}// end loop over 'r'
10553
for (unsigned int r = 0; r < 3; r++)
10555
rr = (r + 1)*(r + 1 + 1)/2 + 1;
10557
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
10558
}// end loop over 'r'
10559
for (unsigned int r = 0; r < 2; r++)
10561
for (unsigned int s = 1; s < 3 - r; s++)
10563
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
10564
ss = (r + s)*(r + s + 1)/2 + s;
10565
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
10566
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));
10567
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));
10568
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));
10569
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
10570
}// end loop over 's'
10571
}// end loop over 'r'
10572
for (unsigned int r = 0; r < 4; r++)
10574
for (unsigned int s = 0; s < 4 - r; s++)
10576
rr = (r + s)*(r + s + 1)/2 + s;
10577
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
10578
}// end loop over 's'
10579
}// end loop over 'r'
8736
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
8737
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
8738
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
8739
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
8740
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
8741
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
8742
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
8743
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
8744
basisvalues[0] *= std::sqrt(0.5);
8745
basisvalues[2] *= std::sqrt(1.0);
8746
basisvalues[5] *= std::sqrt(1.5);
8747
basisvalues[9] *= std::sqrt(2.0);
8748
basisvalues[1] *= std::sqrt(3.0);
8749
basisvalues[4] *= std::sqrt(4.5);
8750
basisvalues[8] *= std::sqrt(6.0);
8751
basisvalues[3] *= std::sqrt(7.5);
8752
basisvalues[7] *= std::sqrt(10.0);
8753
basisvalues[6] *= std::sqrt(14.0);
10581
8755
// Table(s) of coefficients.
10582
8756
static const double coefficients0[10] = \
10596
8770
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
10598
8772
// Declare helper variables.
10599
unsigned int rr = 0;
10600
unsigned int ss = 0;
10601
unsigned int tt = 0;
10605
8773
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
10606
8774
double tmp1 = (1.0 - Y)/2.0;
10607
8775
double tmp2 = tmp1*tmp1;
10609
8777
// Compute basisvalues.
10610
8778
basisvalues[0] = 1.0;
10611
8779
basisvalues[1] = tmp0;
10612
for (unsigned int r = 1; r < 3; r++)
10614
rr = (r + 1)*((r + 1) + 1)/2;
10616
tt = (r - 1)*((r - 1) + 1)/2;
10617
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
10618
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
10619
}// end loop over 'r'
10620
for (unsigned int r = 0; r < 3; r++)
10622
rr = (r + 1)*(r + 1 + 1)/2 + 1;
10624
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
10625
}// end loop over 'r'
10626
for (unsigned int r = 0; r < 2; r++)
10628
for (unsigned int s = 1; s < 3 - r; s++)
10630
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
10631
ss = (r + s)*(r + s + 1)/2 + s;
10632
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
10633
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));
10634
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));
10635
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));
10636
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
10637
}// end loop over 's'
10638
}// end loop over 'r'
10639
for (unsigned int r = 0; r < 4; r++)
10641
for (unsigned int s = 0; s < 4 - r; s++)
10643
rr = (r + s)*(r + s + 1)/2 + s;
10644
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
10645
}// end loop over 's'
10646
}// end loop over 'r'
8780
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
8781
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
8782
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
8783
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
8784
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
8785
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
8786
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
8787
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
8788
basisvalues[0] *= std::sqrt(0.5);
8789
basisvalues[2] *= std::sqrt(1.0);
8790
basisvalues[5] *= std::sqrt(1.5);
8791
basisvalues[9] *= std::sqrt(2.0);
8792
basisvalues[1] *= std::sqrt(3.0);
8793
basisvalues[4] *= std::sqrt(4.5);
8794
basisvalues[8] *= std::sqrt(6.0);
8795
basisvalues[3] *= std::sqrt(7.5);
8796
basisvalues[7] *= std::sqrt(10.0);
8797
basisvalues[6] *= std::sqrt(14.0);
10648
8799
// Table(s) of coefficients.
10649
8800
static const double coefficients0[10] = \
10663
8814
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
10665
8816
// Declare helper variables.
10666
unsigned int rr = 0;
10667
unsigned int ss = 0;
10668
unsigned int tt = 0;
10672
8817
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
10673
8818
double tmp1 = (1.0 - Y)/2.0;
10674
8819
double tmp2 = tmp1*tmp1;
10676
8821
// Compute basisvalues.
10677
8822
basisvalues[0] = 1.0;
10678
8823
basisvalues[1] = tmp0;
10679
for (unsigned int r = 1; r < 3; r++)
10681
rr = (r + 1)*((r + 1) + 1)/2;
10683
tt = (r - 1)*((r - 1) + 1)/2;
10684
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
10685
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
10686
}// end loop over 'r'
10687
for (unsigned int r = 0; r < 3; r++)
10689
rr = (r + 1)*(r + 1 + 1)/2 + 1;
10691
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
10692
}// end loop over 'r'
10693
for (unsigned int r = 0; r < 2; r++)
10695
for (unsigned int s = 1; s < 3 - r; s++)
10697
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
10698
ss = (r + s)*(r + s + 1)/2 + s;
10699
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
10700
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));
10701
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));
10702
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));
10703
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
10704
}// end loop over 's'
10705
}// end loop over 'r'
10706
for (unsigned int r = 0; r < 4; r++)
10708
for (unsigned int s = 0; s < 4 - r; s++)
10710
rr = (r + s)*(r + s + 1)/2 + s;
10711
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
10712
}// end loop over 's'
10713
}// end loop over 'r'
8824
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
8825
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
8826
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
8827
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
8828
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
8829
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
8830
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
8831
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
8832
basisvalues[0] *= std::sqrt(0.5);
8833
basisvalues[2] *= std::sqrt(1.0);
8834
basisvalues[5] *= std::sqrt(1.5);
8835
basisvalues[9] *= std::sqrt(2.0);
8836
basisvalues[1] *= std::sqrt(3.0);
8837
basisvalues[4] *= std::sqrt(4.5);
8838
basisvalues[8] *= std::sqrt(6.0);
8839
basisvalues[3] *= std::sqrt(7.5);
8840
basisvalues[7] *= std::sqrt(10.0);
8841
basisvalues[6] *= std::sqrt(14.0);
10715
8843
// Table(s) of coefficients.
10716
8844
static const double coefficients0[10] = \
10730
8858
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
10732
8860
// Declare helper variables.
10733
unsigned int rr = 0;
10734
unsigned int ss = 0;
10735
unsigned int tt = 0;
10739
8861
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
10740
8862
double tmp1 = (1.0 - Y)/2.0;
10741
8863
double tmp2 = tmp1*tmp1;
10743
8865
// Compute basisvalues.
10744
8866
basisvalues[0] = 1.0;
10745
8867
basisvalues[1] = tmp0;
10746
for (unsigned int r = 1; r < 3; r++)
10748
rr = (r + 1)*((r + 1) + 1)/2;
10750
tt = (r - 1)*((r - 1) + 1)/2;
10751
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
10752
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
10753
}// end loop over 'r'
10754
for (unsigned int r = 0; r < 3; r++)
10756
rr = (r + 1)*(r + 1 + 1)/2 + 1;
10758
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
10759
}// end loop over 'r'
10760
for (unsigned int r = 0; r < 2; r++)
10762
for (unsigned int s = 1; s < 3 - r; s++)
10764
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
10765
ss = (r + s)*(r + s + 1)/2 + s;
10766
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
10767
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));
10768
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));
10769
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));
10770
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
10771
}// end loop over 's'
10772
}// end loop over 'r'
10773
for (unsigned int r = 0; r < 4; r++)
10775
for (unsigned int s = 0; s < 4 - r; s++)
10777
rr = (r + s)*(r + s + 1)/2 + s;
10778
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
10779
}// end loop over 's'
10780
}// end loop over 'r'
8868
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
8869
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
8870
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
8871
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
8872
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
8873
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
8874
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
8875
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
8876
basisvalues[0] *= std::sqrt(0.5);
8877
basisvalues[2] *= std::sqrt(1.0);
8878
basisvalues[5] *= std::sqrt(1.5);
8879
basisvalues[9] *= std::sqrt(2.0);
8880
basisvalues[1] *= std::sqrt(3.0);
8881
basisvalues[4] *= std::sqrt(4.5);
8882
basisvalues[8] *= std::sqrt(6.0);
8883
basisvalues[3] *= std::sqrt(7.5);
8884
basisvalues[7] *= std::sqrt(10.0);
8885
basisvalues[6] *= std::sqrt(14.0);
10782
8887
// Table(s) of coefficients.
10783
8888
static const double coefficients0[10] = \
10797
8902
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
10799
8904
// Declare helper variables.
10800
unsigned int rr = 0;
10801
unsigned int ss = 0;
10802
unsigned int tt = 0;
10806
8905
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
10807
8906
double tmp1 = (1.0 - Y)/2.0;
10808
8907
double tmp2 = tmp1*tmp1;
10810
8909
// Compute basisvalues.
10811
8910
basisvalues[0] = 1.0;
10812
8911
basisvalues[1] = tmp0;
10813
for (unsigned int r = 1; r < 3; r++)
10815
rr = (r + 1)*((r + 1) + 1)/2;
10817
tt = (r - 1)*((r - 1) + 1)/2;
10818
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
10819
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
10820
}// end loop over 'r'
10821
for (unsigned int r = 0; r < 3; r++)
10823
rr = (r + 1)*(r + 1 + 1)/2 + 1;
10825
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
10826
}// end loop over 'r'
10827
for (unsigned int r = 0; r < 2; r++)
10829
for (unsigned int s = 1; s < 3 - r; s++)
10831
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
10832
ss = (r + s)*(r + s + 1)/2 + s;
10833
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
10834
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));
10835
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));
10836
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));
10837
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
10838
}// end loop over 's'
10839
}// end loop over 'r'
10840
for (unsigned int r = 0; r < 4; r++)
10842
for (unsigned int s = 0; s < 4 - r; s++)
10844
rr = (r + s)*(r + s + 1)/2 + s;
10845
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
10846
}// end loop over 's'
10847
}// end loop over 'r'
8912
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
8913
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
8914
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
8915
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
8916
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
8917
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
8918
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
8919
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
8920
basisvalues[0] *= std::sqrt(0.5);
8921
basisvalues[2] *= std::sqrt(1.0);
8922
basisvalues[5] *= std::sqrt(1.5);
8923
basisvalues[9] *= std::sqrt(2.0);
8924
basisvalues[1] *= std::sqrt(3.0);
8925
basisvalues[4] *= std::sqrt(4.5);
8926
basisvalues[8] *= std::sqrt(6.0);
8927
basisvalues[3] *= std::sqrt(7.5);
8928
basisvalues[7] *= std::sqrt(10.0);
8929
basisvalues[6] *= std::sqrt(14.0);
10849
8931
// Table(s) of coefficients.
10850
8932
static const double coefficients0[10] = \
10986
9068
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
10988
9070
// Declare helper variables.
10989
unsigned int rr = 0;
10990
unsigned int ss = 0;
10991
unsigned int tt = 0;
10995
9071
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
10996
9072
double tmp1 = (1.0 - Y)/2.0;
10997
9073
double tmp2 = tmp1*tmp1;
10999
9075
// Compute basisvalues.
11000
9076
basisvalues[0] = 1.0;
11001
9077
basisvalues[1] = tmp0;
11002
for (unsigned int r = 1; r < 3; r++)
11004
rr = (r + 1)*((r + 1) + 1)/2;
11006
tt = (r - 1)*((r - 1) + 1)/2;
11007
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
11008
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
11009
}// end loop over 'r'
11010
for (unsigned int r = 0; r < 3; r++)
11012
rr = (r + 1)*(r + 1 + 1)/2 + 1;
11014
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
11015
}// end loop over 'r'
11016
for (unsigned int r = 0; r < 2; r++)
11018
for (unsigned int s = 1; s < 3 - r; s++)
11020
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
11021
ss = (r + s)*(r + s + 1)/2 + s;
11022
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
11023
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));
11024
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));
11025
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));
11026
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
11027
}// end loop over 's'
11028
}// end loop over 'r'
11029
for (unsigned int r = 0; r < 4; r++)
11031
for (unsigned int s = 0; s < 4 - r; s++)
11033
rr = (r + s)*(r + s + 1)/2 + s;
11034
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
11035
}// end loop over 's'
11036
}// end loop over 'r'
9078
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
9079
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
9080
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
9081
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
9082
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
9083
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
9084
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
9085
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
9086
basisvalues[0] *= std::sqrt(0.5);
9087
basisvalues[2] *= std::sqrt(1.0);
9088
basisvalues[5] *= std::sqrt(1.5);
9089
basisvalues[9] *= std::sqrt(2.0);
9090
basisvalues[1] *= std::sqrt(3.0);
9091
basisvalues[4] *= std::sqrt(4.5);
9092
basisvalues[8] *= std::sqrt(6.0);
9093
basisvalues[3] *= std::sqrt(7.5);
9094
basisvalues[7] *= std::sqrt(10.0);
9095
basisvalues[6] *= std::sqrt(14.0);
11038
9097
// Table(s) of coefficients.
11039
9098
static const double coefficients0[10] = \
11199
9258
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
11201
9260
// Declare helper variables.
11202
unsigned int rr = 0;
11203
unsigned int ss = 0;
11204
unsigned int tt = 0;
11208
9261
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
11209
9262
double tmp1 = (1.0 - Y)/2.0;
11210
9263
double tmp2 = tmp1*tmp1;
11212
9265
// Compute basisvalues.
11213
9266
basisvalues[0] = 1.0;
11214
9267
basisvalues[1] = tmp0;
11215
for (unsigned int r = 1; r < 3; r++)
11217
rr = (r + 1)*((r + 1) + 1)/2;
11219
tt = (r - 1)*((r - 1) + 1)/2;
11220
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
11221
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
11222
}// end loop over 'r'
11223
for (unsigned int r = 0; r < 3; r++)
11225
rr = (r + 1)*(r + 1 + 1)/2 + 1;
11227
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
11228
}// end loop over 'r'
11229
for (unsigned int r = 0; r < 2; r++)
11231
for (unsigned int s = 1; s < 3 - r; s++)
11233
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
11234
ss = (r + s)*(r + s + 1)/2 + s;
11235
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
11236
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));
11237
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));
11238
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));
11239
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
11240
}// end loop over 's'
11241
}// end loop over 'r'
11242
for (unsigned int r = 0; r < 4; r++)
11244
for (unsigned int s = 0; s < 4 - r; s++)
11246
rr = (r + s)*(r + s + 1)/2 + s;
11247
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
11248
}// end loop over 's'
11249
}// end loop over 'r'
9268
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
9269
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
9270
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
9271
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
9272
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
9273
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
9274
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
9275
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
9276
basisvalues[0] *= std::sqrt(0.5);
9277
basisvalues[2] *= std::sqrt(1.0);
9278
basisvalues[5] *= std::sqrt(1.5);
9279
basisvalues[9] *= std::sqrt(2.0);
9280
basisvalues[1] *= std::sqrt(3.0);
9281
basisvalues[4] *= std::sqrt(4.5);
9282
basisvalues[8] *= std::sqrt(6.0);
9283
basisvalues[3] *= std::sqrt(7.5);
9284
basisvalues[7] *= std::sqrt(10.0);
9285
basisvalues[6] *= std::sqrt(14.0);
11251
9287
// Table(s) of coefficients.
11252
9288
static const double coefficients0[10] = \
11412
9448
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
11414
9450
// Declare helper variables.
11415
unsigned int rr = 0;
11416
unsigned int ss = 0;
11417
unsigned int tt = 0;
11421
9451
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
11422
9452
double tmp1 = (1.0 - Y)/2.0;
11423
9453
double tmp2 = tmp1*tmp1;
11425
9455
// Compute basisvalues.
11426
9456
basisvalues[0] = 1.0;
11427
9457
basisvalues[1] = tmp0;
11428
for (unsigned int r = 1; r < 3; r++)
11430
rr = (r + 1)*((r + 1) + 1)/2;
11432
tt = (r - 1)*((r - 1) + 1)/2;
11433
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
11434
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
11435
}// end loop over 'r'
11436
for (unsigned int r = 0; r < 3; r++)
11438
rr = (r + 1)*(r + 1 + 1)/2 + 1;
11440
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
11441
}// end loop over 'r'
11442
for (unsigned int r = 0; r < 2; r++)
11444
for (unsigned int s = 1; s < 3 - r; s++)
11446
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
11447
ss = (r + s)*(r + s + 1)/2 + s;
11448
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
11449
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));
11450
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));
11451
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));
11452
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
11453
}// end loop over 's'
11454
}// end loop over 'r'
11455
for (unsigned int r = 0; r < 4; r++)
11457
for (unsigned int s = 0; s < 4 - r; s++)
11459
rr = (r + s)*(r + s + 1)/2 + s;
11460
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
11461
}// end loop over 's'
11462
}// end loop over 'r'
9458
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
9459
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
9460
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
9461
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
9462
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
9463
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
9464
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
9465
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
9466
basisvalues[0] *= std::sqrt(0.5);
9467
basisvalues[2] *= std::sqrt(1.0);
9468
basisvalues[5] *= std::sqrt(1.5);
9469
basisvalues[9] *= std::sqrt(2.0);
9470
basisvalues[1] *= std::sqrt(3.0);
9471
basisvalues[4] *= std::sqrt(4.5);
9472
basisvalues[8] *= std::sqrt(6.0);
9473
basisvalues[3] *= std::sqrt(7.5);
9474
basisvalues[7] *= std::sqrt(10.0);
9475
basisvalues[6] *= std::sqrt(14.0);
11464
9477
// Table(s) of coefficients.
11465
9478
static const double coefficients0[10] = \
11625
9638
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
11627
9640
// Declare helper variables.
11628
unsigned int rr = 0;
11629
unsigned int ss = 0;
11630
unsigned int tt = 0;
11634
9641
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
11635
9642
double tmp1 = (1.0 - Y)/2.0;
11636
9643
double tmp2 = tmp1*tmp1;
11638
9645
// Compute basisvalues.
11639
9646
basisvalues[0] = 1.0;
11640
9647
basisvalues[1] = tmp0;
11641
for (unsigned int r = 1; r < 3; r++)
11643
rr = (r + 1)*((r + 1) + 1)/2;
11645
tt = (r - 1)*((r - 1) + 1)/2;
11646
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
11647
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
11648
}// end loop over 'r'
11649
for (unsigned int r = 0; r < 3; r++)
11651
rr = (r + 1)*(r + 1 + 1)/2 + 1;
11653
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
11654
}// end loop over 'r'
11655
for (unsigned int r = 0; r < 2; r++)
11657
for (unsigned int s = 1; s < 3 - r; s++)
11659
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
11660
ss = (r + s)*(r + s + 1)/2 + s;
11661
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
11662
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));
11663
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));
11664
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));
11665
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
11666
}// end loop over 's'
11667
}// end loop over 'r'
11668
for (unsigned int r = 0; r < 4; r++)
11670
for (unsigned int s = 0; s < 4 - r; s++)
11672
rr = (r + s)*(r + s + 1)/2 + s;
11673
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
11674
}// end loop over 's'
11675
}// end loop over 'r'
9648
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
9649
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
9650
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
9651
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
9652
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
9653
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
9654
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
9655
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
9656
basisvalues[0] *= std::sqrt(0.5);
9657
basisvalues[2] *= std::sqrt(1.0);
9658
basisvalues[5] *= std::sqrt(1.5);
9659
basisvalues[9] *= std::sqrt(2.0);
9660
basisvalues[1] *= std::sqrt(3.0);
9661
basisvalues[4] *= std::sqrt(4.5);
9662
basisvalues[8] *= std::sqrt(6.0);
9663
basisvalues[3] *= std::sqrt(7.5);
9664
basisvalues[7] *= std::sqrt(10.0);
9665
basisvalues[6] *= std::sqrt(14.0);
11677
9667
// Table(s) of coefficients.
11678
9668
static const double coefficients0[10] = \
11838
9828
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
11840
9830
// Declare helper variables.
11841
unsigned int rr = 0;
11842
unsigned int ss = 0;
11843
unsigned int tt = 0;
11847
9831
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
11848
9832
double tmp1 = (1.0 - Y)/2.0;
11849
9833
double tmp2 = tmp1*tmp1;
11851
9835
// Compute basisvalues.
11852
9836
basisvalues[0] = 1.0;
11853
9837
basisvalues[1] = tmp0;
11854
for (unsigned int r = 1; r < 3; r++)
11856
rr = (r + 1)*((r + 1) + 1)/2;
11858
tt = (r - 1)*((r - 1) + 1)/2;
11859
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
11860
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
11861
}// end loop over 'r'
11862
for (unsigned int r = 0; r < 3; r++)
11864
rr = (r + 1)*(r + 1 + 1)/2 + 1;
11866
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
11867
}// end loop over 'r'
11868
for (unsigned int r = 0; r < 2; r++)
11870
for (unsigned int s = 1; s < 3 - r; s++)
11872
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
11873
ss = (r + s)*(r + s + 1)/2 + s;
11874
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
11875
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));
11876
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));
11877
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));
11878
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
11879
}// end loop over 's'
11880
}// end loop over 'r'
11881
for (unsigned int r = 0; r < 4; r++)
11883
for (unsigned int s = 0; s < 4 - r; s++)
11885
rr = (r + s)*(r + s + 1)/2 + s;
11886
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
11887
}// end loop over 's'
11888
}// end loop over 'r'
9838
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
9839
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
9840
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
9841
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
9842
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
9843
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
9844
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
9845
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
9846
basisvalues[0] *= std::sqrt(0.5);
9847
basisvalues[2] *= std::sqrt(1.0);
9848
basisvalues[5] *= std::sqrt(1.5);
9849
basisvalues[9] *= std::sqrt(2.0);
9850
basisvalues[1] *= std::sqrt(3.0);
9851
basisvalues[4] *= std::sqrt(4.5);
9852
basisvalues[8] *= std::sqrt(6.0);
9853
basisvalues[3] *= std::sqrt(7.5);
9854
basisvalues[7] *= std::sqrt(10.0);
9855
basisvalues[6] *= std::sqrt(14.0);
11890
9857
// Table(s) of coefficients.
11891
9858
static const double coefficients0[10] = \
12051
10018
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
12053
10020
// Declare helper variables.
12054
unsigned int rr = 0;
12055
unsigned int ss = 0;
12056
unsigned int tt = 0;
12060
10021
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
12061
10022
double tmp1 = (1.0 - Y)/2.0;
12062
10023
double tmp2 = tmp1*tmp1;
12064
10025
// Compute basisvalues.
12065
10026
basisvalues[0] = 1.0;
12066
10027
basisvalues[1] = tmp0;
12067
for (unsigned int r = 1; r < 3; r++)
12069
rr = (r + 1)*((r + 1) + 1)/2;
12071
tt = (r - 1)*((r - 1) + 1)/2;
12072
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
12073
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
12074
}// end loop over 'r'
12075
for (unsigned int r = 0; r < 3; r++)
12077
rr = (r + 1)*(r + 1 + 1)/2 + 1;
12079
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
12080
}// end loop over 'r'
12081
for (unsigned int r = 0; r < 2; r++)
12083
for (unsigned int s = 1; s < 3 - r; s++)
12085
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
12086
ss = (r + s)*(r + s + 1)/2 + s;
12087
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
12088
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));
12089
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));
12090
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));
12091
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
12092
}// end loop over 's'
12093
}// end loop over 'r'
12094
for (unsigned int r = 0; r < 4; r++)
12096
for (unsigned int s = 0; s < 4 - r; s++)
12098
rr = (r + s)*(r + s + 1)/2 + s;
12099
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
12100
}// end loop over 's'
12101
}// end loop over 'r'
10028
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
10029
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
10030
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
10031
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
10032
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
10033
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
10034
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
10035
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
10036
basisvalues[0] *= std::sqrt(0.5);
10037
basisvalues[2] *= std::sqrt(1.0);
10038
basisvalues[5] *= std::sqrt(1.5);
10039
basisvalues[9] *= std::sqrt(2.0);
10040
basisvalues[1] *= std::sqrt(3.0);
10041
basisvalues[4] *= std::sqrt(4.5);
10042
basisvalues[8] *= std::sqrt(6.0);
10043
basisvalues[3] *= std::sqrt(7.5);
10044
basisvalues[7] *= std::sqrt(10.0);
10045
basisvalues[6] *= std::sqrt(14.0);
12103
10047
// Table(s) of coefficients.
12104
10048
static const double coefficients0[10] = \
12264
10208
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
12266
10210
// Declare helper variables.
12267
unsigned int rr = 0;
12268
unsigned int ss = 0;
12269
unsigned int tt = 0;
12273
10211
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
12274
10212
double tmp1 = (1.0 - Y)/2.0;
12275
10213
double tmp2 = tmp1*tmp1;
12277
10215
// Compute basisvalues.
12278
10216
basisvalues[0] = 1.0;
12279
10217
basisvalues[1] = tmp0;
12280
for (unsigned int r = 1; r < 3; r++)
12282
rr = (r + 1)*((r + 1) + 1)/2;
12284
tt = (r - 1)*((r - 1) + 1)/2;
12285
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
12286
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
12287
}// end loop over 'r'
12288
for (unsigned int r = 0; r < 3; r++)
12290
rr = (r + 1)*(r + 1 + 1)/2 + 1;
12292
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
12293
}// end loop over 'r'
12294
for (unsigned int r = 0; r < 2; r++)
12296
for (unsigned int s = 1; s < 3 - r; s++)
12298
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
12299
ss = (r + s)*(r + s + 1)/2 + s;
12300
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
12301
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));
12302
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));
12303
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));
12304
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
12305
}// end loop over 's'
12306
}// end loop over 'r'
12307
for (unsigned int r = 0; r < 4; r++)
12309
for (unsigned int s = 0; s < 4 - r; s++)
12311
rr = (r + s)*(r + s + 1)/2 + s;
12312
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
12313
}// end loop over 's'
12314
}// end loop over 'r'
10218
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
10219
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
10220
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
10221
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
10222
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
10223
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
10224
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
10225
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
10226
basisvalues[0] *= std::sqrt(0.5);
10227
basisvalues[2] *= std::sqrt(1.0);
10228
basisvalues[5] *= std::sqrt(1.5);
10229
basisvalues[9] *= std::sqrt(2.0);
10230
basisvalues[1] *= std::sqrt(3.0);
10231
basisvalues[4] *= std::sqrt(4.5);
10232
basisvalues[8] *= std::sqrt(6.0);
10233
basisvalues[3] *= std::sqrt(7.5);
10234
basisvalues[7] *= std::sqrt(10.0);
10235
basisvalues[6] *= std::sqrt(14.0);
12316
10237
// Table(s) of coefficients.
12317
10238
static const double coefficients0[10] = \
12477
10398
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
12479
10400
// Declare helper variables.
12480
unsigned int rr = 0;
12481
unsigned int ss = 0;
12482
unsigned int tt = 0;
12486
10401
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
12487
10402
double tmp1 = (1.0 - Y)/2.0;
12488
10403
double tmp2 = tmp1*tmp1;
12490
10405
// Compute basisvalues.
12491
10406
basisvalues[0] = 1.0;
12492
10407
basisvalues[1] = tmp0;
12493
for (unsigned int r = 1; r < 3; r++)
12495
rr = (r + 1)*((r + 1) + 1)/2;
12497
tt = (r - 1)*((r - 1) + 1)/2;
12498
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
12499
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
12500
}// end loop over 'r'
12501
for (unsigned int r = 0; r < 3; r++)
12503
rr = (r + 1)*(r + 1 + 1)/2 + 1;
12505
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
12506
}// end loop over 'r'
12507
for (unsigned int r = 0; r < 2; r++)
12509
for (unsigned int s = 1; s < 3 - r; s++)
12511
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
12512
ss = (r + s)*(r + s + 1)/2 + s;
12513
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
12514
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));
12515
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));
12516
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));
12517
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
12518
}// end loop over 's'
12519
}// end loop over 'r'
12520
for (unsigned int r = 0; r < 4; r++)
12522
for (unsigned int s = 0; s < 4 - r; s++)
12524
rr = (r + s)*(r + s + 1)/2 + s;
12525
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
12526
}// end loop over 's'
12527
}// end loop over 'r'
10408
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
10409
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
10410
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
10411
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
10412
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
10413
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
10414
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
10415
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
10416
basisvalues[0] *= std::sqrt(0.5);
10417
basisvalues[2] *= std::sqrt(1.0);
10418
basisvalues[5] *= std::sqrt(1.5);
10419
basisvalues[9] *= std::sqrt(2.0);
10420
basisvalues[1] *= std::sqrt(3.0);
10421
basisvalues[4] *= std::sqrt(4.5);
10422
basisvalues[8] *= std::sqrt(6.0);
10423
basisvalues[3] *= std::sqrt(7.5);
10424
basisvalues[7] *= std::sqrt(10.0);
10425
basisvalues[6] *= std::sqrt(14.0);
12529
10427
// Table(s) of coefficients.
12530
10428
static const double coefficients0[10] = \
12690
10588
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
12692
10590
// Declare helper variables.
12693
unsigned int rr = 0;
12694
unsigned int ss = 0;
12695
unsigned int tt = 0;
12699
10591
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
12700
10592
double tmp1 = (1.0 - Y)/2.0;
12701
10593
double tmp2 = tmp1*tmp1;
12703
10595
// Compute basisvalues.
12704
10596
basisvalues[0] = 1.0;
12705
10597
basisvalues[1] = tmp0;
12706
for (unsigned int r = 1; r < 3; r++)
12708
rr = (r + 1)*((r + 1) + 1)/2;
12710
tt = (r - 1)*((r - 1) + 1)/2;
12711
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
12712
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
12713
}// end loop over 'r'
12714
for (unsigned int r = 0; r < 3; r++)
12716
rr = (r + 1)*(r + 1 + 1)/2 + 1;
12718
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
12719
}// end loop over 'r'
12720
for (unsigned int r = 0; r < 2; r++)
12722
for (unsigned int s = 1; s < 3 - r; s++)
12724
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
12725
ss = (r + s)*(r + s + 1)/2 + s;
12726
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
12727
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));
12728
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));
12729
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));
12730
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
12731
}// end loop over 's'
12732
}// end loop over 'r'
12733
for (unsigned int r = 0; r < 4; r++)
12735
for (unsigned int s = 0; s < 4 - r; s++)
12737
rr = (r + s)*(r + s + 1)/2 + s;
12738
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
12739
}// end loop over 's'
12740
}// end loop over 'r'
10598
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
10599
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
10600
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
10601
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
10602
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
10603
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
10604
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
10605
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
10606
basisvalues[0] *= std::sqrt(0.5);
10607
basisvalues[2] *= std::sqrt(1.0);
10608
basisvalues[5] *= std::sqrt(1.5);
10609
basisvalues[9] *= std::sqrt(2.0);
10610
basisvalues[1] *= std::sqrt(3.0);
10611
basisvalues[4] *= std::sqrt(4.5);
10612
basisvalues[8] *= std::sqrt(6.0);
10613
basisvalues[3] *= std::sqrt(7.5);
10614
basisvalues[7] *= std::sqrt(10.0);
10615
basisvalues[6] *= std::sqrt(14.0);
12742
10617
// Table(s) of coefficients.
12743
10618
static const double coefficients0[10] = \
12903
10778
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
12905
10780
// Declare helper variables.
12906
unsigned int rr = 0;
12907
unsigned int ss = 0;
12908
unsigned int tt = 0;
12912
10781
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
12913
10782
double tmp1 = (1.0 - Y)/2.0;
12914
10783
double tmp2 = tmp1*tmp1;
12916
10785
// Compute basisvalues.
12917
10786
basisvalues[0] = 1.0;
12918
10787
basisvalues[1] = tmp0;
12919
for (unsigned int r = 1; r < 3; r++)
12921
rr = (r + 1)*((r + 1) + 1)/2;
12923
tt = (r - 1)*((r - 1) + 1)/2;
12924
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
12925
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
12926
}// end loop over 'r'
12927
for (unsigned int r = 0; r < 3; r++)
12929
rr = (r + 1)*(r + 1 + 1)/2 + 1;
12931
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
12932
}// end loop over 'r'
12933
for (unsigned int r = 0; r < 2; r++)
12935
for (unsigned int s = 1; s < 3 - r; s++)
12937
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
12938
ss = (r + s)*(r + s + 1)/2 + s;
12939
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
12940
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));
12941
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));
12942
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));
12943
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
12944
}// end loop over 's'
12945
}// end loop over 'r'
12946
for (unsigned int r = 0; r < 4; r++)
12948
for (unsigned int s = 0; s < 4 - r; s++)
12950
rr = (r + s)*(r + s + 1)/2 + s;
12951
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
12952
}// end loop over 's'
12953
}// end loop over 'r'
10788
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
10789
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
10790
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
10791
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
10792
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
10793
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
10794
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
10795
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
10796
basisvalues[0] *= std::sqrt(0.5);
10797
basisvalues[2] *= std::sqrt(1.0);
10798
basisvalues[5] *= std::sqrt(1.5);
10799
basisvalues[9] *= std::sqrt(2.0);
10800
basisvalues[1] *= std::sqrt(3.0);
10801
basisvalues[4] *= std::sqrt(4.5);
10802
basisvalues[8] *= std::sqrt(6.0);
10803
basisvalues[3] *= std::sqrt(7.5);
10804
basisvalues[7] *= std::sqrt(10.0);
10805
basisvalues[6] *= std::sqrt(14.0);
12955
10807
// Table(s) of coefficients.
12956
10808
static const double coefficients0[10] = \
13116
10968
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
13118
10970
// Declare helper variables.
13119
unsigned int rr = 0;
13120
unsigned int ss = 0;
13121
unsigned int tt = 0;
13125
10971
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
13126
10972
double tmp1 = (1.0 - Y)/2.0;
13127
10973
double tmp2 = tmp1*tmp1;
13129
10975
// Compute basisvalues.
13130
10976
basisvalues[0] = 1.0;
13131
10977
basisvalues[1] = tmp0;
13132
for (unsigned int r = 1; r < 3; r++)
13134
rr = (r + 1)*((r + 1) + 1)/2;
13136
tt = (r - 1)*((r - 1) + 1)/2;
13137
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
13138
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
13139
}// end loop over 'r'
13140
for (unsigned int r = 0; r < 3; r++)
13142
rr = (r + 1)*(r + 1 + 1)/2 + 1;
13144
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
13145
}// end loop over 'r'
13146
for (unsigned int r = 0; r < 2; r++)
13148
for (unsigned int s = 1; s < 3 - r; s++)
13150
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
13151
ss = (r + s)*(r + s + 1)/2 + s;
13152
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
13153
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));
13154
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));
13155
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));
13156
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
13157
}// end loop over 's'
13158
}// end loop over 'r'
13159
for (unsigned int r = 0; r < 4; r++)
13161
for (unsigned int s = 0; s < 4 - r; s++)
13163
rr = (r + s)*(r + s + 1)/2 + s;
13164
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
13165
}// end loop over 's'
13166
}// end loop over 'r'
10978
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
10979
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
10980
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
10981
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
10982
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
10983
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
10984
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
10985
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
10986
basisvalues[0] *= std::sqrt(0.5);
10987
basisvalues[2] *= std::sqrt(1.0);
10988
basisvalues[5] *= std::sqrt(1.5);
10989
basisvalues[9] *= std::sqrt(2.0);
10990
basisvalues[1] *= std::sqrt(3.0);
10991
basisvalues[4] *= std::sqrt(4.5);
10992
basisvalues[8] *= std::sqrt(6.0);
10993
basisvalues[3] *= std::sqrt(7.5);
10994
basisvalues[7] *= std::sqrt(10.0);
10995
basisvalues[6] *= std::sqrt(14.0);
13168
10997
// Table(s) of coefficients.
13169
10998
static const double coefficients0[10] = \
13329
11158
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
13331
11160
// Declare helper variables.
13332
unsigned int rr = 0;
13333
unsigned int ss = 0;
13334
unsigned int tt = 0;
13338
11161
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
13339
11162
double tmp1 = (1.0 - Y)/2.0;
13340
11163
double tmp2 = tmp1*tmp1;
13342
11165
// Compute basisvalues.
13343
11166
basisvalues[0] = 1.0;
13344
11167
basisvalues[1] = tmp0;
13345
for (unsigned int r = 1; r < 3; r++)
13347
rr = (r + 1)*((r + 1) + 1)/2;
13349
tt = (r - 1)*((r - 1) + 1)/2;
13350
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
13351
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
13352
}// end loop over 'r'
13353
for (unsigned int r = 0; r < 3; r++)
13355
rr = (r + 1)*(r + 1 + 1)/2 + 1;
13357
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
13358
}// end loop over 'r'
13359
for (unsigned int r = 0; r < 2; r++)
13361
for (unsigned int s = 1; s < 3 - r; s++)
13363
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
13364
ss = (r + s)*(r + s + 1)/2 + s;
13365
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
13366
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));
13367
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));
13368
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));
13369
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
13370
}// end loop over 's'
13371
}// end loop over 'r'
13372
for (unsigned int r = 0; r < 4; r++)
13374
for (unsigned int s = 0; s < 4 - r; s++)
13376
rr = (r + s)*(r + s + 1)/2 + s;
13377
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
13378
}// end loop over 's'
13379
}// end loop over 'r'
11168
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
11169
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
11170
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
11171
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
11172
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
11173
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
11174
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
11175
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
11176
basisvalues[0] *= std::sqrt(0.5);
11177
basisvalues[2] *= std::sqrt(1.0);
11178
basisvalues[5] *= std::sqrt(1.5);
11179
basisvalues[9] *= std::sqrt(2.0);
11180
basisvalues[1] *= std::sqrt(3.0);
11181
basisvalues[4] *= std::sqrt(4.5);
11182
basisvalues[8] *= std::sqrt(6.0);
11183
basisvalues[3] *= std::sqrt(7.5);
11184
basisvalues[7] *= std::sqrt(10.0);
11185
basisvalues[6] *= std::sqrt(14.0);
13381
11187
// Table(s) of coefficients.
13382
11188
static const double coefficients0[10] = \
13542
11348
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
13544
11350
// Declare helper variables.
13545
unsigned int rr = 0;
13546
unsigned int ss = 0;
13547
unsigned int tt = 0;
13551
11351
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
13552
11352
double tmp1 = (1.0 - Y)/2.0;
13553
11353
double tmp2 = tmp1*tmp1;
13555
11355
// Compute basisvalues.
13556
11356
basisvalues[0] = 1.0;
13557
11357
basisvalues[1] = tmp0;
13558
for (unsigned int r = 1; r < 3; r++)
13560
rr = (r + 1)*((r + 1) + 1)/2;
13562
tt = (r - 1)*((r - 1) + 1)/2;
13563
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
13564
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
13565
}// end loop over 'r'
13566
for (unsigned int r = 0; r < 3; r++)
13568
rr = (r + 1)*(r + 1 + 1)/2 + 1;
13570
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
13571
}// end loop over 'r'
13572
for (unsigned int r = 0; r < 2; r++)
13574
for (unsigned int s = 1; s < 3 - r; s++)
13576
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
13577
ss = (r + s)*(r + s + 1)/2 + s;
13578
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
13579
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));
13580
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));
13581
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));
13582
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
13583
}// end loop over 's'
13584
}// end loop over 'r'
13585
for (unsigned int r = 0; r < 4; r++)
13587
for (unsigned int s = 0; s < 4 - r; s++)
13589
rr = (r + s)*(r + s + 1)/2 + s;
13590
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
13591
}// end loop over 's'
13592
}// end loop over 'r'
11358
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
11359
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
11360
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
11361
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
11362
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
11363
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
11364
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
11365
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
11366
basisvalues[0] *= std::sqrt(0.5);
11367
basisvalues[2] *= std::sqrt(1.0);
11368
basisvalues[5] *= std::sqrt(1.5);
11369
basisvalues[9] *= std::sqrt(2.0);
11370
basisvalues[1] *= std::sqrt(3.0);
11371
basisvalues[4] *= std::sqrt(4.5);
11372
basisvalues[8] *= std::sqrt(6.0);
11373
basisvalues[3] *= std::sqrt(7.5);
11374
basisvalues[7] *= std::sqrt(10.0);
11375
basisvalues[6] *= std::sqrt(14.0);
13594
11377
// Table(s) of coefficients.
13595
11378
static const double coefficients0[10] = \
13755
11538
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
13757
11540
// Declare helper variables.
13758
unsigned int rr = 0;
13759
unsigned int ss = 0;
13760
unsigned int tt = 0;
13764
11541
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
13765
11542
double tmp1 = (1.0 - Y)/2.0;
13766
11543
double tmp2 = tmp1*tmp1;
13768
11545
// Compute basisvalues.
13769
11546
basisvalues[0] = 1.0;
13770
11547
basisvalues[1] = tmp0;
13771
for (unsigned int r = 1; r < 3; r++)
13773
rr = (r + 1)*((r + 1) + 1)/2;
13775
tt = (r - 1)*((r - 1) + 1)/2;
13776
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
13777
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
13778
}// end loop over 'r'
13779
for (unsigned int r = 0; r < 3; r++)
13781
rr = (r + 1)*(r + 1 + 1)/2 + 1;
13783
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
13784
}// end loop over 'r'
13785
for (unsigned int r = 0; r < 2; r++)
13787
for (unsigned int s = 1; s < 3 - r; s++)
13789
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
13790
ss = (r + s)*(r + s + 1)/2 + s;
13791
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
13792
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));
13793
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));
13794
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));
13795
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
13796
}// end loop over 's'
13797
}// end loop over 'r'
13798
for (unsigned int r = 0; r < 4; r++)
13800
for (unsigned int s = 0; s < 4 - r; s++)
13802
rr = (r + s)*(r + s + 1)/2 + s;
13803
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
13804
}// end loop over 's'
13805
}// end loop over 'r'
11548
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
11549
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
11550
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
11551
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
11552
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
11553
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
11554
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
11555
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
11556
basisvalues[0] *= std::sqrt(0.5);
11557
basisvalues[2] *= std::sqrt(1.0);
11558
basisvalues[5] *= std::sqrt(1.5);
11559
basisvalues[9] *= std::sqrt(2.0);
11560
basisvalues[1] *= std::sqrt(3.0);
11561
basisvalues[4] *= std::sqrt(4.5);
11562
basisvalues[8] *= std::sqrt(6.0);
11563
basisvalues[3] *= std::sqrt(7.5);
11564
basisvalues[7] *= std::sqrt(10.0);
11565
basisvalues[6] *= std::sqrt(14.0);
13807
11567
// Table(s) of coefficients.
13808
11568
static const double coefficients0[10] = \
13968
11728
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
13970
11730
// Declare helper variables.
13971
unsigned int rr = 0;
13972
unsigned int ss = 0;
13973
unsigned int tt = 0;
13977
11731
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
13978
11732
double tmp1 = (1.0 - Y)/2.0;
13979
11733
double tmp2 = tmp1*tmp1;
13981
11735
// Compute basisvalues.
13982
11736
basisvalues[0] = 1.0;
13983
11737
basisvalues[1] = tmp0;
13984
for (unsigned int r = 1; r < 3; r++)
13986
rr = (r + 1)*((r + 1) + 1)/2;
13988
tt = (r - 1)*((r - 1) + 1)/2;
13989
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
13990
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
13991
}// end loop over 'r'
13992
for (unsigned int r = 0; r < 3; r++)
13994
rr = (r + 1)*(r + 1 + 1)/2 + 1;
13996
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
13997
}// end loop over 'r'
13998
for (unsigned int r = 0; r < 2; r++)
14000
for (unsigned int s = 1; s < 3 - r; s++)
14002
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
14003
ss = (r + s)*(r + s + 1)/2 + s;
14004
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
14005
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));
14006
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));
14007
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));
14008
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
14009
}// end loop over 's'
14010
}// end loop over 'r'
14011
for (unsigned int r = 0; r < 4; r++)
14013
for (unsigned int s = 0; s < 4 - r; s++)
14015
rr = (r + s)*(r + s + 1)/2 + s;
14016
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
14017
}// end loop over 's'
14018
}// end loop over 'r'
11738
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
11739
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
11740
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
11741
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
11742
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
11743
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
11744
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
11745
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
11746
basisvalues[0] *= std::sqrt(0.5);
11747
basisvalues[2] *= std::sqrt(1.0);
11748
basisvalues[5] *= std::sqrt(1.5);
11749
basisvalues[9] *= std::sqrt(2.0);
11750
basisvalues[1] *= std::sqrt(3.0);
11751
basisvalues[4] *= std::sqrt(4.5);
11752
basisvalues[8] *= std::sqrt(6.0);
11753
basisvalues[3] *= std::sqrt(7.5);
11754
basisvalues[7] *= std::sqrt(10.0);
11755
basisvalues[6] *= std::sqrt(14.0);
14020
11757
// Table(s) of coefficients.
14021
11758
static const double coefficients0[10] = \
14181
11918
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
14183
11920
// Declare helper variables.
14184
unsigned int rr = 0;
14185
unsigned int ss = 0;
14186
unsigned int tt = 0;
14190
11921
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
14191
11922
double tmp1 = (1.0 - Y)/2.0;
14192
11923
double tmp2 = tmp1*tmp1;
14194
11925
// Compute basisvalues.
14195
11926
basisvalues[0] = 1.0;
14196
11927
basisvalues[1] = tmp0;
14197
for (unsigned int r = 1; r < 3; r++)
14199
rr = (r + 1)*((r + 1) + 1)/2;
14201
tt = (r - 1)*((r - 1) + 1)/2;
14202
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
14203
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
14204
}// end loop over 'r'
14205
for (unsigned int r = 0; r < 3; r++)
14207
rr = (r + 1)*(r + 1 + 1)/2 + 1;
14209
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
14210
}// end loop over 'r'
14211
for (unsigned int r = 0; r < 2; r++)
14213
for (unsigned int s = 1; s < 3 - r; s++)
14215
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
14216
ss = (r + s)*(r + s + 1)/2 + s;
14217
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
14218
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));
14219
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));
14220
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));
14221
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
14222
}// end loop over 's'
14223
}// end loop over 'r'
14224
for (unsigned int r = 0; r < 4; r++)
14226
for (unsigned int s = 0; s < 4 - r; s++)
14228
rr = (r + s)*(r + s + 1)/2 + s;
14229
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
14230
}// end loop over 's'
14231
}// end loop over 'r'
11928
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
11929
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
11930
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
11931
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
11932
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
11933
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
11934
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
11935
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
11936
basisvalues[0] *= std::sqrt(0.5);
11937
basisvalues[2] *= std::sqrt(1.0);
11938
basisvalues[5] *= std::sqrt(1.5);
11939
basisvalues[9] *= std::sqrt(2.0);
11940
basisvalues[1] *= std::sqrt(3.0);
11941
basisvalues[4] *= std::sqrt(4.5);
11942
basisvalues[8] *= std::sqrt(6.0);
11943
basisvalues[3] *= std::sqrt(7.5);
11944
basisvalues[7] *= std::sqrt(10.0);
11945
basisvalues[6] *= std::sqrt(14.0);
14233
11947
// Table(s) of coefficients.
14234
11948
static const double coefficients0[10] = \
14394
12108
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
14396
12110
// Declare helper variables.
14397
unsigned int rr = 0;
14398
unsigned int ss = 0;
14399
unsigned int tt = 0;
14403
12111
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
14404
12112
double tmp1 = (1.0 - Y)/2.0;
14405
12113
double tmp2 = tmp1*tmp1;
14407
12115
// Compute basisvalues.
14408
12116
basisvalues[0] = 1.0;
14409
12117
basisvalues[1] = tmp0;
14410
for (unsigned int r = 1; r < 3; r++)
14412
rr = (r + 1)*((r + 1) + 1)/2;
14414
tt = (r - 1)*((r - 1) + 1)/2;
14415
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
14416
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
14417
}// end loop over 'r'
14418
for (unsigned int r = 0; r < 3; r++)
14420
rr = (r + 1)*(r + 1 + 1)/2 + 1;
14422
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
14423
}// end loop over 'r'
14424
for (unsigned int r = 0; r < 2; r++)
14426
for (unsigned int s = 1; s < 3 - r; s++)
14428
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
14429
ss = (r + s)*(r + s + 1)/2 + s;
14430
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
14431
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));
14432
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));
14433
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));
14434
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
14435
}// end loop over 's'
14436
}// end loop over 'r'
14437
for (unsigned int r = 0; r < 4; r++)
14439
for (unsigned int s = 0; s < 4 - r; s++)
14441
rr = (r + s)*(r + s + 1)/2 + s;
14442
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
14443
}// end loop over 's'
14444
}// end loop over 'r'
12118
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
12119
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
12120
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
12121
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
12122
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
12123
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
12124
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
12125
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
12126
basisvalues[0] *= std::sqrt(0.5);
12127
basisvalues[2] *= std::sqrt(1.0);
12128
basisvalues[5] *= std::sqrt(1.5);
12129
basisvalues[9] *= std::sqrt(2.0);
12130
basisvalues[1] *= std::sqrt(3.0);
12131
basisvalues[4] *= std::sqrt(4.5);
12132
basisvalues[8] *= std::sqrt(6.0);
12133
basisvalues[3] *= std::sqrt(7.5);
12134
basisvalues[7] *= std::sqrt(10.0);
12135
basisvalues[6] *= std::sqrt(14.0);
14446
12137
// Table(s) of coefficients.
14447
12138
static const double coefficients0[10] = \
14607
12298
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
14609
12300
// Declare helper variables.
14610
unsigned int rr = 0;
14611
unsigned int ss = 0;
14612
unsigned int tt = 0;
14616
12301
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
14617
12302
double tmp1 = (1.0 - Y)/2.0;
14618
12303
double tmp2 = tmp1*tmp1;
14620
12305
// Compute basisvalues.
14621
12306
basisvalues[0] = 1.0;
14622
12307
basisvalues[1] = tmp0;
14623
for (unsigned int r = 1; r < 3; r++)
14625
rr = (r + 1)*((r + 1) + 1)/2;
14627
tt = (r - 1)*((r - 1) + 1)/2;
14628
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
14629
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
14630
}// end loop over 'r'
14631
for (unsigned int r = 0; r < 3; r++)
14633
rr = (r + 1)*(r + 1 + 1)/2 + 1;
14635
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
14636
}// end loop over 'r'
14637
for (unsigned int r = 0; r < 2; r++)
14639
for (unsigned int s = 1; s < 3 - r; s++)
14641
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
14642
ss = (r + s)*(r + s + 1)/2 + s;
14643
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
14644
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));
14645
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));
14646
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));
14647
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
14648
}// end loop over 's'
14649
}// end loop over 'r'
14650
for (unsigned int r = 0; r < 4; r++)
14652
for (unsigned int s = 0; s < 4 - r; s++)
14654
rr = (r + s)*(r + s + 1)/2 + s;
14655
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
14656
}// end loop over 's'
14657
}// end loop over 'r'
12308
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
12309
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
12310
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
12311
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
12312
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
12313
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
12314
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
12315
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
12316
basisvalues[0] *= std::sqrt(0.5);
12317
basisvalues[2] *= std::sqrt(1.0);
12318
basisvalues[5] *= std::sqrt(1.5);
12319
basisvalues[9] *= std::sqrt(2.0);
12320
basisvalues[1] *= std::sqrt(3.0);
12321
basisvalues[4] *= std::sqrt(4.5);
12322
basisvalues[8] *= std::sqrt(6.0);
12323
basisvalues[3] *= std::sqrt(7.5);
12324
basisvalues[7] *= std::sqrt(10.0);
12325
basisvalues[6] *= std::sqrt(14.0);
14659
12327
// Table(s) of coefficients.
14660
12328
static const double coefficients0[10] = \
14820
12488
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
14822
12490
// Declare helper variables.
14823
unsigned int rr = 0;
14824
unsigned int ss = 0;
14825
unsigned int tt = 0;
14829
12491
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
14830
12492
double tmp1 = (1.0 - Y)/2.0;
14831
12493
double tmp2 = tmp1*tmp1;
14833
12495
// Compute basisvalues.
14834
12496
basisvalues[0] = 1.0;
14835
12497
basisvalues[1] = tmp0;
14836
for (unsigned int r = 1; r < 3; r++)
14838
rr = (r + 1)*((r + 1) + 1)/2;
14840
tt = (r - 1)*((r - 1) + 1)/2;
14841
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
14842
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
14843
}// end loop over 'r'
14844
for (unsigned int r = 0; r < 3; r++)
14846
rr = (r + 1)*(r + 1 + 1)/2 + 1;
14848
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
14849
}// end loop over 'r'
14850
for (unsigned int r = 0; r < 2; r++)
14852
for (unsigned int s = 1; s < 3 - r; s++)
14854
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
14855
ss = (r + s)*(r + s + 1)/2 + s;
14856
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
14857
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));
14858
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));
14859
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));
14860
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
14861
}// end loop over 's'
14862
}// end loop over 'r'
14863
for (unsigned int r = 0; r < 4; r++)
14865
for (unsigned int s = 0; s < 4 - r; s++)
14867
rr = (r + s)*(r + s + 1)/2 + s;
14868
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
14869
}// end loop over 's'
14870
}// end loop over 'r'
12498
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
12499
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
12500
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
12501
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
12502
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
12503
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
12504
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
12505
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
12506
basisvalues[0] *= std::sqrt(0.5);
12507
basisvalues[2] *= std::sqrt(1.0);
12508
basisvalues[5] *= std::sqrt(1.5);
12509
basisvalues[9] *= std::sqrt(2.0);
12510
basisvalues[1] *= std::sqrt(3.0);
12511
basisvalues[4] *= std::sqrt(4.5);
12512
basisvalues[8] *= std::sqrt(6.0);
12513
basisvalues[3] *= std::sqrt(7.5);
12514
basisvalues[7] *= std::sqrt(10.0);
12515
basisvalues[6] *= std::sqrt(14.0);
14872
12517
// Table(s) of coefficients.
14873
12518
static const double coefficients0[10] = \
15033
12678
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
15035
12680
// Declare helper variables.
15036
unsigned int rr = 0;
15037
unsigned int ss = 0;
15038
unsigned int tt = 0;
15042
12681
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
15043
12682
double tmp1 = (1.0 - Y)/2.0;
15044
12683
double tmp2 = tmp1*tmp1;
15046
12685
// Compute basisvalues.
15047
12686
basisvalues[0] = 1.0;
15048
12687
basisvalues[1] = tmp0;
15049
for (unsigned int r = 1; r < 3; r++)
15051
rr = (r + 1)*((r + 1) + 1)/2;
15053
tt = (r - 1)*((r - 1) + 1)/2;
15054
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
15055
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
15056
}// end loop over 'r'
15057
for (unsigned int r = 0; r < 3; r++)
15059
rr = (r + 1)*(r + 1 + 1)/2 + 1;
15061
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
15062
}// end loop over 'r'
15063
for (unsigned int r = 0; r < 2; r++)
15065
for (unsigned int s = 1; s < 3 - r; s++)
15067
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
15068
ss = (r + s)*(r + s + 1)/2 + s;
15069
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
15070
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));
15071
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));
15072
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));
15073
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
15074
}// end loop over 's'
15075
}// end loop over 'r'
15076
for (unsigned int r = 0; r < 4; r++)
15078
for (unsigned int s = 0; s < 4 - r; s++)
15080
rr = (r + s)*(r + s + 1)/2 + s;
15081
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
15082
}// end loop over 's'
15083
}// end loop over 'r'
12688
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
12689
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
12690
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
12691
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
12692
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
12693
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
12694
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
12695
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
12696
basisvalues[0] *= std::sqrt(0.5);
12697
basisvalues[2] *= std::sqrt(1.0);
12698
basisvalues[5] *= std::sqrt(1.5);
12699
basisvalues[9] *= std::sqrt(2.0);
12700
basisvalues[1] *= std::sqrt(3.0);
12701
basisvalues[4] *= std::sqrt(4.5);
12702
basisvalues[8] *= std::sqrt(6.0);
12703
basisvalues[3] *= std::sqrt(7.5);
12704
basisvalues[7] *= std::sqrt(10.0);
12705
basisvalues[6] *= std::sqrt(14.0);
15085
12707
// Table(s) of coefficients.
15086
12708
static const double coefficients0[10] = \
15246
12868
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
15248
12870
// Declare helper variables.
15249
unsigned int rr = 0;
15250
unsigned int ss = 0;
15251
unsigned int tt = 0;
15255
12871
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
15256
12872
double tmp1 = (1.0 - Y)/2.0;
15257
12873
double tmp2 = tmp1*tmp1;
15259
12875
// Compute basisvalues.
15260
12876
basisvalues[0] = 1.0;
15261
12877
basisvalues[1] = tmp0;
15262
for (unsigned int r = 1; r < 3; r++)
15264
rr = (r + 1)*((r + 1) + 1)/2;
15266
tt = (r - 1)*((r - 1) + 1)/2;
15267
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
15268
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
15269
}// end loop over 'r'
15270
for (unsigned int r = 0; r < 3; r++)
15272
rr = (r + 1)*(r + 1 + 1)/2 + 1;
15274
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
15275
}// end loop over 'r'
15276
for (unsigned int r = 0; r < 2; r++)
15278
for (unsigned int s = 1; s < 3 - r; s++)
15280
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
15281
ss = (r + s)*(r + s + 1)/2 + s;
15282
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
15283
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));
15284
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));
15285
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));
15286
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
15287
}// end loop over 's'
15288
}// end loop over 'r'
15289
for (unsigned int r = 0; r < 4; r++)
15291
for (unsigned int s = 0; s < 4 - r; s++)
15293
rr = (r + s)*(r + s + 1)/2 + s;
15294
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
15295
}// end loop over 's'
15296
}// end loop over 'r'
12878
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
12879
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
12880
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
12881
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
12882
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
12883
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
12884
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
12885
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
12886
basisvalues[0] *= std::sqrt(0.5);
12887
basisvalues[2] *= std::sqrt(1.0);
12888
basisvalues[5] *= std::sqrt(1.5);
12889
basisvalues[9] *= std::sqrt(2.0);
12890
basisvalues[1] *= std::sqrt(3.0);
12891
basisvalues[4] *= std::sqrt(4.5);
12892
basisvalues[8] *= std::sqrt(6.0);
12893
basisvalues[3] *= std::sqrt(7.5);
12894
basisvalues[7] *= std::sqrt(10.0);
12895
basisvalues[6] *= std::sqrt(14.0);
15298
12897
// Table(s) of coefficients.
15299
12898
static const double coefficients0[10] = \
15459
13058
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
15461
13060
// Declare helper variables.
15462
unsigned int rr = 0;
15463
unsigned int ss = 0;
15464
unsigned int tt = 0;
15468
13061
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
15469
13062
double tmp1 = (1.0 - Y)/2.0;
15470
13063
double tmp2 = tmp1*tmp1;
15472
13065
// Compute basisvalues.
15473
13066
basisvalues[0] = 1.0;
15474
13067
basisvalues[1] = tmp0;
15475
for (unsigned int r = 1; r < 3; r++)
15477
rr = (r + 1)*((r + 1) + 1)/2;
15479
tt = (r - 1)*((r - 1) + 1)/2;
15480
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
15481
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
15482
}// end loop over 'r'
15483
for (unsigned int r = 0; r < 3; r++)
15485
rr = (r + 1)*(r + 1 + 1)/2 + 1;
15487
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
15488
}// end loop over 'r'
15489
for (unsigned int r = 0; r < 2; r++)
15491
for (unsigned int s = 1; s < 3 - r; s++)
15493
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
15494
ss = (r + s)*(r + s + 1)/2 + s;
15495
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
15496
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));
15497
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));
15498
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));
15499
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
15500
}// end loop over 's'
15501
}// end loop over 'r'
15502
for (unsigned int r = 0; r < 4; r++)
15504
for (unsigned int s = 0; s < 4 - r; s++)
15506
rr = (r + s)*(r + s + 1)/2 + s;
15507
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
15508
}// end loop over 's'
15509
}// end loop over 'r'
13068
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
13069
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
13070
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
13071
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
13072
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
13073
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
13074
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
13075
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
13076
basisvalues[0] *= std::sqrt(0.5);
13077
basisvalues[2] *= std::sqrt(1.0);
13078
basisvalues[5] *= std::sqrt(1.5);
13079
basisvalues[9] *= std::sqrt(2.0);
13080
basisvalues[1] *= std::sqrt(3.0);
13081
basisvalues[4] *= std::sqrt(4.5);
13082
basisvalues[8] *= std::sqrt(6.0);
13083
basisvalues[3] *= std::sqrt(7.5);
13084
basisvalues[7] *= std::sqrt(10.0);
13085
basisvalues[6] *= std::sqrt(14.0);
15511
13087
// Table(s) of coefficients.
15512
13088
static const double coefficients0[10] = \
15672
13248
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
15674
13250
// Declare helper variables.
15675
unsigned int rr = 0;
15676
unsigned int ss = 0;
15677
unsigned int tt = 0;
15681
13251
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
15682
13252
double tmp1 = (1.0 - Y)/2.0;
15683
13253
double tmp2 = tmp1*tmp1;
15685
13255
// Compute basisvalues.
15686
13256
basisvalues[0] = 1.0;
15687
13257
basisvalues[1] = tmp0;
15688
for (unsigned int r = 1; r < 3; r++)
15690
rr = (r + 1)*((r + 1) + 1)/2;
15692
tt = (r - 1)*((r - 1) + 1)/2;
15693
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
15694
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
15695
}// end loop over 'r'
15696
for (unsigned int r = 0; r < 3; r++)
15698
rr = (r + 1)*(r + 1 + 1)/2 + 1;
15700
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
15701
}// end loop over 'r'
15702
for (unsigned int r = 0; r < 2; r++)
15704
for (unsigned int s = 1; s < 3 - r; s++)
15706
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
15707
ss = (r + s)*(r + s + 1)/2 + s;
15708
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
15709
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));
15710
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));
15711
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));
15712
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
15713
}// end loop over 's'
15714
}// end loop over 'r'
15715
for (unsigned int r = 0; r < 4; r++)
15717
for (unsigned int s = 0; s < 4 - r; s++)
15719
rr = (r + s)*(r + s + 1)/2 + s;
15720
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
15721
}// end loop over 's'
15722
}// end loop over 'r'
13258
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
13259
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
13260
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
13261
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
13262
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
13263
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
13264
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
13265
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
13266
basisvalues[0] *= std::sqrt(0.5);
13267
basisvalues[2] *= std::sqrt(1.0);
13268
basisvalues[5] *= std::sqrt(1.5);
13269
basisvalues[9] *= std::sqrt(2.0);
13270
basisvalues[1] *= std::sqrt(3.0);
13271
basisvalues[4] *= std::sqrt(4.5);
13272
basisvalues[8] *= std::sqrt(6.0);
13273
basisvalues[3] *= std::sqrt(7.5);
13274
basisvalues[7] *= std::sqrt(10.0);
13275
basisvalues[6] *= std::sqrt(14.0);
15724
13277
// Table(s) of coefficients.
15725
13278
static const double coefficients0[10] = \
15885
13438
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
15887
13440
// Declare helper variables.
15888
unsigned int rr = 0;
15889
unsigned int ss = 0;
15890
unsigned int tt = 0;
15894
13441
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
15895
13442
double tmp1 = (1.0 - Y)/2.0;
15896
13443
double tmp2 = tmp1*tmp1;
15898
13445
// Compute basisvalues.
15899
13446
basisvalues[0] = 1.0;
15900
13447
basisvalues[1] = tmp0;
15901
for (unsigned int r = 1; r < 3; r++)
15903
rr = (r + 1)*((r + 1) + 1)/2;
15905
tt = (r - 1)*((r - 1) + 1)/2;
15906
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
15907
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
15908
}// end loop over 'r'
15909
for (unsigned int r = 0; r < 3; r++)
15911
rr = (r + 1)*(r + 1 + 1)/2 + 1;
15913
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
15914
}// end loop over 'r'
15915
for (unsigned int r = 0; r < 2; r++)
15917
for (unsigned int s = 1; s < 3 - r; s++)
15919
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
15920
ss = (r + s)*(r + s + 1)/2 + s;
15921
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
15922
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));
15923
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));
15924
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));
15925
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
15926
}// end loop over 's'
15927
}// end loop over 'r'
15928
for (unsigned int r = 0; r < 4; r++)
15930
for (unsigned int s = 0; s < 4 - r; s++)
15932
rr = (r + s)*(r + s + 1)/2 + s;
15933
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
15934
}// end loop over 's'
15935
}// end loop over 'r'
13448
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
13449
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
13450
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
13451
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
13452
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
13453
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
13454
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
13455
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
13456
basisvalues[0] *= std::sqrt(0.5);
13457
basisvalues[2] *= std::sqrt(1.0);
13458
basisvalues[5] *= std::sqrt(1.5);
13459
basisvalues[9] *= std::sqrt(2.0);
13460
basisvalues[1] *= std::sqrt(3.0);
13461
basisvalues[4] *= std::sqrt(4.5);
13462
basisvalues[8] *= std::sqrt(6.0);
13463
basisvalues[3] *= std::sqrt(7.5);
13464
basisvalues[7] *= std::sqrt(10.0);
13465
basisvalues[6] *= std::sqrt(14.0);
15937
13467
// Table(s) of coefficients.
15938
13468
static const double coefficients0[10] = \
16098
13628
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
16100
13630
// Declare helper variables.
16101
unsigned int rr = 0;
16102
unsigned int ss = 0;
16103
unsigned int tt = 0;
16107
13631
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
16108
13632
double tmp1 = (1.0 - Y)/2.0;
16109
13633
double tmp2 = tmp1*tmp1;
16111
13635
// Compute basisvalues.
16112
13636
basisvalues[0] = 1.0;
16113
13637
basisvalues[1] = tmp0;
16114
for (unsigned int r = 1; r < 3; r++)
16116
rr = (r + 1)*((r + 1) + 1)/2;
16118
tt = (r - 1)*((r - 1) + 1)/2;
16119
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
16120
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
16121
}// end loop over 'r'
16122
for (unsigned int r = 0; r < 3; r++)
16124
rr = (r + 1)*(r + 1 + 1)/2 + 1;
16126
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
16127
}// end loop over 'r'
16128
for (unsigned int r = 0; r < 2; r++)
16130
for (unsigned int s = 1; s < 3 - r; s++)
16132
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
16133
ss = (r + s)*(r + s + 1)/2 + s;
16134
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
16135
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));
16136
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));
16137
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));
16138
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
16139
}// end loop over 's'
16140
}// end loop over 'r'
16141
for (unsigned int r = 0; r < 4; r++)
16143
for (unsigned int s = 0; s < 4 - r; s++)
16145
rr = (r + s)*(r + s + 1)/2 + s;
16146
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
16147
}// end loop over 's'
16148
}// end loop over 'r'
13638
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
13639
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
13640
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
13641
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
13642
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
13643
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
13644
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
13645
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
13646
basisvalues[0] *= std::sqrt(0.5);
13647
basisvalues[2] *= std::sqrt(1.0);
13648
basisvalues[5] *= std::sqrt(1.5);
13649
basisvalues[9] *= std::sqrt(2.0);
13650
basisvalues[1] *= std::sqrt(3.0);
13651
basisvalues[4] *= std::sqrt(4.5);
13652
basisvalues[8] *= std::sqrt(6.0);
13653
basisvalues[3] *= std::sqrt(7.5);
13654
basisvalues[7] *= std::sqrt(10.0);
13655
basisvalues[6] *= std::sqrt(14.0);
16150
13657
// Table(s) of coefficients.
16151
13658
static const double coefficients0[10] = \
16311
13818
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
16313
13820
// Declare helper variables.
16314
unsigned int rr = 0;
16315
unsigned int ss = 0;
16316
unsigned int tt = 0;
16320
13821
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
16321
13822
double tmp1 = (1.0 - Y)/2.0;
16322
13823
double tmp2 = tmp1*tmp1;
16324
13825
// Compute basisvalues.
16325
13826
basisvalues[0] = 1.0;
16326
13827
basisvalues[1] = tmp0;
16327
for (unsigned int r = 1; r < 3; r++)
16329
rr = (r + 1)*((r + 1) + 1)/2;
16331
tt = (r - 1)*((r - 1) + 1)/2;
16332
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
16333
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
16334
}// end loop over 'r'
16335
for (unsigned int r = 0; r < 3; r++)
16337
rr = (r + 1)*(r + 1 + 1)/2 + 1;
16339
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
16340
}// end loop over 'r'
16341
for (unsigned int r = 0; r < 2; r++)
16343
for (unsigned int s = 1; s < 3 - r; s++)
16345
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
16346
ss = (r + s)*(r + s + 1)/2 + s;
16347
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
16348
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));
16349
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));
16350
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));
16351
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
16352
}// end loop over 's'
16353
}// end loop over 'r'
16354
for (unsigned int r = 0; r < 4; r++)
16356
for (unsigned int s = 0; s < 4 - r; s++)
16358
rr = (r + s)*(r + s + 1)/2 + s;
16359
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
16360
}// end loop over 's'
16361
}// end loop over 'r'
13828
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
13829
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
13830
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
13831
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
13832
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
13833
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
13834
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
13835
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
13836
basisvalues[0] *= std::sqrt(0.5);
13837
basisvalues[2] *= std::sqrt(1.0);
13838
basisvalues[5] *= std::sqrt(1.5);
13839
basisvalues[9] *= std::sqrt(2.0);
13840
basisvalues[1] *= std::sqrt(3.0);
13841
basisvalues[4] *= std::sqrt(4.5);
13842
basisvalues[8] *= std::sqrt(6.0);
13843
basisvalues[3] *= std::sqrt(7.5);
13844
basisvalues[7] *= std::sqrt(10.0);
13845
basisvalues[6] *= std::sqrt(14.0);
16363
13847
// Table(s) of coefficients.
16364
13848
static const double coefficients0[10] = \
16524
14008
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
16526
14010
// Declare helper variables.
16527
unsigned int rr = 0;
16528
unsigned int ss = 0;
16529
unsigned int tt = 0;
16533
14011
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
16534
14012
double tmp1 = (1.0 - Y)/2.0;
16535
14013
double tmp2 = tmp1*tmp1;
16537
14015
// Compute basisvalues.
16538
14016
basisvalues[0] = 1.0;
16539
14017
basisvalues[1] = tmp0;
16540
for (unsigned int r = 1; r < 3; r++)
16542
rr = (r + 1)*((r + 1) + 1)/2;
16544
tt = (r - 1)*((r - 1) + 1)/2;
16545
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
16546
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
16547
}// end loop over 'r'
16548
for (unsigned int r = 0; r < 3; r++)
16550
rr = (r + 1)*(r + 1 + 1)/2 + 1;
16552
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
16553
}// end loop over 'r'
16554
for (unsigned int r = 0; r < 2; r++)
16556
for (unsigned int s = 1; s < 3 - r; s++)
16558
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
16559
ss = (r + s)*(r + s + 1)/2 + s;
16560
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
16561
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));
16562
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));
16563
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));
16564
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
16565
}// end loop over 's'
16566
}// end loop over 'r'
16567
for (unsigned int r = 0; r < 4; r++)
16569
for (unsigned int s = 0; s < 4 - r; s++)
16571
rr = (r + s)*(r + s + 1)/2 + s;
16572
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
16573
}// end loop over 's'
16574
}// end loop over 'r'
14018
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
14019
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
14020
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
14021
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
14022
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
14023
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
14024
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
14025
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
14026
basisvalues[0] *= std::sqrt(0.5);
14027
basisvalues[2] *= std::sqrt(1.0);
14028
basisvalues[5] *= std::sqrt(1.5);
14029
basisvalues[9] *= std::sqrt(2.0);
14030
basisvalues[1] *= std::sqrt(3.0);
14031
basisvalues[4] *= std::sqrt(4.5);
14032
basisvalues[8] *= std::sqrt(6.0);
14033
basisvalues[3] *= std::sqrt(7.5);
14034
basisvalues[7] *= std::sqrt(10.0);
14035
basisvalues[6] *= std::sqrt(14.0);
16576
14037
// Table(s) of coefficients.
16577
14038
static const double coefficients0[10] = \
16737
14198
double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
16739
14200
// Declare helper variables.
16740
unsigned int rr = 0;
16741
unsigned int ss = 0;
16742
unsigned int tt = 0;
16746
14201
double tmp0 = (1.0 + Y + 2.0*X)/2.0;
16747
14202
double tmp1 = (1.0 - Y)/2.0;
16748
14203
double tmp2 = tmp1*tmp1;
16750
14205
// Compute basisvalues.
16751
14206
basisvalues[0] = 1.0;
16752
14207
basisvalues[1] = tmp0;
16753
for (unsigned int r = 1; r < 3; r++)
16755
rr = (r + 1)*((r + 1) + 1)/2;
16757
tt = (r - 1)*((r - 1) + 1)/2;
16758
tmp5 = (1.0 + 2.0*r)/(1.0 + r);
16759
basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
16760
}// end loop over 'r'
16761
for (unsigned int r = 0; r < 3; r++)
16763
rr = (r + 1)*(r + 1 + 1)/2 + 1;
16765
basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
16766
}// end loop over 'r'
16767
for (unsigned int r = 0; r < 2; r++)
16769
for (unsigned int s = 1; s < 3 - r; s++)
16771
rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
16772
ss = (r + s)*(r + s + 1)/2 + s;
16773
tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
16774
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));
16775
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));
16776
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));
16777
basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
16778
}// end loop over 's'
16779
}// end loop over 'r'
16780
for (unsigned int r = 0; r < 4; r++)
16782
for (unsigned int s = 0; s < 4 - r; s++)
16784
rr = (r + s)*(r + s + 1)/2 + s;
16785
basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
16786
}// end loop over 's'
16787
}// end loop over 'r'
14208
basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
14209
basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
14210
basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
14211
basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
14212
basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
14213
basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
14214
basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
14215
basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
14216
basisvalues[0] *= std::sqrt(0.5);
14217
basisvalues[2] *= std::sqrt(1.0);
14218
basisvalues[5] *= std::sqrt(1.5);
14219
basisvalues[9] *= std::sqrt(2.0);
14220
basisvalues[1] *= std::sqrt(3.0);
14221
basisvalues[4] *= std::sqrt(4.5);
14222
basisvalues[8] *= std::sqrt(6.0);
14223
basisvalues[3] *= std::sqrt(7.5);
14224
basisvalues[7] *= std::sqrt(10.0);
14225
basisvalues[6] *= std::sqrt(14.0);
16789
14227
// Table(s) of coefficients.
16790
14228
static const double coefficients0[10] = \
18083
15521
/// Return the number of sub dofmaps (for a mixed element)
18084
15522
virtual unsigned int num_sub_dofmaps() const
18089
15527
/// Create a new dofmap for sub dofmap i (for a mixed element)
18090
15528
virtual ufc::dofmap* create_sub_dofmap(unsigned int i) const
15534
return new x_element1_dofmap_0();
15539
return new x_element1_dofmap_0();