~ubuntu-branches/ubuntu/raring/ffc/raring

« back to all changes in this revision

Viewing changes to test/regression/references/r_quadrature/Mini.h

  • Committer: Package Import Robot
  • Author(s): Johannes Ring
  • Date: 2011-10-26 17:52:20 UTC
  • mfrom: (1.1.10)
  • Revision ID: package-import@ubuntu.com-20111026175220-ope1dzqv4jn2b8pq
Tags: 1.0-beta2-1
* New upstream release. This release includes some performance
  improvements for evaluating basis functions. It also adds support
  for Bessel functions and error functions.
* debian/control: Bump version numbers for python-ufc, python-fiat,
  python-instant, and python-ufl.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// This code conforms with the UFC specification version 2.0.0
2
 
// and was automatically generated by FFC version 0.9.10.
 
1
// This code conforms with the UFC specification version 2.0.2
 
2
// and was automatically generated by FFC version 1.0-beta+.
3
3
// 
4
4
// This code was generated with the following parameters:
5
5
// 
140
140
      double basisvalues[3] = {0.0, 0.0, 0.0};
141
141
      
142
142
      // Declare helper variables.
143
 
      unsigned int rr = 0;
144
 
      unsigned int ss = 0;
145
143
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
146
144
      
147
145
      // Compute basisvalues.
148
146
      basisvalues[0] = 1.0;
149
147
      basisvalues[1] = tmp0;
150
 
      for (unsigned int r = 0; r < 1; r++)
151
 
      {
152
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
153
 
        ss = r*(r + 1)/2;
154
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
155
 
      }// end loop over 'r'
156
 
      for (unsigned int r = 0; r < 2; r++)
157
 
      {
158
 
        for (unsigned int s = 0; s < 2 - r; s++)
159
 
        {
160
 
          rr = (r + s)*(r + s + 1)/2 + s;
161
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
162
 
        }// end loop over 's'
163
 
      }// end loop over 'r'
 
148
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
149
      basisvalues[0] *= std::sqrt(0.5);
 
150
      basisvalues[2] *= std::sqrt(1.0);
 
151
      basisvalues[1] *= std::sqrt(3.0);
164
152
      
165
153
      // Table(s) of coefficients.
166
154
      static const double coefficients0[3] = \
180
168
      double basisvalues[3] = {0.0, 0.0, 0.0};
181
169
      
182
170
      // Declare helper variables.
183
 
      unsigned int rr = 0;
184
 
      unsigned int ss = 0;
185
171
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
186
172
      
187
173
      // Compute basisvalues.
188
174
      basisvalues[0] = 1.0;
189
175
      basisvalues[1] = tmp0;
190
 
      for (unsigned int r = 0; r < 1; r++)
191
 
      {
192
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
193
 
        ss = r*(r + 1)/2;
194
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
195
 
      }// end loop over 'r'
196
 
      for (unsigned int r = 0; r < 2; r++)
197
 
      {
198
 
        for (unsigned int s = 0; s < 2 - r; s++)
199
 
        {
200
 
          rr = (r + s)*(r + s + 1)/2 + s;
201
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
202
 
        }// end loop over 's'
203
 
      }// end loop over 'r'
 
176
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
177
      basisvalues[0] *= std::sqrt(0.5);
 
178
      basisvalues[2] *= std::sqrt(1.0);
 
179
      basisvalues[1] *= std::sqrt(3.0);
204
180
      
205
181
      // Table(s) of coefficients.
206
182
      static const double coefficients0[3] = \
220
196
      double basisvalues[3] = {0.0, 0.0, 0.0};
221
197
      
222
198
      // Declare helper variables.
223
 
      unsigned int rr = 0;
224
 
      unsigned int ss = 0;
225
199
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
226
200
      
227
201
      // Compute basisvalues.
228
202
      basisvalues[0] = 1.0;
229
203
      basisvalues[1] = tmp0;
230
 
      for (unsigned int r = 0; r < 1; r++)
231
 
      {
232
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
233
 
        ss = r*(r + 1)/2;
234
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
235
 
      }// end loop over 'r'
236
 
      for (unsigned int r = 0; r < 2; r++)
237
 
      {
238
 
        for (unsigned int s = 0; s < 2 - r; s++)
239
 
        {
240
 
          rr = (r + s)*(r + s + 1)/2 + s;
241
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
242
 
        }// end loop over 's'
243
 
      }// end loop over 'r'
 
204
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
205
      basisvalues[0] *= std::sqrt(0.5);
 
206
      basisvalues[2] *= std::sqrt(1.0);
 
207
      basisvalues[1] *= std::sqrt(3.0);
244
208
      
245
209
      // Table(s) of coefficients.
246
210
      static const double coefficients0[3] = \
260
224
      double basisvalues[3] = {0.0, 0.0, 0.0};
261
225
      
262
226
      // Declare helper variables.
263
 
      unsigned int rr = 0;
264
 
      unsigned int ss = 0;
265
227
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
266
228
      
267
229
      // Compute basisvalues.
268
230
      basisvalues[0] = 1.0;
269
231
      basisvalues[1] = tmp0;
270
 
      for (unsigned int r = 0; r < 1; r++)
271
 
      {
272
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
273
 
        ss = r*(r + 1)/2;
274
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
275
 
      }// end loop over 'r'
276
 
      for (unsigned int r = 0; r < 2; r++)
277
 
      {
278
 
        for (unsigned int s = 0; s < 2 - r; s++)
279
 
        {
280
 
          rr = (r + s)*(r + s + 1)/2 + s;
281
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
282
 
        }// end loop over 's'
283
 
      }// end loop over 'r'
 
232
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
233
      basisvalues[0] *= std::sqrt(0.5);
 
234
      basisvalues[2] *= std::sqrt(1.0);
 
235
      basisvalues[1] *= std::sqrt(3.0);
284
236
      
285
237
      // Table(s) of coefficients.
286
238
      static const double coefficients0[3] = \
300
252
      double basisvalues[3] = {0.0, 0.0, 0.0};
301
253
      
302
254
      // Declare helper variables.
303
 
      unsigned int rr = 0;
304
 
      unsigned int ss = 0;
305
255
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
306
256
      
307
257
      // Compute basisvalues.
308
258
      basisvalues[0] = 1.0;
309
259
      basisvalues[1] = tmp0;
310
 
      for (unsigned int r = 0; r < 1; r++)
311
 
      {
312
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
313
 
        ss = r*(r + 1)/2;
314
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
315
 
      }// end loop over 'r'
316
 
      for (unsigned int r = 0; r < 2; r++)
317
 
      {
318
 
        for (unsigned int s = 0; s < 2 - r; s++)
319
 
        {
320
 
          rr = (r + s)*(r + s + 1)/2 + s;
321
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
322
 
        }// end loop over 's'
323
 
      }// end loop over 'r'
 
260
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
261
      basisvalues[0] *= std::sqrt(0.5);
 
262
      basisvalues[2] *= std::sqrt(1.0);
 
263
      basisvalues[1] *= std::sqrt(3.0);
324
264
      
325
265
      // Table(s) of coefficients.
326
266
      static const double coefficients0[3] = \
340
280
      double basisvalues[3] = {0.0, 0.0, 0.0};
341
281
      
342
282
      // Declare helper variables.
343
 
      unsigned int rr = 0;
344
 
      unsigned int ss = 0;
345
283
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
346
284
      
347
285
      // Compute basisvalues.
348
286
      basisvalues[0] = 1.0;
349
287
      basisvalues[1] = tmp0;
350
 
      for (unsigned int r = 0; r < 1; r++)
351
 
      {
352
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
353
 
        ss = r*(r + 1)/2;
354
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
355
 
      }// end loop over 'r'
356
 
      for (unsigned int r = 0; r < 2; r++)
357
 
      {
358
 
        for (unsigned int s = 0; s < 2 - r; s++)
359
 
        {
360
 
          rr = (r + s)*(r + s + 1)/2 + s;
361
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
362
 
        }// end loop over 's'
363
 
      }// end loop over 'r'
 
288
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
289
      basisvalues[0] *= std::sqrt(0.5);
 
290
      basisvalues[2] *= std::sqrt(1.0);
 
291
      basisvalues[1] *= std::sqrt(3.0);
364
292
      
365
293
      // Table(s) of coefficients.
366
294
      static const double coefficients0[3] = \
380
308
      double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
381
309
      
382
310
      // Declare helper variables.
383
 
      unsigned int rr = 0;
384
 
      unsigned int ss = 0;
385
 
      unsigned int tt = 0;
386
 
      double tmp5 = 0.0;
387
 
      double tmp6 = 0.0;
388
 
      double tmp7 = 0.0;
389
311
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
390
312
      double tmp1 = (1.0 - Y)/2.0;
391
313
      double tmp2 = tmp1*tmp1;
393
315
      // Compute basisvalues.
394
316
      basisvalues[0] = 1.0;
395
317
      basisvalues[1] = tmp0;
396
 
      for (unsigned int r = 1; r < 3; r++)
397
 
      {
398
 
        rr = (r + 1)*((r + 1) + 1)/2;
399
 
        ss = r*(r + 1)/2;
400
 
        tt = (r - 1)*((r - 1) + 1)/2;
401
 
        tmp5 = (1.0 + 2.0*r)/(1.0 + r);
402
 
        basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
403
 
      }// end loop over 'r'
404
 
      for (unsigned int r = 0; r < 3; r++)
405
 
      {
406
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
407
 
        ss = r*(r + 1)/2;
408
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
409
 
      }// end loop over 'r'
410
 
      for (unsigned int r = 0; r < 2; r++)
411
 
      {
412
 
        for (unsigned int s = 1; s < 3 - r; s++)
413
 
        {
414
 
          rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
415
 
          ss = (r + s)*(r + s + 1)/2 + s;
416
 
          tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
417
 
          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));
418
 
          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));
419
 
          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));
420
 
          basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
421
 
        }// end loop over 's'
422
 
      }// end loop over 'r'
423
 
      for (unsigned int r = 0; r < 4; r++)
424
 
      {
425
 
        for (unsigned int s = 0; s < 4 - r; s++)
426
 
        {
427
 
          rr = (r + s)*(r + s + 1)/2 + s;
428
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
429
 
        }// end loop over 's'
430
 
      }// end loop over 'r'
 
318
      basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
 
319
      basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
 
320
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
321
      basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
 
322
      basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
 
323
      basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
 
324
      basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
 
325
      basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
 
326
      basisvalues[0] *= std::sqrt(0.5);
 
327
      basisvalues[2] *= std::sqrt(1.0);
 
328
      basisvalues[5] *= std::sqrt(1.5);
 
329
      basisvalues[9] *= std::sqrt(2.0);
 
330
      basisvalues[1] *= std::sqrt(3.0);
 
331
      basisvalues[4] *= std::sqrt(4.5);
 
332
      basisvalues[8] *= std::sqrt(6.0);
 
333
      basisvalues[3] *= std::sqrt(7.5);
 
334
      basisvalues[7] *= std::sqrt(10.0);
 
335
      basisvalues[6] *= std::sqrt(14.0);
431
336
      
432
337
      // Table(s) of coefficients.
433
338
      static const double coefficients0[10] = \
447
352
      double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
448
353
      
449
354
      // Declare helper variables.
450
 
      unsigned int rr = 0;
451
 
      unsigned int ss = 0;
452
 
      unsigned int tt = 0;
453
 
      double tmp5 = 0.0;
454
 
      double tmp6 = 0.0;
455
 
      double tmp7 = 0.0;
456
355
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
457
356
      double tmp1 = (1.0 - Y)/2.0;
458
357
      double tmp2 = tmp1*tmp1;
460
359
      // Compute basisvalues.
461
360
      basisvalues[0] = 1.0;
462
361
      basisvalues[1] = tmp0;
463
 
      for (unsigned int r = 1; r < 3; r++)
464
 
      {
465
 
        rr = (r + 1)*((r + 1) + 1)/2;
466
 
        ss = r*(r + 1)/2;
467
 
        tt = (r - 1)*((r - 1) + 1)/2;
468
 
        tmp5 = (1.0 + 2.0*r)/(1.0 + r);
469
 
        basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
470
 
      }// end loop over 'r'
471
 
      for (unsigned int r = 0; r < 3; r++)
472
 
      {
473
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
474
 
        ss = r*(r + 1)/2;
475
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
476
 
      }// end loop over 'r'
477
 
      for (unsigned int r = 0; r < 2; r++)
478
 
      {
479
 
        for (unsigned int s = 1; s < 3 - r; s++)
480
 
        {
481
 
          rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
482
 
          ss = (r + s)*(r + s + 1)/2 + s;
483
 
          tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
484
 
          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));
485
 
          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));
486
 
          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));
487
 
          basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
488
 
        }// end loop over 's'
489
 
      }// end loop over 'r'
490
 
      for (unsigned int r = 0; r < 4; r++)
491
 
      {
492
 
        for (unsigned int s = 0; s < 4 - r; s++)
493
 
        {
494
 
          rr = (r + s)*(r + s + 1)/2 + s;
495
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
496
 
        }// end loop over 's'
497
 
      }// end loop over 'r'
 
362
      basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
 
363
      basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
 
364
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
365
      basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
 
366
      basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
 
367
      basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
 
368
      basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
 
369
      basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
 
370
      basisvalues[0] *= std::sqrt(0.5);
 
371
      basisvalues[2] *= std::sqrt(1.0);
 
372
      basisvalues[5] *= std::sqrt(1.5);
 
373
      basisvalues[9] *= std::sqrt(2.0);
 
374
      basisvalues[1] *= std::sqrt(3.0);
 
375
      basisvalues[4] *= std::sqrt(4.5);
 
376
      basisvalues[8] *= std::sqrt(6.0);
 
377
      basisvalues[3] *= std::sqrt(7.5);
 
378
      basisvalues[7] *= std::sqrt(10.0);
 
379
      basisvalues[6] *= std::sqrt(14.0);
498
380
      
499
381
      // Table(s) of coefficients.
500
382
      static const double coefficients0[10] = \
636
518
      double basisvalues[3] = {0.0, 0.0, 0.0};
637
519
      
638
520
      // Declare helper variables.
639
 
      unsigned int rr = 0;
640
 
      unsigned int ss = 0;
641
521
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
642
522
      
643
523
      // Compute basisvalues.
644
524
      basisvalues[0] = 1.0;
645
525
      basisvalues[1] = tmp0;
646
 
      for (unsigned int r = 0; r < 1; r++)
647
 
      {
648
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
649
 
        ss = r*(r + 1)/2;
650
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
651
 
      }// end loop over 'r'
652
 
      for (unsigned int r = 0; r < 2; r++)
653
 
      {
654
 
        for (unsigned int s = 0; s < 2 - r; s++)
655
 
        {
656
 
          rr = (r + s)*(r + s + 1)/2 + s;
657
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
658
 
        }// end loop over 's'
659
 
      }// end loop over 'r'
 
526
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
527
      basisvalues[0] *= std::sqrt(0.5);
 
528
      basisvalues[2] *= std::sqrt(1.0);
 
529
      basisvalues[1] *= std::sqrt(3.0);
660
530
      
661
531
      // Table(s) of coefficients.
662
532
      static const double coefficients0[3] = \
794
664
      double basisvalues[3] = {0.0, 0.0, 0.0};
795
665
      
796
666
      // Declare helper variables.
797
 
      unsigned int rr = 0;
798
 
      unsigned int ss = 0;
799
667
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
800
668
      
801
669
      // Compute basisvalues.
802
670
      basisvalues[0] = 1.0;
803
671
      basisvalues[1] = tmp0;
804
 
      for (unsigned int r = 0; r < 1; r++)
805
 
      {
806
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
807
 
        ss = r*(r + 1)/2;
808
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
809
 
      }// end loop over 'r'
810
 
      for (unsigned int r = 0; r < 2; r++)
811
 
      {
812
 
        for (unsigned int s = 0; s < 2 - r; s++)
813
 
        {
814
 
          rr = (r + s)*(r + s + 1)/2 + s;
815
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
816
 
        }// end loop over 's'
817
 
      }// end loop over 'r'
 
672
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
673
      basisvalues[0] *= std::sqrt(0.5);
 
674
      basisvalues[2] *= std::sqrt(1.0);
 
675
      basisvalues[1] *= std::sqrt(3.0);
818
676
      
819
677
      // Table(s) of coefficients.
820
678
      static const double coefficients0[3] = \
952
810
      double basisvalues[3] = {0.0, 0.0, 0.0};
953
811
      
954
812
      // Declare helper variables.
955
 
      unsigned int rr = 0;
956
 
      unsigned int ss = 0;
957
813
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
958
814
      
959
815
      // Compute basisvalues.
960
816
      basisvalues[0] = 1.0;
961
817
      basisvalues[1] = tmp0;
962
 
      for (unsigned int r = 0; r < 1; r++)
963
 
      {
964
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
965
 
        ss = r*(r + 1)/2;
966
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
967
 
      }// end loop over 'r'
968
 
      for (unsigned int r = 0; r < 2; r++)
969
 
      {
970
 
        for (unsigned int s = 0; s < 2 - r; s++)
971
 
        {
972
 
          rr = (r + s)*(r + s + 1)/2 + s;
973
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
974
 
        }// end loop over 's'
975
 
      }// end loop over 'r'
 
818
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
819
      basisvalues[0] *= std::sqrt(0.5);
 
820
      basisvalues[2] *= std::sqrt(1.0);
 
821
      basisvalues[1] *= std::sqrt(3.0);
976
822
      
977
823
      // Table(s) of coefficients.
978
824
      static const double coefficients0[3] = \
1110
956
      double basisvalues[3] = {0.0, 0.0, 0.0};
1111
957
      
1112
958
      // Declare helper variables.
1113
 
      unsigned int rr = 0;
1114
 
      unsigned int ss = 0;
1115
959
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
1116
960
      
1117
961
      // Compute basisvalues.
1118
962
      basisvalues[0] = 1.0;
1119
963
      basisvalues[1] = tmp0;
1120
 
      for (unsigned int r = 0; r < 1; r++)
1121
 
      {
1122
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
1123
 
        ss = r*(r + 1)/2;
1124
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
1125
 
      }// end loop over 'r'
1126
 
      for (unsigned int r = 0; r < 2; r++)
1127
 
      {
1128
 
        for (unsigned int s = 0; s < 2 - r; s++)
1129
 
        {
1130
 
          rr = (r + s)*(r + s + 1)/2 + s;
1131
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
1132
 
        }// end loop over 's'
1133
 
      }// end loop over 'r'
 
964
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
965
      basisvalues[0] *= std::sqrt(0.5);
 
966
      basisvalues[2] *= std::sqrt(1.0);
 
967
      basisvalues[1] *= std::sqrt(3.0);
1134
968
      
1135
969
      // Table(s) of coefficients.
1136
970
      static const double coefficients0[3] = \
1268
1102
      double basisvalues[3] = {0.0, 0.0, 0.0};
1269
1103
      
1270
1104
      // Declare helper variables.
1271
 
      unsigned int rr = 0;
1272
 
      unsigned int ss = 0;
1273
1105
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
1274
1106
      
1275
1107
      // Compute basisvalues.
1276
1108
      basisvalues[0] = 1.0;
1277
1109
      basisvalues[1] = tmp0;
1278
 
      for (unsigned int r = 0; r < 1; r++)
1279
 
      {
1280
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
1281
 
        ss = r*(r + 1)/2;
1282
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
1283
 
      }// end loop over 'r'
1284
 
      for (unsigned int r = 0; r < 2; r++)
1285
 
      {
1286
 
        for (unsigned int s = 0; s < 2 - r; s++)
1287
 
        {
1288
 
          rr = (r + s)*(r + s + 1)/2 + s;
1289
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
1290
 
        }// end loop over 's'
1291
 
      }// end loop over 'r'
 
1110
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
1111
      basisvalues[0] *= std::sqrt(0.5);
 
1112
      basisvalues[2] *= std::sqrt(1.0);
 
1113
      basisvalues[1] *= std::sqrt(3.0);
1292
1114
      
1293
1115
      // Table(s) of coefficients.
1294
1116
      static const double coefficients0[3] = \
1426
1248
      double basisvalues[3] = {0.0, 0.0, 0.0};
1427
1249
      
1428
1250
      // Declare helper variables.
1429
 
      unsigned int rr = 0;
1430
 
      unsigned int ss = 0;
1431
1251
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
1432
1252
      
1433
1253
      // Compute basisvalues.
1434
1254
      basisvalues[0] = 1.0;
1435
1255
      basisvalues[1] = tmp0;
1436
 
      for (unsigned int r = 0; r < 1; r++)
1437
 
      {
1438
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
1439
 
        ss = r*(r + 1)/2;
1440
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
1441
 
      }// end loop over 'r'
1442
 
      for (unsigned int r = 0; r < 2; r++)
1443
 
      {
1444
 
        for (unsigned int s = 0; s < 2 - r; s++)
1445
 
        {
1446
 
          rr = (r + s)*(r + s + 1)/2 + s;
1447
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
1448
 
        }// end loop over 's'
1449
 
      }// end loop over 'r'
 
1256
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
1257
      basisvalues[0] *= std::sqrt(0.5);
 
1258
      basisvalues[2] *= std::sqrt(1.0);
 
1259
      basisvalues[1] *= std::sqrt(3.0);
1450
1260
      
1451
1261
      // Table(s) of coefficients.
1452
1262
      static const double coefficients0[3] = \
1584
1394
      double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
1585
1395
      
1586
1396
      // Declare helper variables.
1587
 
      unsigned int rr = 0;
1588
 
      unsigned int ss = 0;
1589
 
      unsigned int tt = 0;
1590
 
      double tmp5 = 0.0;
1591
 
      double tmp6 = 0.0;
1592
 
      double tmp7 = 0.0;
1593
1397
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
1594
1398
      double tmp1 = (1.0 - Y)/2.0;
1595
1399
      double tmp2 = tmp1*tmp1;
1597
1401
      // Compute basisvalues.
1598
1402
      basisvalues[0] = 1.0;
1599
1403
      basisvalues[1] = tmp0;
1600
 
      for (unsigned int r = 1; r < 3; r++)
1601
 
      {
1602
 
        rr = (r + 1)*((r + 1) + 1)/2;
1603
 
        ss = r*(r + 1)/2;
1604
 
        tt = (r - 1)*((r - 1) + 1)/2;
1605
 
        tmp5 = (1.0 + 2.0*r)/(1.0 + r);
1606
 
        basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
1607
 
      }// end loop over 'r'
1608
 
      for (unsigned int r = 0; r < 3; r++)
1609
 
      {
1610
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
1611
 
        ss = r*(r + 1)/2;
1612
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
1613
 
      }// end loop over 'r'
1614
 
      for (unsigned int r = 0; r < 2; r++)
1615
 
      {
1616
 
        for (unsigned int s = 1; s < 3 - r; s++)
1617
 
        {
1618
 
          rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
1619
 
          ss = (r + s)*(r + s + 1)/2 + s;
1620
 
          tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
1621
 
          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));
1622
 
          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));
1623
 
          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));
1624
 
          basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
1625
 
        }// end loop over 's'
1626
 
      }// end loop over 'r'
1627
 
      for (unsigned int r = 0; r < 4; r++)
1628
 
      {
1629
 
        for (unsigned int s = 0; s < 4 - r; s++)
1630
 
        {
1631
 
          rr = (r + s)*(r + s + 1)/2 + s;
1632
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
1633
 
        }// end loop over 's'
1634
 
      }// end loop over 'r'
 
1404
      basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
 
1405
      basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
 
1406
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
1407
      basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
 
1408
      basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
 
1409
      basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
 
1410
      basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
 
1411
      basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
 
1412
      basisvalues[0] *= std::sqrt(0.5);
 
1413
      basisvalues[2] *= std::sqrt(1.0);
 
1414
      basisvalues[5] *= std::sqrt(1.5);
 
1415
      basisvalues[9] *= std::sqrt(2.0);
 
1416
      basisvalues[1] *= std::sqrt(3.0);
 
1417
      basisvalues[4] *= std::sqrt(4.5);
 
1418
      basisvalues[8] *= std::sqrt(6.0);
 
1419
      basisvalues[3] *= std::sqrt(7.5);
 
1420
      basisvalues[7] *= std::sqrt(10.0);
 
1421
      basisvalues[6] *= std::sqrt(14.0);
1635
1422
      
1636
1423
      // Table(s) of coefficients.
1637
1424
      static const double coefficients0[10] = \
1797
1584
      double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
1798
1585
      
1799
1586
      // Declare helper variables.
1800
 
      unsigned int rr = 0;
1801
 
      unsigned int ss = 0;
1802
 
      unsigned int tt = 0;
1803
 
      double tmp5 = 0.0;
1804
 
      double tmp6 = 0.0;
1805
 
      double tmp7 = 0.0;
1806
1587
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
1807
1588
      double tmp1 = (1.0 - Y)/2.0;
1808
1589
      double tmp2 = tmp1*tmp1;
1810
1591
      // Compute basisvalues.
1811
1592
      basisvalues[0] = 1.0;
1812
1593
      basisvalues[1] = tmp0;
1813
 
      for (unsigned int r = 1; r < 3; r++)
1814
 
      {
1815
 
        rr = (r + 1)*((r + 1) + 1)/2;
1816
 
        ss = r*(r + 1)/2;
1817
 
        tt = (r - 1)*((r - 1) + 1)/2;
1818
 
        tmp5 = (1.0 + 2.0*r)/(1.0 + r);
1819
 
        basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
1820
 
      }// end loop over 'r'
1821
 
      for (unsigned int r = 0; r < 3; r++)
1822
 
      {
1823
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
1824
 
        ss = r*(r + 1)/2;
1825
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
1826
 
      }// end loop over 'r'
1827
 
      for (unsigned int r = 0; r < 2; r++)
1828
 
      {
1829
 
        for (unsigned int s = 1; s < 3 - r; s++)
1830
 
        {
1831
 
          rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
1832
 
          ss = (r + s)*(r + s + 1)/2 + s;
1833
 
          tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
1834
 
          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));
1835
 
          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));
1836
 
          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));
1837
 
          basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
1838
 
        }// end loop over 's'
1839
 
      }// end loop over 'r'
1840
 
      for (unsigned int r = 0; r < 4; r++)
1841
 
      {
1842
 
        for (unsigned int s = 0; s < 4 - r; s++)
1843
 
        {
1844
 
          rr = (r + s)*(r + s + 1)/2 + s;
1845
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
1846
 
        }// end loop over 's'
1847
 
      }// end loop over 'r'
 
1594
      basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
 
1595
      basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
 
1596
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
1597
      basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
 
1598
      basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
 
1599
      basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
 
1600
      basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
 
1601
      basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
 
1602
      basisvalues[0] *= std::sqrt(0.5);
 
1603
      basisvalues[2] *= std::sqrt(1.0);
 
1604
      basisvalues[5] *= std::sqrt(1.5);
 
1605
      basisvalues[9] *= std::sqrt(2.0);
 
1606
      basisvalues[1] *= std::sqrt(3.0);
 
1607
      basisvalues[4] *= std::sqrt(4.5);
 
1608
      basisvalues[8] *= std::sqrt(6.0);
 
1609
      basisvalues[3] *= std::sqrt(7.5);
 
1610
      basisvalues[7] *= std::sqrt(10.0);
 
1611
      basisvalues[6] *= std::sqrt(14.0);
1848
1612
      
1849
1613
      // Table(s) of coefficients.
1850
1614
      static const double coefficients0[10] = \
2317
2081
      double basisvalues[3] = {0.0, 0.0, 0.0};
2318
2082
      
2319
2083
      // Declare helper variables.
2320
 
      unsigned int rr = 0;
2321
 
      unsigned int ss = 0;
2322
2084
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
2323
2085
      
2324
2086
      // Compute basisvalues.
2325
2087
      basisvalues[0] = 1.0;
2326
2088
      basisvalues[1] = tmp0;
2327
 
      for (unsigned int r = 0; r < 1; r++)
2328
 
      {
2329
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
2330
 
        ss = r*(r + 1)/2;
2331
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
2332
 
      }// end loop over 'r'
2333
 
      for (unsigned int r = 0; r < 2; r++)
2334
 
      {
2335
 
        for (unsigned int s = 0; s < 2 - r; s++)
2336
 
        {
2337
 
          rr = (r + s)*(r + s + 1)/2 + s;
2338
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
2339
 
        }// end loop over 's'
2340
 
      }// end loop over 'r'
 
2089
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
2090
      basisvalues[0] *= std::sqrt(0.5);
 
2091
      basisvalues[2] *= std::sqrt(1.0);
 
2092
      basisvalues[1] *= std::sqrt(3.0);
2341
2093
      
2342
2094
      // Table(s) of coefficients.
2343
2095
      static const double coefficients0[3] = \
2357
2109
      double basisvalues[3] = {0.0, 0.0, 0.0};
2358
2110
      
2359
2111
      // Declare helper variables.
2360
 
      unsigned int rr = 0;
2361
 
      unsigned int ss = 0;
2362
2112
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
2363
2113
      
2364
2114
      // Compute basisvalues.
2365
2115
      basisvalues[0] = 1.0;
2366
2116
      basisvalues[1] = tmp0;
2367
 
      for (unsigned int r = 0; r < 1; r++)
2368
 
      {
2369
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
2370
 
        ss = r*(r + 1)/2;
2371
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
2372
 
      }// end loop over 'r'
2373
 
      for (unsigned int r = 0; r < 2; r++)
2374
 
      {
2375
 
        for (unsigned int s = 0; s < 2 - r; s++)
2376
 
        {
2377
 
          rr = (r + s)*(r + s + 1)/2 + s;
2378
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
2379
 
        }// end loop over 's'
2380
 
      }// end loop over 'r'
 
2117
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
2118
      basisvalues[0] *= std::sqrt(0.5);
 
2119
      basisvalues[2] *= std::sqrt(1.0);
 
2120
      basisvalues[1] *= std::sqrt(3.0);
2381
2121
      
2382
2122
      // Table(s) of coefficients.
2383
2123
      static const double coefficients0[3] = \
2397
2137
      double basisvalues[3] = {0.0, 0.0, 0.0};
2398
2138
      
2399
2139
      // Declare helper variables.
2400
 
      unsigned int rr = 0;
2401
 
      unsigned int ss = 0;
2402
2140
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
2403
2141
      
2404
2142
      // Compute basisvalues.
2405
2143
      basisvalues[0] = 1.0;
2406
2144
      basisvalues[1] = tmp0;
2407
 
      for (unsigned int r = 0; r < 1; r++)
2408
 
      {
2409
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
2410
 
        ss = r*(r + 1)/2;
2411
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
2412
 
      }// end loop over 'r'
2413
 
      for (unsigned int r = 0; r < 2; r++)
2414
 
      {
2415
 
        for (unsigned int s = 0; s < 2 - r; s++)
2416
 
        {
2417
 
          rr = (r + s)*(r + s + 1)/2 + s;
2418
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
2419
 
        }// end loop over 's'
2420
 
      }// end loop over 'r'
 
2145
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
2146
      basisvalues[0] *= std::sqrt(0.5);
 
2147
      basisvalues[2] *= std::sqrt(1.0);
 
2148
      basisvalues[1] *= std::sqrt(3.0);
2421
2149
      
2422
2150
      // Table(s) of coefficients.
2423
2151
      static const double coefficients0[3] = \
2556
2284
      double basisvalues[3] = {0.0, 0.0, 0.0};
2557
2285
      
2558
2286
      // Declare helper variables.
2559
 
      unsigned int rr = 0;
2560
 
      unsigned int ss = 0;
2561
2287
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
2562
2288
      
2563
2289
      // Compute basisvalues.
2564
2290
      basisvalues[0] = 1.0;
2565
2291
      basisvalues[1] = tmp0;
2566
 
      for (unsigned int r = 0; r < 1; r++)
2567
 
      {
2568
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
2569
 
        ss = r*(r + 1)/2;
2570
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
2571
 
      }// end loop over 'r'
2572
 
      for (unsigned int r = 0; r < 2; r++)
2573
 
      {
2574
 
        for (unsigned int s = 0; s < 2 - r; s++)
2575
 
        {
2576
 
          rr = (r + s)*(r + s + 1)/2 + s;
2577
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
2578
 
        }// end loop over 's'
2579
 
      }// end loop over 'r'
 
2292
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
2293
      basisvalues[0] *= std::sqrt(0.5);
 
2294
      basisvalues[2] *= std::sqrt(1.0);
 
2295
      basisvalues[1] *= std::sqrt(3.0);
2580
2296
      
2581
2297
      // Table(s) of coefficients.
2582
2298
      static const double coefficients0[3] = \
2714
2430
      double basisvalues[3] = {0.0, 0.0, 0.0};
2715
2431
      
2716
2432
      // Declare helper variables.
2717
 
      unsigned int rr = 0;
2718
 
      unsigned int ss = 0;
2719
2433
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
2720
2434
      
2721
2435
      // Compute basisvalues.
2722
2436
      basisvalues[0] = 1.0;
2723
2437
      basisvalues[1] = tmp0;
2724
 
      for (unsigned int r = 0; r < 1; r++)
2725
 
      {
2726
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
2727
 
        ss = r*(r + 1)/2;
2728
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
2729
 
      }// end loop over 'r'
2730
 
      for (unsigned int r = 0; r < 2; r++)
2731
 
      {
2732
 
        for (unsigned int s = 0; s < 2 - r; s++)
2733
 
        {
2734
 
          rr = (r + s)*(r + s + 1)/2 + s;
2735
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
2736
 
        }// end loop over 's'
2737
 
      }// end loop over 'r'
 
2438
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
2439
      basisvalues[0] *= std::sqrt(0.5);
 
2440
      basisvalues[2] *= std::sqrt(1.0);
 
2441
      basisvalues[1] *= std::sqrt(3.0);
2738
2442
      
2739
2443
      // Table(s) of coefficients.
2740
2444
      static const double coefficients0[3] = \
2872
2576
      double basisvalues[3] = {0.0, 0.0, 0.0};
2873
2577
      
2874
2578
      // Declare helper variables.
2875
 
      unsigned int rr = 0;
2876
 
      unsigned int ss = 0;
2877
2579
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
2878
2580
      
2879
2581
      // Compute basisvalues.
2880
2582
      basisvalues[0] = 1.0;
2881
2583
      basisvalues[1] = tmp0;
2882
 
      for (unsigned int r = 0; r < 1; r++)
2883
 
      {
2884
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
2885
 
        ss = r*(r + 1)/2;
2886
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
2887
 
      }// end loop over 'r'
2888
 
      for (unsigned int r = 0; r < 2; r++)
2889
 
      {
2890
 
        for (unsigned int s = 0; s < 2 - r; s++)
2891
 
        {
2892
 
          rr = (r + s)*(r + s + 1)/2 + s;
2893
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
2894
 
        }// end loop over 's'
2895
 
      }// end loop over 'r'
 
2584
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
2585
      basisvalues[0] *= std::sqrt(0.5);
 
2586
      basisvalues[2] *= std::sqrt(1.0);
 
2587
      basisvalues[1] *= std::sqrt(3.0);
2896
2588
      
2897
2589
      // Table(s) of coefficients.
2898
2590
      static const double coefficients0[3] = \
3285
2977
      double basisvalues[3] = {0.0, 0.0, 0.0};
3286
2978
      
3287
2979
      // Declare helper variables.
3288
 
      unsigned int rr = 0;
3289
 
      unsigned int ss = 0;
3290
2980
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
3291
2981
      
3292
2982
      // Compute basisvalues.
3293
2983
      basisvalues[0] = 1.0;
3294
2984
      basisvalues[1] = tmp0;
3295
 
      for (unsigned int r = 0; r < 1; r++)
3296
 
      {
3297
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
3298
 
        ss = r*(r + 1)/2;
3299
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
3300
 
      }// end loop over 'r'
3301
 
      for (unsigned int r = 0; r < 2; r++)
3302
 
      {
3303
 
        for (unsigned int s = 0; s < 2 - r; s++)
3304
 
        {
3305
 
          rr = (r + s)*(r + s + 1)/2 + s;
3306
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
3307
 
        }// end loop over 's'
3308
 
      }// end loop over 'r'
 
2985
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
2986
      basisvalues[0] *= std::sqrt(0.5);
 
2987
      basisvalues[2] *= std::sqrt(1.0);
 
2988
      basisvalues[1] *= std::sqrt(3.0);
3309
2989
      
3310
2990
      // Table(s) of coefficients.
3311
2991
      static const double coefficients0[3] = \
3325
3005
      double basisvalues[3] = {0.0, 0.0, 0.0};
3326
3006
      
3327
3007
      // Declare helper variables.
3328
 
      unsigned int rr = 0;
3329
 
      unsigned int ss = 0;
3330
3008
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
3331
3009
      
3332
3010
      // Compute basisvalues.
3333
3011
      basisvalues[0] = 1.0;
3334
3012
      basisvalues[1] = tmp0;
3335
 
      for (unsigned int r = 0; r < 1; r++)
3336
 
      {
3337
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
3338
 
        ss = r*(r + 1)/2;
3339
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
3340
 
      }// end loop over 'r'
3341
 
      for (unsigned int r = 0; r < 2; r++)
3342
 
      {
3343
 
        for (unsigned int s = 0; s < 2 - r; s++)
3344
 
        {
3345
 
          rr = (r + s)*(r + s + 1)/2 + s;
3346
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
3347
 
        }// end loop over 's'
3348
 
      }// end loop over 'r'
 
3013
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
3014
      basisvalues[0] *= std::sqrt(0.5);
 
3015
      basisvalues[2] *= std::sqrt(1.0);
 
3016
      basisvalues[1] *= std::sqrt(3.0);
3349
3017
      
3350
3018
      // Table(s) of coefficients.
3351
3019
      static const double coefficients0[3] = \
3365
3033
      double basisvalues[3] = {0.0, 0.0, 0.0};
3366
3034
      
3367
3035
      // Declare helper variables.
3368
 
      unsigned int rr = 0;
3369
 
      unsigned int ss = 0;
3370
3036
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
3371
3037
      
3372
3038
      // Compute basisvalues.
3373
3039
      basisvalues[0] = 1.0;
3374
3040
      basisvalues[1] = tmp0;
3375
 
      for (unsigned int r = 0; r < 1; r++)
3376
 
      {
3377
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
3378
 
        ss = r*(r + 1)/2;
3379
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
3380
 
      }// end loop over 'r'
3381
 
      for (unsigned int r = 0; r < 2; r++)
3382
 
      {
3383
 
        for (unsigned int s = 0; s < 2 - r; s++)
3384
 
        {
3385
 
          rr = (r + s)*(r + s + 1)/2 + s;
3386
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
3387
 
        }// end loop over 's'
3388
 
      }// end loop over 'r'
 
3041
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
3042
      basisvalues[0] *= std::sqrt(0.5);
 
3043
      basisvalues[2] *= std::sqrt(1.0);
 
3044
      basisvalues[1] *= std::sqrt(3.0);
3389
3045
      
3390
3046
      // Table(s) of coefficients.
3391
3047
      static const double coefficients0[3] = \
3405
3061
      double basisvalues[3] = {0.0, 0.0, 0.0};
3406
3062
      
3407
3063
      // Declare helper variables.
3408
 
      unsigned int rr = 0;
3409
 
      unsigned int ss = 0;
3410
3064
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
3411
3065
      
3412
3066
      // Compute basisvalues.
3413
3067
      basisvalues[0] = 1.0;
3414
3068
      basisvalues[1] = tmp0;
3415
 
      for (unsigned int r = 0; r < 1; r++)
3416
 
      {
3417
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
3418
 
        ss = r*(r + 1)/2;
3419
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
3420
 
      }// end loop over 'r'
3421
 
      for (unsigned int r = 0; r < 2; r++)
3422
 
      {
3423
 
        for (unsigned int s = 0; s < 2 - r; s++)
3424
 
        {
3425
 
          rr = (r + s)*(r + s + 1)/2 + s;
3426
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
3427
 
        }// end loop over 's'
3428
 
      }// end loop over 'r'
 
3069
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
3070
      basisvalues[0] *= std::sqrt(0.5);
 
3071
      basisvalues[2] *= std::sqrt(1.0);
 
3072
      basisvalues[1] *= std::sqrt(3.0);
3429
3073
      
3430
3074
      // Table(s) of coefficients.
3431
3075
      static const double coefficients0[3] = \
3445
3089
      double basisvalues[3] = {0.0, 0.0, 0.0};
3446
3090
      
3447
3091
      // Declare helper variables.
3448
 
      unsigned int rr = 0;
3449
 
      unsigned int ss = 0;
3450
3092
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
3451
3093
      
3452
3094
      // Compute basisvalues.
3453
3095
      basisvalues[0] = 1.0;
3454
3096
      basisvalues[1] = tmp0;
3455
 
      for (unsigned int r = 0; r < 1; r++)
3456
 
      {
3457
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
3458
 
        ss = r*(r + 1)/2;
3459
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
3460
 
      }// end loop over 'r'
3461
 
      for (unsigned int r = 0; r < 2; r++)
3462
 
      {
3463
 
        for (unsigned int s = 0; s < 2 - r; s++)
3464
 
        {
3465
 
          rr = (r + s)*(r + s + 1)/2 + s;
3466
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
3467
 
        }// end loop over 's'
3468
 
      }// end loop over 'r'
 
3097
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
3098
      basisvalues[0] *= std::sqrt(0.5);
 
3099
      basisvalues[2] *= std::sqrt(1.0);
 
3100
      basisvalues[1] *= std::sqrt(3.0);
3469
3101
      
3470
3102
      // Table(s) of coefficients.
3471
3103
      static const double coefficients0[3] = \
3485
3117
      double basisvalues[3] = {0.0, 0.0, 0.0};
3486
3118
      
3487
3119
      // Declare helper variables.
3488
 
      unsigned int rr = 0;
3489
 
      unsigned int ss = 0;
3490
3120
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
3491
3121
      
3492
3122
      // Compute basisvalues.
3493
3123
      basisvalues[0] = 1.0;
3494
3124
      basisvalues[1] = tmp0;
3495
 
      for (unsigned int r = 0; r < 1; r++)
3496
 
      {
3497
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
3498
 
        ss = r*(r + 1)/2;
3499
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
3500
 
      }// end loop over 'r'
3501
 
      for (unsigned int r = 0; r < 2; r++)
3502
 
      {
3503
 
        for (unsigned int s = 0; s < 2 - r; s++)
3504
 
        {
3505
 
          rr = (r + s)*(r + s + 1)/2 + s;
3506
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
3507
 
        }// end loop over 's'
3508
 
      }// end loop over 'r'
 
3125
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
3126
      basisvalues[0] *= std::sqrt(0.5);
 
3127
      basisvalues[2] *= std::sqrt(1.0);
 
3128
      basisvalues[1] *= std::sqrt(3.0);
3509
3129
      
3510
3130
      // Table(s) of coefficients.
3511
3131
      static const double coefficients0[3] = \
3525
3145
      double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
3526
3146
      
3527
3147
      // Declare helper variables.
3528
 
      unsigned int rr = 0;
3529
 
      unsigned int ss = 0;
3530
 
      unsigned int tt = 0;
3531
 
      double tmp5 = 0.0;
3532
 
      double tmp6 = 0.0;
3533
 
      double tmp7 = 0.0;
3534
3148
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
3535
3149
      double tmp1 = (1.0 - Y)/2.0;
3536
3150
      double tmp2 = tmp1*tmp1;
3538
3152
      // Compute basisvalues.
3539
3153
      basisvalues[0] = 1.0;
3540
3154
      basisvalues[1] = tmp0;
3541
 
      for (unsigned int r = 1; r < 3; r++)
3542
 
      {
3543
 
        rr = (r + 1)*((r + 1) + 1)/2;
3544
 
        ss = r*(r + 1)/2;
3545
 
        tt = (r - 1)*((r - 1) + 1)/2;
3546
 
        tmp5 = (1.0 + 2.0*r)/(1.0 + r);
3547
 
        basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
3548
 
      }// end loop over 'r'
3549
 
      for (unsigned int r = 0; r < 3; r++)
3550
 
      {
3551
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
3552
 
        ss = r*(r + 1)/2;
3553
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
3554
 
      }// end loop over 'r'
3555
 
      for (unsigned int r = 0; r < 2; r++)
3556
 
      {
3557
 
        for (unsigned int s = 1; s < 3 - r; s++)
3558
 
        {
3559
 
          rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
3560
 
          ss = (r + s)*(r + s + 1)/2 + s;
3561
 
          tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
3562
 
          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));
3563
 
          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));
3564
 
          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));
3565
 
          basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
3566
 
        }// end loop over 's'
3567
 
      }// end loop over 'r'
3568
 
      for (unsigned int r = 0; r < 4; r++)
3569
 
      {
3570
 
        for (unsigned int s = 0; s < 4 - r; s++)
3571
 
        {
3572
 
          rr = (r + s)*(r + s + 1)/2 + s;
3573
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
3574
 
        }// end loop over 's'
3575
 
      }// end loop over 'r'
 
3155
      basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
 
3156
      basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
 
3157
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
3158
      basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
 
3159
      basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
 
3160
      basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
 
3161
      basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
 
3162
      basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
 
3163
      basisvalues[0] *= std::sqrt(0.5);
 
3164
      basisvalues[2] *= std::sqrt(1.0);
 
3165
      basisvalues[5] *= std::sqrt(1.5);
 
3166
      basisvalues[9] *= std::sqrt(2.0);
 
3167
      basisvalues[1] *= std::sqrt(3.0);
 
3168
      basisvalues[4] *= std::sqrt(4.5);
 
3169
      basisvalues[8] *= std::sqrt(6.0);
 
3170
      basisvalues[3] *= std::sqrt(7.5);
 
3171
      basisvalues[7] *= std::sqrt(10.0);
 
3172
      basisvalues[6] *= std::sqrt(14.0);
3576
3173
      
3577
3174
      // Table(s) of coefficients.
3578
3175
      static const double coefficients0[10] = \
3592
3189
      double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
3593
3190
      
3594
3191
      // Declare helper variables.
3595
 
      unsigned int rr = 0;
3596
 
      unsigned int ss = 0;
3597
 
      unsigned int tt = 0;
3598
 
      double tmp5 = 0.0;
3599
 
      double tmp6 = 0.0;
3600
 
      double tmp7 = 0.0;
3601
3192
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
3602
3193
      double tmp1 = (1.0 - Y)/2.0;
3603
3194
      double tmp2 = tmp1*tmp1;
3605
3196
      // Compute basisvalues.
3606
3197
      basisvalues[0] = 1.0;
3607
3198
      basisvalues[1] = tmp0;
3608
 
      for (unsigned int r = 1; r < 3; r++)
3609
 
      {
3610
 
        rr = (r + 1)*((r + 1) + 1)/2;
3611
 
        ss = r*(r + 1)/2;
3612
 
        tt = (r - 1)*((r - 1) + 1)/2;
3613
 
        tmp5 = (1.0 + 2.0*r)/(1.0 + r);
3614
 
        basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
3615
 
      }// end loop over 'r'
3616
 
      for (unsigned int r = 0; r < 3; r++)
3617
 
      {
3618
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
3619
 
        ss = r*(r + 1)/2;
3620
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
3621
 
      }// end loop over 'r'
3622
 
      for (unsigned int r = 0; r < 2; r++)
3623
 
      {
3624
 
        for (unsigned int s = 1; s < 3 - r; s++)
3625
 
        {
3626
 
          rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
3627
 
          ss = (r + s)*(r + s + 1)/2 + s;
3628
 
          tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
3629
 
          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));
3630
 
          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));
3631
 
          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));
3632
 
          basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
3633
 
        }// end loop over 's'
3634
 
      }// end loop over 'r'
3635
 
      for (unsigned int r = 0; r < 4; r++)
3636
 
      {
3637
 
        for (unsigned int s = 0; s < 4 - r; s++)
3638
 
        {
3639
 
          rr = (r + s)*(r + s + 1)/2 + s;
3640
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
3641
 
        }// end loop over 's'
3642
 
      }// end loop over 'r'
 
3199
      basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
 
3200
      basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
 
3201
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
3202
      basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
 
3203
      basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
 
3204
      basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
 
3205
      basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
 
3206
      basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
 
3207
      basisvalues[0] *= std::sqrt(0.5);
 
3208
      basisvalues[2] *= std::sqrt(1.0);
 
3209
      basisvalues[5] *= std::sqrt(1.5);
 
3210
      basisvalues[9] *= std::sqrt(2.0);
 
3211
      basisvalues[1] *= std::sqrt(3.0);
 
3212
      basisvalues[4] *= std::sqrt(4.5);
 
3213
      basisvalues[8] *= std::sqrt(6.0);
 
3214
      basisvalues[3] *= std::sqrt(7.5);
 
3215
      basisvalues[7] *= std::sqrt(10.0);
 
3216
      basisvalues[6] *= std::sqrt(14.0);
3643
3217
      
3644
3218
      // Table(s) of coefficients.
3645
3219
      static const double coefficients0[10] = \
3659
3233
      double basisvalues[3] = {0.0, 0.0, 0.0};
3660
3234
      
3661
3235
      // Declare helper variables.
3662
 
      unsigned int rr = 0;
3663
 
      unsigned int ss = 0;
3664
3236
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
3665
3237
      
3666
3238
      // Compute basisvalues.
3667
3239
      basisvalues[0] = 1.0;
3668
3240
      basisvalues[1] = tmp0;
3669
 
      for (unsigned int r = 0; r < 1; r++)
3670
 
      {
3671
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
3672
 
        ss = r*(r + 1)/2;
3673
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
3674
 
      }// end loop over 'r'
3675
 
      for (unsigned int r = 0; r < 2; r++)
3676
 
      {
3677
 
        for (unsigned int s = 0; s < 2 - r; s++)
3678
 
        {
3679
 
          rr = (r + s)*(r + s + 1)/2 + s;
3680
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
3681
 
        }// end loop over 's'
3682
 
      }// end loop over 'r'
 
3241
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
3242
      basisvalues[0] *= std::sqrt(0.5);
 
3243
      basisvalues[2] *= std::sqrt(1.0);
 
3244
      basisvalues[1] *= std::sqrt(3.0);
3683
3245
      
3684
3246
      // Table(s) of coefficients.
3685
3247
      static const double coefficients0[3] = \
3699
3261
      double basisvalues[3] = {0.0, 0.0, 0.0};
3700
3262
      
3701
3263
      // Declare helper variables.
3702
 
      unsigned int rr = 0;
3703
 
      unsigned int ss = 0;
3704
3264
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
3705
3265
      
3706
3266
      // Compute basisvalues.
3707
3267
      basisvalues[0] = 1.0;
3708
3268
      basisvalues[1] = tmp0;
3709
 
      for (unsigned int r = 0; r < 1; r++)
3710
 
      {
3711
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
3712
 
        ss = r*(r + 1)/2;
3713
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
3714
 
      }// end loop over 'r'
3715
 
      for (unsigned int r = 0; r < 2; r++)
3716
 
      {
3717
 
        for (unsigned int s = 0; s < 2 - r; s++)
3718
 
        {
3719
 
          rr = (r + s)*(r + s + 1)/2 + s;
3720
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
3721
 
        }// end loop over 's'
3722
 
      }// end loop over 'r'
 
3269
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
3270
      basisvalues[0] *= std::sqrt(0.5);
 
3271
      basisvalues[2] *= std::sqrt(1.0);
 
3272
      basisvalues[1] *= std::sqrt(3.0);
3723
3273
      
3724
3274
      // Table(s) of coefficients.
3725
3275
      static const double coefficients0[3] = \
3739
3289
      double basisvalues[3] = {0.0, 0.0, 0.0};
3740
3290
      
3741
3291
      // Declare helper variables.
3742
 
      unsigned int rr = 0;
3743
 
      unsigned int ss = 0;
3744
3292
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
3745
3293
      
3746
3294
      // Compute basisvalues.
3747
3295
      basisvalues[0] = 1.0;
3748
3296
      basisvalues[1] = tmp0;
3749
 
      for (unsigned int r = 0; r < 1; r++)
3750
 
      {
3751
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
3752
 
        ss = r*(r + 1)/2;
3753
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
3754
 
      }// end loop over 'r'
3755
 
      for (unsigned int r = 0; r < 2; r++)
3756
 
      {
3757
 
        for (unsigned int s = 0; s < 2 - r; s++)
3758
 
        {
3759
 
          rr = (r + s)*(r + s + 1)/2 + s;
3760
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
3761
 
        }// end loop over 's'
3762
 
      }// end loop over 'r'
 
3297
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
3298
      basisvalues[0] *= std::sqrt(0.5);
 
3299
      basisvalues[2] *= std::sqrt(1.0);
 
3300
      basisvalues[1] *= std::sqrt(3.0);
3763
3301
      
3764
3302
      // Table(s) of coefficients.
3765
3303
      static const double coefficients0[3] = \
3901
3439
      double basisvalues[3] = {0.0, 0.0, 0.0};
3902
3440
      
3903
3441
      // Declare helper variables.
3904
 
      unsigned int rr = 0;
3905
 
      unsigned int ss = 0;
3906
3442
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
3907
3443
      
3908
3444
      // Compute basisvalues.
3909
3445
      basisvalues[0] = 1.0;
3910
3446
      basisvalues[1] = tmp0;
3911
 
      for (unsigned int r = 0; r < 1; r++)
3912
 
      {
3913
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
3914
 
        ss = r*(r + 1)/2;
3915
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
3916
 
      }// end loop over 'r'
3917
 
      for (unsigned int r = 0; r < 2; r++)
3918
 
      {
3919
 
        for (unsigned int s = 0; s < 2 - r; s++)
3920
 
        {
3921
 
          rr = (r + s)*(r + s + 1)/2 + s;
3922
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
3923
 
        }// end loop over 's'
3924
 
      }// end loop over 'r'
 
3447
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
3448
      basisvalues[0] *= std::sqrt(0.5);
 
3449
      basisvalues[2] *= std::sqrt(1.0);
 
3450
      basisvalues[1] *= std::sqrt(3.0);
3925
3451
      
3926
3452
      // Table(s) of coefficients.
3927
3453
      static const double coefficients0[3] = \
4059
3585
      double basisvalues[3] = {0.0, 0.0, 0.0};
4060
3586
      
4061
3587
      // Declare helper variables.
4062
 
      unsigned int rr = 0;
4063
 
      unsigned int ss = 0;
4064
3588
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
4065
3589
      
4066
3590
      // Compute basisvalues.
4067
3591
      basisvalues[0] = 1.0;
4068
3592
      basisvalues[1] = tmp0;
4069
 
      for (unsigned int r = 0; r < 1; r++)
4070
 
      {
4071
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
4072
 
        ss = r*(r + 1)/2;
4073
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
4074
 
      }// end loop over 'r'
4075
 
      for (unsigned int r = 0; r < 2; r++)
4076
 
      {
4077
 
        for (unsigned int s = 0; s < 2 - r; s++)
4078
 
        {
4079
 
          rr = (r + s)*(r + s + 1)/2 + s;
4080
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
4081
 
        }// end loop over 's'
4082
 
      }// end loop over 'r'
 
3593
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
3594
      basisvalues[0] *= std::sqrt(0.5);
 
3595
      basisvalues[2] *= std::sqrt(1.0);
 
3596
      basisvalues[1] *= std::sqrt(3.0);
4083
3597
      
4084
3598
      // Table(s) of coefficients.
4085
3599
      static const double coefficients0[3] = \
4217
3731
      double basisvalues[3] = {0.0, 0.0, 0.0};
4218
3732
      
4219
3733
      // Declare helper variables.
4220
 
      unsigned int rr = 0;
4221
 
      unsigned int ss = 0;
4222
3734
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
4223
3735
      
4224
3736
      // Compute basisvalues.
4225
3737
      basisvalues[0] = 1.0;
4226
3738
      basisvalues[1] = tmp0;
4227
 
      for (unsigned int r = 0; r < 1; r++)
4228
 
      {
4229
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
4230
 
        ss = r*(r + 1)/2;
4231
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
4232
 
      }// end loop over 'r'
4233
 
      for (unsigned int r = 0; r < 2; r++)
4234
 
      {
4235
 
        for (unsigned int s = 0; s < 2 - r; s++)
4236
 
        {
4237
 
          rr = (r + s)*(r + s + 1)/2 + s;
4238
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
4239
 
        }// end loop over 's'
4240
 
      }// end loop over 'r'
 
3739
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
3740
      basisvalues[0] *= std::sqrt(0.5);
 
3741
      basisvalues[2] *= std::sqrt(1.0);
 
3742
      basisvalues[1] *= std::sqrt(3.0);
4241
3743
      
4242
3744
      // Table(s) of coefficients.
4243
3745
      static const double coefficients0[3] = \
4375
3877
      double basisvalues[3] = {0.0, 0.0, 0.0};
4376
3878
      
4377
3879
      // Declare helper variables.
4378
 
      unsigned int rr = 0;
4379
 
      unsigned int ss = 0;
4380
3880
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
4381
3881
      
4382
3882
      // Compute basisvalues.
4383
3883
      basisvalues[0] = 1.0;
4384
3884
      basisvalues[1] = tmp0;
4385
 
      for (unsigned int r = 0; r < 1; r++)
4386
 
      {
4387
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
4388
 
        ss = r*(r + 1)/2;
4389
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
4390
 
      }// end loop over 'r'
4391
 
      for (unsigned int r = 0; r < 2; r++)
4392
 
      {
4393
 
        for (unsigned int s = 0; s < 2 - r; s++)
4394
 
        {
4395
 
          rr = (r + s)*(r + s + 1)/2 + s;
4396
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
4397
 
        }// end loop over 's'
4398
 
      }// end loop over 'r'
 
3885
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
3886
      basisvalues[0] *= std::sqrt(0.5);
 
3887
      basisvalues[2] *= std::sqrt(1.0);
 
3888
      basisvalues[1] *= std::sqrt(3.0);
4399
3889
      
4400
3890
      // Table(s) of coefficients.
4401
3891
      static const double coefficients0[3] = \
4533
4023
      double basisvalues[3] = {0.0, 0.0, 0.0};
4534
4024
      
4535
4025
      // Declare helper variables.
4536
 
      unsigned int rr = 0;
4537
 
      unsigned int ss = 0;
4538
4026
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
4539
4027
      
4540
4028
      // Compute basisvalues.
4541
4029
      basisvalues[0] = 1.0;
4542
4030
      basisvalues[1] = tmp0;
4543
 
      for (unsigned int r = 0; r < 1; r++)
4544
 
      {
4545
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
4546
 
        ss = r*(r + 1)/2;
4547
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
4548
 
      }// end loop over 'r'
4549
 
      for (unsigned int r = 0; r < 2; r++)
4550
 
      {
4551
 
        for (unsigned int s = 0; s < 2 - r; s++)
4552
 
        {
4553
 
          rr = (r + s)*(r + s + 1)/2 + s;
4554
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
4555
 
        }// end loop over 's'
4556
 
      }// end loop over 'r'
 
4031
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
4032
      basisvalues[0] *= std::sqrt(0.5);
 
4033
      basisvalues[2] *= std::sqrt(1.0);
 
4034
      basisvalues[1] *= std::sqrt(3.0);
4557
4035
      
4558
4036
      // Table(s) of coefficients.
4559
4037
      static const double coefficients0[3] = \
4691
4169
      double basisvalues[3] = {0.0, 0.0, 0.0};
4692
4170
      
4693
4171
      // Declare helper variables.
4694
 
      unsigned int rr = 0;
4695
 
      unsigned int ss = 0;
4696
4172
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
4697
4173
      
4698
4174
      // Compute basisvalues.
4699
4175
      basisvalues[0] = 1.0;
4700
4176
      basisvalues[1] = tmp0;
4701
 
      for (unsigned int r = 0; r < 1; r++)
4702
 
      {
4703
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
4704
 
        ss = r*(r + 1)/2;
4705
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
4706
 
      }// end loop over 'r'
4707
 
      for (unsigned int r = 0; r < 2; r++)
4708
 
      {
4709
 
        for (unsigned int s = 0; s < 2 - r; s++)
4710
 
        {
4711
 
          rr = (r + s)*(r + s + 1)/2 + s;
4712
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
4713
 
        }// end loop over 's'
4714
 
      }// end loop over 'r'
 
4177
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
4178
      basisvalues[0] *= std::sqrt(0.5);
 
4179
      basisvalues[2] *= std::sqrt(1.0);
 
4180
      basisvalues[1] *= std::sqrt(3.0);
4715
4181
      
4716
4182
      // Table(s) of coefficients.
4717
4183
      static const double coefficients0[3] = \
4849
4315
      double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
4850
4316
      
4851
4317
      // Declare helper variables.
4852
 
      unsigned int rr = 0;
4853
 
      unsigned int ss = 0;
4854
 
      unsigned int tt = 0;
4855
 
      double tmp5 = 0.0;
4856
 
      double tmp6 = 0.0;
4857
 
      double tmp7 = 0.0;
4858
4318
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
4859
4319
      double tmp1 = (1.0 - Y)/2.0;
4860
4320
      double tmp2 = tmp1*tmp1;
4862
4322
      // Compute basisvalues.
4863
4323
      basisvalues[0] = 1.0;
4864
4324
      basisvalues[1] = tmp0;
4865
 
      for (unsigned int r = 1; r < 3; r++)
4866
 
      {
4867
 
        rr = (r + 1)*((r + 1) + 1)/2;
4868
 
        ss = r*(r + 1)/2;
4869
 
        tt = (r - 1)*((r - 1) + 1)/2;
4870
 
        tmp5 = (1.0 + 2.0*r)/(1.0 + r);
4871
 
        basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
4872
 
      }// end loop over 'r'
4873
 
      for (unsigned int r = 0; r < 3; r++)
4874
 
      {
4875
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
4876
 
        ss = r*(r + 1)/2;
4877
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
4878
 
      }// end loop over 'r'
4879
 
      for (unsigned int r = 0; r < 2; r++)
4880
 
      {
4881
 
        for (unsigned int s = 1; s < 3 - r; s++)
4882
 
        {
4883
 
          rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
4884
 
          ss = (r + s)*(r + s + 1)/2 + s;
4885
 
          tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
4886
 
          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));
4887
 
          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));
4888
 
          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));
4889
 
          basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
4890
 
        }// end loop over 's'
4891
 
      }// end loop over 'r'
4892
 
      for (unsigned int r = 0; r < 4; r++)
4893
 
      {
4894
 
        for (unsigned int s = 0; s < 4 - r; s++)
4895
 
        {
4896
 
          rr = (r + s)*(r + s + 1)/2 + s;
4897
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
4898
 
        }// end loop over 's'
4899
 
      }// end loop over 'r'
 
4325
      basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
 
4326
      basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
 
4327
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
4328
      basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
 
4329
      basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
 
4330
      basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
 
4331
      basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
 
4332
      basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
 
4333
      basisvalues[0] *= std::sqrt(0.5);
 
4334
      basisvalues[2] *= std::sqrt(1.0);
 
4335
      basisvalues[5] *= std::sqrt(1.5);
 
4336
      basisvalues[9] *= std::sqrt(2.0);
 
4337
      basisvalues[1] *= std::sqrt(3.0);
 
4338
      basisvalues[4] *= std::sqrt(4.5);
 
4339
      basisvalues[8] *= std::sqrt(6.0);
 
4340
      basisvalues[3] *= std::sqrt(7.5);
 
4341
      basisvalues[7] *= std::sqrt(10.0);
 
4342
      basisvalues[6] *= std::sqrt(14.0);
4900
4343
      
4901
4344
      // Table(s) of coefficients.
4902
4345
      static const double coefficients0[10] = \
5062
4505
      double basisvalues[10] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
5063
4506
      
5064
4507
      // Declare helper variables.
5065
 
      unsigned int rr = 0;
5066
 
      unsigned int ss = 0;
5067
 
      unsigned int tt = 0;
5068
 
      double tmp5 = 0.0;
5069
 
      double tmp6 = 0.0;
5070
 
      double tmp7 = 0.0;
5071
4508
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
5072
4509
      double tmp1 = (1.0 - Y)/2.0;
5073
4510
      double tmp2 = tmp1*tmp1;
5075
4512
      // Compute basisvalues.
5076
4513
      basisvalues[0] = 1.0;
5077
4514
      basisvalues[1] = tmp0;
5078
 
      for (unsigned int r = 1; r < 3; r++)
5079
 
      {
5080
 
        rr = (r + 1)*((r + 1) + 1)/2;
5081
 
        ss = r*(r + 1)/2;
5082
 
        tt = (r - 1)*((r - 1) + 1)/2;
5083
 
        tmp5 = (1.0 + 2.0*r)/(1.0 + r);
5084
 
        basisvalues[rr] = (basisvalues[ss]*tmp0*tmp5 - basisvalues[tt]*tmp2*r/(1.0 + r));
5085
 
      }// end loop over 'r'
5086
 
      for (unsigned int r = 0; r < 3; r++)
5087
 
      {
5088
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
5089
 
        ss = r*(r + 1)/2;
5090
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
5091
 
      }// end loop over 'r'
5092
 
      for (unsigned int r = 0; r < 2; r++)
5093
 
      {
5094
 
        for (unsigned int s = 1; s < 3 - r; s++)
5095
 
        {
5096
 
          rr = (r + s + 1)*(r + s + 1 + 1)/2 + s + 1;
5097
 
          ss = (r + s)*(r + s + 1)/2 + s;
5098
 
          tt = (r + s - 1)*(r + s - 1 + 1)/2 + s - 1;
5099
 
          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));
5100
 
          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));
5101
 
          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));
5102
 
          basisvalues[rr] = (basisvalues[ss]*(tmp6 + Y*tmp5) - basisvalues[tt]*tmp7);
5103
 
        }// end loop over 's'
5104
 
      }// end loop over 'r'
5105
 
      for (unsigned int r = 0; r < 4; r++)
5106
 
      {
5107
 
        for (unsigned int s = 0; s < 4 - r; s++)
5108
 
        {
5109
 
          rr = (r + s)*(r + s + 1)/2 + s;
5110
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
5111
 
        }// end loop over 's'
5112
 
      }// end loop over 'r'
 
4515
      basisvalues[3] = basisvalues[1]*1.5*tmp0 - basisvalues[0]*0.5*tmp2;
 
4516
      basisvalues[6] = basisvalues[3]*1.6666667*tmp0 - basisvalues[1]*0.66666667*tmp2;
 
4517
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
4518
      basisvalues[4] = basisvalues[1]*(1.5 + 2.5*Y);
 
4519
      basisvalues[7] = basisvalues[3]*(2.5 + 3.5*Y);
 
4520
      basisvalues[5] = basisvalues[2]*(0.11111111 + Y*1.6666667) - basisvalues[0]*0.55555556;
 
4521
      basisvalues[9] = basisvalues[5]*(0.05 + Y*1.75) - basisvalues[2]*0.7;
 
4522
      basisvalues[8] = basisvalues[4]*(0.54 + Y*2.1) - basisvalues[1]*0.56;
 
4523
      basisvalues[0] *= std::sqrt(0.5);
 
4524
      basisvalues[2] *= std::sqrt(1.0);
 
4525
      basisvalues[5] *= std::sqrt(1.5);
 
4526
      basisvalues[9] *= std::sqrt(2.0);
 
4527
      basisvalues[1] *= std::sqrt(3.0);
 
4528
      basisvalues[4] *= std::sqrt(4.5);
 
4529
      basisvalues[8] *= std::sqrt(6.0);
 
4530
      basisvalues[3] *= std::sqrt(7.5);
 
4531
      basisvalues[7] *= std::sqrt(10.0);
 
4532
      basisvalues[6] *= std::sqrt(14.0);
5113
4533
      
5114
4534
      // Table(s) of coefficients.
5115
4535
      static const double coefficients0[10] = \
5275
4695
      double basisvalues[3] = {0.0, 0.0, 0.0};
5276
4696
      
5277
4697
      // Declare helper variables.
5278
 
      unsigned int rr = 0;
5279
 
      unsigned int ss = 0;
5280
4698
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
5281
4699
      
5282
4700
      // Compute basisvalues.
5283
4701
      basisvalues[0] = 1.0;
5284
4702
      basisvalues[1] = tmp0;
5285
 
      for (unsigned int r = 0; r < 1; r++)
5286
 
      {
5287
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
5288
 
        ss = r*(r + 1)/2;
5289
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
5290
 
      }// end loop over 'r'
5291
 
      for (unsigned int r = 0; r < 2; r++)
5292
 
      {
5293
 
        for (unsigned int s = 0; s < 2 - r; s++)
5294
 
        {
5295
 
          rr = (r + s)*(r + s + 1)/2 + s;
5296
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
5297
 
        }// end loop over 's'
5298
 
      }// end loop over 'r'
 
4703
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
4704
      basisvalues[0] *= std::sqrt(0.5);
 
4705
      basisvalues[2] *= std::sqrt(1.0);
 
4706
      basisvalues[1] *= std::sqrt(3.0);
5299
4707
      
5300
4708
      // Table(s) of coefficients.
5301
4709
      static const double coefficients0[3] = \
5433
4841
      double basisvalues[3] = {0.0, 0.0, 0.0};
5434
4842
      
5435
4843
      // Declare helper variables.
5436
 
      unsigned int rr = 0;
5437
 
      unsigned int ss = 0;
5438
4844
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
5439
4845
      
5440
4846
      // Compute basisvalues.
5441
4847
      basisvalues[0] = 1.0;
5442
4848
      basisvalues[1] = tmp0;
5443
 
      for (unsigned int r = 0; r < 1; r++)
5444
 
      {
5445
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
5446
 
        ss = r*(r + 1)/2;
5447
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
5448
 
      }// end loop over 'r'
5449
 
      for (unsigned int r = 0; r < 2; r++)
5450
 
      {
5451
 
        for (unsigned int s = 0; s < 2 - r; s++)
5452
 
        {
5453
 
          rr = (r + s)*(r + s + 1)/2 + s;
5454
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
5455
 
        }// end loop over 's'
5456
 
      }// end loop over 'r'
 
4849
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
4850
      basisvalues[0] *= std::sqrt(0.5);
 
4851
      basisvalues[2] *= std::sqrt(1.0);
 
4852
      basisvalues[1] *= std::sqrt(3.0);
5457
4853
      
5458
4854
      // Table(s) of coefficients.
5459
4855
      static const double coefficients0[3] = \
5591
4987
      double basisvalues[3] = {0.0, 0.0, 0.0};
5592
4988
      
5593
4989
      // Declare helper variables.
5594
 
      unsigned int rr = 0;
5595
 
      unsigned int ss = 0;
5596
4990
      double tmp0 = (1.0 + Y + 2.0*X)/2.0;
5597
4991
      
5598
4992
      // Compute basisvalues.
5599
4993
      basisvalues[0] = 1.0;
5600
4994
      basisvalues[1] = tmp0;
5601
 
      for (unsigned int r = 0; r < 1; r++)
5602
 
      {
5603
 
        rr = (r + 1)*(r + 1 + 1)/2 + 1;
5604
 
        ss = r*(r + 1)/2;
5605
 
        basisvalues[rr] = basisvalues[ss]*(0.5 + r + Y*(1.5 + r));
5606
 
      }// end loop over 'r'
5607
 
      for (unsigned int r = 0; r < 2; r++)
5608
 
      {
5609
 
        for (unsigned int s = 0; s < 2 - r; s++)
5610
 
        {
5611
 
          rr = (r + s)*(r + s + 1)/2 + s;
5612
 
          basisvalues[rr] *= std::sqrt((0.5 + r)*(1.0 + r + s));
5613
 
        }// end loop over 's'
5614
 
      }// end loop over 'r'
 
4995
      basisvalues[2] = basisvalues[0]*(0.5 + 1.5*Y);
 
4996
      basisvalues[0] *= std::sqrt(0.5);
 
4997
      basisvalues[2] *= std::sqrt(1.0);
 
4998
      basisvalues[1] *= std::sqrt(3.0);
5615
4999
      
5616
5000
      // Table(s) of coefficients.
5617
5001
      static const double coefficients0[3] = \