131 template <
int dim,
int spacedim>
135 return (accessor.vertex(1) + accessor.vertex(0)) / 2.;
145 return accessor.center();
187 const double x[4] = {accessor.vertex(0)[0],
188 accessor.vertex(1)[0],
189 accessor.vertex(2)[0],
190 accessor.vertex(3)[0]};
191 const double y[4] = {accessor.vertex(0)[1],
192 accessor.vertex(1)[1],
193 accessor.vertex(2)[1],
194 accessor.vertex(3)[1]};
195 const double t1 =
x[0] *
x[1];
196 const double t3 =
x[0] *
x[0];
197 const double t5 =
x[1] *
x[1];
198 const double t9 =
y[0] *
x[0];
199 const double t11 =
y[1] *
x[1];
200 const double t14 =
x[2] *
x[2];
201 const double t16 =
x[3] *
x[3];
202 const double t20 =
x[2] *
x[3];
206 t20 *
y[3] -
x[0] *
x[2] *
y[2] +
207 x[1] *
x[3] *
y[3] +
t20 *
y[2];
209 1 / (-
x[1] *
y[0] +
x[1] *
y[3] +
y[0] *
x[2] +
x[0] *
y[1] -
210 x[0] *
y[2] -
y[1] *
x[3] -
x[2] *
y[3] +
x[3] *
y[2]);
211 const double t39 =
y[2] *
y[2];
212 const double t51 =
y[0] *
y[0];
213 const double t53 =
y[1] *
y[1];
214 const double t59 =
y[3] *
y[3];
216 t39 *
x[3] +
y[2] *
y[0] *
x[2] +
y[3] *
x[3] *
y[2] -
217 y[2] *
x[2] *
y[3] -
y[3] *
y[1] *
x[3] -
t9 *
y[2] +
t11 *
y[3] +
238 return accessor.center();
315 const double x[8] = {accessor.vertex(0)[0],
316 accessor.vertex(1)[0],
317 accessor.vertex(5)[0],
318 accessor.vertex(4)[0],
319 accessor.vertex(2)[0],
320 accessor.vertex(3)[0],
321 accessor.vertex(7)[0],
322 accessor.vertex(6)[0]};
323 const double y[8] = {accessor.vertex(0)[1],
324 accessor.vertex(1)[1],
325 accessor.vertex(5)[1],
326 accessor.vertex(4)[1],
327 accessor.vertex(2)[1],
328 accessor.vertex(3)[1],
329 accessor.vertex(7)[1],
330 accessor.vertex(6)[1]};
331 const double z[8] = {accessor.vertex(0)[2],
332 accessor.vertex(1)[2],
333 accessor.vertex(5)[2],
334 accessor.vertex(4)[2],
335 accessor.vertex(2)[2],
336 accessor.vertex(3)[2],
337 accessor.vertex(7)[2],
338 accessor.vertex(6)[2]};
343 s8 = -
x[2] *
x[2] *
y[0] * z[3] - 2.0 * z[6] *
x[7] *
x[7] *
y[4] -
344 z[5] *
x[7] *
x[7] *
y[4] - z[6] *
x[7] *
x[7] *
y[5] +
345 2.0 *
y[6] *
x[7] *
x[7] * z[4] - z[5] *
x[6] *
x[6] *
y[4] +
346 x[6] *
x[6] *
y[4] * z[7] - z[1] *
x[0] *
x[0] *
y[2] -
347 x[6] *
x[6] *
y[7] * z[4] + 2.0 *
x[6] *
x[6] *
y[5] * z[7] -
348 2.0 *
x[6] *
x[6] *
y[7] * z[5] +
y[5] *
x[6] *
x[6] * z[4] +
349 2.0 *
x[5] *
x[5] *
y[4] * z[6] +
x[0] *
x[0] *
y[7] * z[4] -
350 2.0 *
x[5] *
x[5] *
y[6] * z[4];
351 s7 =
s8 -
y[6] *
x[5] *
x[5] * z[7] + z[6] *
x[5] *
x[5] *
y[7] -
352 y[1] *
x[0] *
x[0] * z[5] +
x[7] * z[5] *
x[4] *
y[7] -
353 x[7] *
y[6] *
x[5] * z[7] - 2.0 *
x[7] *
x[6] *
y[7] * z[4] +
354 2.0 *
x[7] *
x[6] *
y[4] * z[7] -
x[7] *
x[5] *
y[7] * z[4] -
355 2.0 *
x[7] *
y[6] *
x[4] * z[7] -
x[7] *
y[5] *
x[4] * z[7] +
356 x[2] *
x[2] *
y[3] * z[0] -
x[7] *
x[6] *
y[7] * z[5] +
357 x[7] *
x[6] *
y[5] * z[7] + 2.0 *
x[1] *
x[1] *
y[0] * z[5] +
358 x[7] * z[6] *
x[5] *
y[7];
359 s8 = -2.0 *
x[1] *
x[1] *
y[5] * z[0] + z[1] *
x[0] *
x[0] *
y[5] +
360 2.0 *
x[2] *
x[2] *
y[3] * z[1] - z[5] *
x[4] *
x[4] *
y[1] +
361 y[5] *
x[4] *
x[4] * z[1] - 2.0 *
x[5] *
x[5] *
y[4] * z[1] +
362 2.0 *
x[5] *
x[5] *
y[1] * z[4] - 2.0 *
x[2] *
x[2] *
y[1] * z[3] -
363 y[1] *
x[2] *
x[2] * z[0] +
x[7] *
y[2] *
x[3] * z[7] +
364 x[7] * z[2] *
x[6] *
y[3] + 2.0 *
x[7] * z[6] *
x[4] *
y[7] +
365 z[5] *
x[1] *
x[1] *
y[4] + z[1] *
x[2] *
x[2] *
y[0] -
366 2.0 *
y[0] *
x[3] *
x[3] * z[7];
367 s6 =
s8 + 2.0 * z[0] *
x[3] *
x[3] *
y[7] -
x[7] *
x[2] *
y[3] * z[7] -
368 x[7] * z[2] *
x[3] *
y[7] +
x[7] *
x[2] *
y[7] * z[3] -
369 x[7] *
y[2] *
x[6] * z[3] +
x[4] *
x[5] *
y[1] * z[4] -
370 x[4] *
x[5] *
y[4] * z[1] +
x[4] * z[5] *
x[1] *
y[4] -
371 x[4] *
y[5] *
x[1] * z[4] - 2.0 *
x[5] * z[5] *
x[4] *
y[1] -
372 2.0 *
x[5] *
y[5] *
x[1] * z[4] + 2.0 *
x[5] * z[5] *
x[1] *
y[4] +
373 2.0 *
x[5] *
y[5] *
x[4] * z[1] -
x[6] * z[5] *
x[7] *
y[4] -
374 z[2] *
x[3] *
x[3] *
y[6] +
s7;
375 s8 = -2.0 *
x[6] * z[6] *
x[7] *
y[5] -
x[6] *
y[6] *
x[4] * z[7] +
376 y[2] *
x[3] *
x[3] * z[6] +
x[6] *
y[6] *
x[7] * z[4] +
377 2.0 *
y[2] *
x[3] *
x[3] * z[7] +
x[0] *
x[1] *
y[0] * z[5] +
378 x[0] *
y[1] *
x[5] * z[0] -
x[0] * z[1] *
x[5] *
y[0] -
379 2.0 * z[2] *
x[3] *
x[3] *
y[7] + 2.0 *
x[6] * z[6] *
x[5] *
y[7] -
380 x[0] *
x[1] *
y[5] * z[0] -
x[6] *
y[5] *
x[4] * z[6] -
381 2.0 *
x[3] * z[0] *
x[7] *
y[3] -
x[6] * z[6] *
x[7] *
y[4] -
382 2.0 *
x[1] * z[1] *
x[5] *
y[0];
383 s7 =
s8 + 2.0 *
x[1] *
y[1] *
x[5] * z[0] +
384 2.0 *
x[1] * z[1] *
x[0] *
y[5] + 2.0 *
x[3] *
y[0] *
x[7] * z[3] +
385 2.0 *
x[3] *
x[0] *
y[3] * z[7] - 2.0 *
x[3] *
x[0] *
y[7] * z[3] -
386 2.0 *
x[1] *
y[1] *
x[0] * z[5] - 2.0 *
x[6] *
y[6] *
x[5] * z[7] +
387 s6 -
y[5] *
x[1] *
x[1] * z[4] +
x[6] * z[6] *
x[4] *
y[7] -
388 2.0 *
x[2] *
y[2] *
x[3] * z[1] +
x[6] * z[5] *
x[4] *
y[6] +
389 x[6] *
x[5] *
y[4] * z[6] -
y[6] *
x[7] *
x[7] * z[2] -
390 x[6] *
x[5] *
y[6] * z[4];
391 s8 =
x[3] *
x[3] *
y[7] * z[4] - 2.0 *
y[6] *
x[7] *
x[7] * z[3] +
392 z[6] *
x[7] *
x[7] *
y[2] + 2.0 * z[6] *
x[7] *
x[7] *
y[3] +
393 2.0 *
y[1] *
x[0] *
x[0] * z[3] + 2.0 *
x[0] *
x[1] *
y[3] * z[0] -
394 2.0 *
x[0] *
y[0] *
x[3] * z[4] - 2.0 *
x[0] * z[1] *
x[4] *
y[0] -
395 2.0 *
x[0] *
y[1] *
x[3] * z[0] + 2.0 *
x[0] *
y[0] *
x[4] * z[3] -
396 2.0 *
x[0] * z[0] *
x[4] *
y[3] + 2.0 *
x[0] *
x[1] *
y[0] * z[4] +
397 2.0 *
x[0] * z[1] *
x[3] *
y[0] - 2.0 *
x[0] *
x[1] *
y[0] * z[3] -
398 2.0 *
x[0] *
x[1] *
y[4] * z[0] + 2.0 *
x[0] *
y[1] *
x[4] * z[0];
399 s5 =
s8 + 2.0 *
x[0] * z[0] *
x[3] *
y[4] +
x[1] *
y[1] *
x[0] * z[3] -
400 x[1] * z[1] *
x[4] *
y[0] -
x[1] *
y[1] *
x[0] * z[4] +
401 x[1] * z[1] *
x[0] *
y[4] -
x[1] *
y[1] *
x[3] * z[0] -
402 x[1] * z[1] *
x[0] *
y[3] -
x[0] * z[5] *
x[4] *
y[1] +
403 x[0] *
y[5] *
x[4] * z[1] - 2.0 *
x[4] *
x[0] *
y[4] * z[7] -
404 2.0 *
x[4] *
y[5] *
x[0] * z[4] + 2.0 *
x[4] * z[5] *
x[0] *
y[4] -
405 2.0 *
x[4] *
x[5] *
y[4] * z[0] - 2.0 *
x[4] *
y[0] *
x[7] * z[4] -
406 x[5] *
y[5] *
x[0] * z[4] +
s7;
407 s8 =
x[5] * z[5] *
x[0] *
y[4] -
x[5] * z[5] *
x[4] *
y[0] +
408 x[1] * z[5] *
x[0] *
y[4] +
x[5] *
y[5] *
x[4] * z[0] -
409 x[0] *
y[0] *
x[7] * z[4] -
x[0] * z[5] *
x[4] *
y[0] -
410 x[1] *
y[5] *
x[0] * z[4] +
x[0] * z[0] *
x[7] *
y[4] +
411 x[0] *
y[5] *
x[4] * z[0] -
x[0] * z[0] *
x[4] *
y[7] +
412 x[0] *
x[5] *
y[0] * z[4] +
x[0] *
y[0] *
x[4] * z[7] -
413 x[0] *
x[5] *
y[4] * z[0] -
x[3] *
x[3] *
y[4] * z[7] +
414 2.0 *
x[2] * z[2] *
x[3] *
y[1];
415 s7 =
s8 -
x[5] *
x[5] *
y[4] * z[0] + 2.0 *
y[5] *
x[4] *
x[4] * z[0] -
416 2.0 * z[0] *
x[4] *
x[4] *
y[7] + 2.0 *
y[0] *
x[4] *
x[4] * z[7] -
417 2.0 * z[5] *
x[4] *
x[4] *
y[0] +
x[5] *
x[5] *
y[4] * z[7] -
418 x[5] *
x[5] *
y[7] * z[4] - 2.0 *
y[5] *
x[4] *
x[4] * z[7] +
419 2.0 * z[5] *
x[4] *
x[4] *
y[7] -
x[0] *
x[0] *
y[7] * z[3] +
420 y[2] *
x[0] *
x[0] * z[3] +
x[0] *
x[0] *
y[3] * z[7] -
421 x[5] *
x[1] *
y[4] * z[0] +
x[5] *
y[1] *
x[4] * z[0] -
422 x[4] *
y[0] *
x[3] * z[4];
423 s8 = -
x[4] *
y[1] *
x[0] * z[4] +
x[4] * z[1] *
x[0] *
y[4] +
424 x[4] *
x[0] *
y[3] * z[4] -
x[4] *
x[0] *
y[4] * z[3] +
425 x[4] *
x[1] *
y[0] * z[4] -
x[4] *
x[1] *
y[4] * z[0] +
426 x[4] * z[0] *
x[3] *
y[4] +
x[5] *
x[1] *
y[0] * z[4] +
427 x[1] * z[1] *
x[3] *
y[0] +
x[1] *
y[1] *
x[4] * z[0] -
428 x[5] * z[1] *
x[4] *
y[0] - 2.0 *
y[1] *
x[0] *
x[0] * z[4] +
429 2.0 * z[1] *
x[0] *
x[0] *
y[4] + 2.0 *
x[0] *
x[0] *
y[3] * z[4] -
430 2.0 * z[1] *
x[0] *
x[0] *
y[3];
431 s6 =
s8 - 2.0 *
x[0] *
x[0] *
y[4] * z[3] +
x[1] *
x[1] *
y[3] * z[0] +
432 x[1] *
x[1] *
y[0] * z[4] -
x[1] *
x[1] *
y[0] * z[3] -
433 x[1] *
x[1] *
y[4] * z[0] - z[1] *
x[4] *
x[4] *
y[0] +
434 y[0] *
x[4] *
x[4] * z[3] - z[0] *
x[4] *
x[4] *
y[3] +
435 y[1] *
x[4] *
x[4] * z[0] -
x[0] *
x[0] *
y[4] * z[7] -
436 y[5] *
x[0] *
x[0] * z[4] + z[5] *
x[0] *
x[0] *
y[4] +
437 x[5] *
x[5] *
y[0] * z[4] -
x[0] *
y[0] *
x[3] * z[7] +
438 x[0] * z[0] *
x[3] *
y[7] +
s7;
439 s8 =
s6 +
x[0] *
x[2] *
y[3] * z[0] -
x[0] *
x[2] *
y[0] * z[3] +
440 x[0] *
y[0] *
x[7] * z[3] -
x[0] *
y[2] *
x[3] * z[0] +
441 x[0] * z[2] *
x[3] *
y[0] -
x[0] * z[0] *
x[7] *
y[3] +
442 x[1] *
x[2] *
y[3] * z[0] - z[2] *
x[0] *
x[0] *
y[3] +
443 x[3] * z[2] *
x[6] *
y[3] -
x[3] *
x[2] *
y[3] * z[6] +
444 x[3] *
x[2] *
y[6] * z[3] -
x[3] *
y[2] *
x[6] * z[3] -
445 2.0 *
x[3] *
y[2] *
x[7] * z[3] + 2.0 *
x[3] * z[2] *
x[7] *
y[3];
446 s7 =
s8 + 2.0 *
x[4] *
y[5] *
x[7] * z[4] +
447 2.0 *
x[4] *
x[5] *
y[4] * z[7] - 2.0 *
x[4] * z[5] *
x[7] *
y[4] -
448 2.0 *
x[4] *
x[5] *
y[7] * z[4] +
x[5] *
y[5] *
x[7] * z[4] -
449 x[5] * z[5] *
x[7] *
y[4] -
x[5] *
y[5] *
x[4] * z[7] +
450 x[5] * z[5] *
x[4] *
y[7] + 2.0 *
x[3] *
x[2] *
y[7] * z[3] -
451 2.0 *
x[2] * z[2] *
x[1] *
y[3] + 2.0 *
x[4] * z[0] *
x[7] *
y[4] +
452 2.0 *
x[4] *
x[0] *
y[7] * z[4] + 2.0 *
x[4] *
x[5] *
y[0] * z[4] -
453 x[7] *
x[6] *
y[2] * z[7] - 2.0 *
x[3] *
x[2] *
y[3] * z[7] -
454 x[0] *
x[4] *
y[7] * z[3];
455 s8 =
x[0] *
x[3] *
y[7] * z[4] -
x[0] *
x[3] *
y[4] * z[7] +
456 x[0] *
x[4] *
y[3] * z[7] - 2.0 *
x[7] * z[6] *
x[3] *
y[7] +
457 x[3] *
x[7] *
y[4] * z[3] -
x[3] *
x[4] *
y[7] * z[3] -
458 x[3] *
x[7] *
y[3] * z[4] +
x[3] *
x[4] *
y[3] * z[7] +
459 2.0 *
x[2] *
y[2] *
x[1] * z[3] +
y[6] *
x[3] *
x[3] * z[7] -
460 z[6] *
x[3] *
x[3] *
y[7] -
x[1] * z[5] *
x[4] *
y[1] -
461 x[1] *
x[5] *
y[4] * z[1] -
x[1] * z[2] *
x[0] *
y[3] -
462 x[1] *
x[2] *
y[0] * z[3] +
x[1] *
y[2] *
x[0] * z[3];
463 s4 =
s8 +
x[1] *
x[5] *
y[1] * z[4] +
x[1] *
y[5] *
x[4] * z[1] +
464 x[4] *
y[0] *
x[7] * z[3] -
x[4] * z[0] *
x[7] *
y[3] -
465 x[4] *
x[4] *
y[7] * z[3] +
x[4] *
x[4] *
y[3] * z[7] +
466 x[3] * z[6] *
x[7] *
y[3] -
x[3] *
x[6] *
y[3] * z[7] +
467 x[3] *
x[6] *
y[7] * z[3] -
x[3] * z[6] *
x[2] *
y[7] -
468 x[3] *
y[6] *
x[7] * z[3] +
x[3] * z[6] *
x[7] *
y[2] +
469 x[3] *
y[6] *
x[2] * z[7] + 2.0 *
x[5] * z[5] *
x[4] *
y[6] +
s5 +
471 s8 =
s4 - 2.0 *
x[5] * z[5] *
x[6] *
y[4] -
x[5] * z[6] *
x[7] *
y[5] +
472 x[5] *
x[6] *
y[5] * z[7] -
x[5] *
x[6] *
y[7] * z[5] -
473 2.0 *
x[5] *
y[5] *
x[4] * z[6] + 2.0 *
x[5] *
y[5] *
x[6] * z[4] -
474 x[3] *
y[6] *
x[7] * z[2] +
x[4] *
x[7] *
y[4] * z[3] +
475 x[4] *
x[3] *
y[7] * z[4] -
x[4] *
x[7] *
y[3] * z[4] -
476 x[4] *
x[3] *
y[4] * z[7] - z[1] *
x[5] *
x[5] *
y[0] +
477 y[1] *
x[5] *
x[5] * z[0] +
x[4] *
y[6] *
x[7] * z[4];
478 s7 =
s8 -
x[4] *
x[6] *
y[7] * z[4] +
x[4] *
x[6] *
y[4] * z[7] -
479 x[4] * z[6] *
x[7] *
y[4] -
x[5] *
y[6] *
x[4] * z[7] -
480 x[5] *
x[6] *
y[7] * z[4] +
x[5] *
x[6] *
y[4] * z[7] +
481 x[5] * z[6] *
x[4] *
y[7] -
y[6] *
x[4] *
x[4] * z[7] +
482 z[6] *
x[4] *
x[4] *
y[7] +
x[7] *
x[5] *
y[4] * z[7] -
483 y[2] *
x[7] *
x[7] * z[3] + z[2] *
x[7] *
x[7] *
y[3] -
484 y[0] *
x[3] *
x[3] * z[4] -
y[1] *
x[3] *
x[3] * z[0] +
485 z[1] *
x[3] *
x[3] *
y[0];
486 s8 = z[0] *
x[3] *
x[3] *
y[4] -
x[2] *
y[1] *
x[3] * z[0] +
487 x[2] * z[1] *
x[3] *
y[0] +
x[3] *
y[1] *
x[0] * z[3] +
488 x[3] *
x[1] *
y[3] * z[0] +
x[3] *
x[0] *
y[3] * z[4] -
489 x[3] * z[1] *
x[0] *
y[3] -
x[3] *
x[0] *
y[4] * z[3] +
490 x[3] *
y[0] *
x[4] * z[3] -
x[3] * z[0] *
x[4] *
y[3] -
491 x[3] *
x[1] *
y[0] * z[3] +
x[3] * z[0] *
x[7] *
y[4] -
492 x[3] *
y[0] *
x[7] * z[4] + z[0] *
x[7] *
x[7] *
y[4] -
493 y[0] *
x[7] *
x[7] * z[4];
494 s6 =
s8 +
y[1] *
x[0] *
x[0] * z[2] - 2.0 *
y[2] *
x[3] *
x[3] * z[0] +
495 2.0 * z[2] *
x[3] *
x[3] *
y[0] - 2.0 *
x[1] *
x[1] *
y[0] * z[2] +
496 2.0 *
x[1] *
x[1] *
y[2] * z[0] -
y[2] *
x[3] *
x[3] * z[1] +
497 z[2] *
x[3] *
x[3] *
y[1] -
y[5] *
x[4] *
x[4] * z[6] +
498 z[5] *
x[4] *
x[4] *
y[6] +
x[7] *
x[0] *
y[7] * z[4] -
499 x[7] * z[0] *
x[4] *
y[7] -
x[7] *
x[0] *
y[4] * z[7] +
500 x[7] *
y[0] *
x[4] * z[7] -
x[0] *
x[1] *
y[0] * z[2] +
501 x[0] * z[1] *
x[2] *
y[0] +
s7;
502 s8 =
s6 +
x[0] *
x[1] *
y[2] * z[0] -
x[0] *
y[1] *
x[2] * z[0] -
503 x[3] * z[1] *
x[0] *
y[2] + 2.0 *
x[3] *
x[2] *
y[3] * z[0] +
504 y[0] *
x[7] *
x[7] * z[3] - z[0] *
x[7] *
x[7] *
y[3] -
505 2.0 *
x[3] * z[2] *
x[0] *
y[3] - 2.0 *
x[3] *
x[2] *
y[0] * z[3] +
506 2.0 *
x[3] *
y[2] *
x[0] * z[3] +
x[3] *
x[2] *
y[3] * z[1] -
507 x[3] *
x[2] *
y[1] * z[3] -
x[5] *
y[1] *
x[0] * z[5] +
508 x[3] *
y[1] *
x[0] * z[2] +
x[4] *
y[6] *
x[7] * z[5];
509 s7 =
s8 -
x[5] *
x[1] *
y[5] * z[0] + 2.0 *
x[1] * z[1] *
x[2] *
y[0] -
510 2.0 *
x[1] * z[1] *
x[0] *
y[2] +
x[1] *
x[2] *
y[3] * z[1] -
511 x[1] *
x[2] *
y[1] * z[3] + 2.0 *
x[1] *
y[1] *
x[0] * z[2] -
512 2.0 *
x[1] *
y[1] *
x[2] * z[0] - z[2] *
x[1] *
x[1] *
y[3] +
513 y[2] *
x[1] *
x[1] * z[3] +
y[5] *
x[7] *
x[7] * z[4] +
514 y[6] *
x[7] *
x[7] * z[5] +
x[7] *
x[6] *
y[7] * z[2] +
515 x[7] *
y[6] *
x[2] * z[7] -
x[7] * z[6] *
x[2] *
y[7] -
516 2.0 *
x[7] *
x[6] *
y[3] * z[7];
517 s8 =
s7 + 2.0 *
x[7] *
x[6] *
y[7] * z[3] +
518 2.0 *
x[7] *
y[6] *
x[3] * z[7] -
x[3] * z[2] *
x[1] *
y[3] +
519 x[3] *
y[2] *
x[1] * z[3] +
x[5] *
x[1] *
y[0] * z[5] +
520 x[4] *
y[5] *
x[6] * z[4] +
x[5] * z[1] *
x[0] *
y[5] -
521 x[4] * z[6] *
x[7] *
y[5] -
x[4] *
x[5] *
y[6] * z[4] +
522 x[4] *
x[5] *
y[4] * z[6] -
x[4] * z[5] *
x[6] *
y[4] -
523 x[1] *
y[2] *
x[3] * z[1] +
x[1] * z[2] *
x[3] *
y[1] -
524 x[2] *
x[1] *
y[0] * z[2] -
x[2] * z[1] *
x[0] *
y[2];
525 s5 =
s8 +
x[2] *
x[1] *
y[2] * z[0] -
x[2] * z[2] *
x[0] *
y[3] +
526 x[2] *
y[2] *
x[0] * z[3] -
x[2] *
y[2] *
x[3] * z[0] +
527 x[2] * z[2] *
x[3] *
y[0] +
x[2] *
y[1] *
x[0] * z[2] +
528 x[5] *
y[6] *
x[7] * z[5] +
x[6] *
y[5] *
x[7] * z[4] +
529 2.0 *
x[6] *
y[6] *
x[7] * z[5] -
x[7] *
y[0] *
x[3] * z[7] +
530 x[7] * z[0] *
x[3] *
y[7] -
x[7] *
x[0] *
y[7] * z[3] +
531 x[7] *
x[0] *
y[3] * z[7] + 2.0 *
x[7] *
x[7] *
y[4] * z[3] -
532 2.0 *
x[7] *
x[7] *
y[3] * z[4] - 2.0 *
x[1] *
x[1] *
y[2] * z[5];
533 s8 =
s5 - 2.0 *
x[7] *
x[4] *
y[7] * z[3] +
534 2.0 *
x[7] *
x[3] *
y[7] * z[4] - 2.0 *
x[7] *
x[3] *
y[4] * z[7] +
535 2.0 *
x[7] *
x[4] *
y[3] * z[7] + 2.0 *
x[1] *
x[1] *
y[5] * z[2] -
536 x[1] *
x[1] *
y[2] * z[6] +
x[1] *
x[1] *
y[6] * z[2] +
537 z[1] *
x[5] *
x[5] *
y[2] -
y[1] *
x[5] *
x[5] * z[2] -
538 x[1] *
x[1] *
y[6] * z[5] +
x[1] *
x[1] *
y[5] * z[6] +
539 x[5] *
x[5] *
y[6] * z[2] -
x[5] *
x[5] *
y[2] * z[6] -
540 2.0 *
y[1] *
x[5] *
x[5] * z[6];
541 s7 =
s8 + 2.0 * z[1] *
x[5] *
x[5] *
y[6] +
542 2.0 *
x[1] * z[1] *
x[5] *
y[2] + 2.0 *
x[1] *
y[1] *
x[2] * z[5] -
543 2.0 *
x[1] * z[1] *
x[2] *
y[5] - 2.0 *
x[1] *
y[1] *
x[5] * z[2] -
544 x[1] *
y[1] *
x[6] * z[2] -
x[1] * z[1] *
x[2] *
y[6] +
545 x[1] * z[1] *
x[6] *
y[2] +
x[1] *
y[1] *
x[2] * z[6] -
546 x[5] *
x[1] *
y[2] * z[5] +
x[5] *
y[1] *
x[2] * z[5] -
547 x[5] * z[1] *
x[2] *
y[5] +
x[5] *
x[1] *
y[5] * z[2] -
548 x[5] *
y[1] *
x[6] * z[2] -
x[5] *
x[1] *
y[2] * z[6];
549 s8 =
s7 +
x[5] *
x[1] *
y[6] * z[2] +
x[5] * z[1] *
x[6] *
y[2] +
550 x[1] *
x[2] *
y[5] * z[6] -
x[1] *
x[2] *
y[6] * z[5] -
551 x[1] * z[1] *
x[6] *
y[5] -
x[1] *
y[1] *
x[5] * z[6] +
552 x[1] * z[1] *
x[5] *
y[6] +
x[1] *
y[1] *
x[6] * z[5] -
553 x[5] *
x[6] *
y[5] * z[2] +
x[5] *
x[2] *
y[5] * z[6] -
554 x[5] *
x[2] *
y[6] * z[5] +
x[5] *
x[6] *
y[2] * z[5] -
555 2.0 *
x[5] * z[1] *
x[6] *
y[5] - 2.0 *
x[5] *
x[1] *
y[6] * z[5] +
556 2.0 *
x[5] *
x[1] *
y[5] * z[6];
557 s6 =
s8 + 2.0 *
x[5] *
y[1] *
x[6] * z[5] +
558 2.0 *
x[2] *
x[1] *
y[6] * z[2] + 2.0 *
x[2] * z[1] *
x[6] *
y[2] -
559 2.0 *
x[2] *
x[1] *
y[2] * z[6] +
x[2] *
x[5] *
y[6] * z[2] +
560 x[2] *
x[6] *
y[2] * z[5] -
x[2] *
x[5] *
y[2] * z[6] +
561 y[1] *
x[2] *
x[2] * z[5] - z[1] *
x[2] *
x[2] *
y[5] -
562 2.0 *
x[2] *
y[1] *
x[6] * z[2] -
x[2] *
x[6] *
y[5] * z[2] -
563 2.0 * z[1] *
x[2] *
x[2] *
y[6] +
x[2] *
x[2] *
y[5] * z[6] -
564 x[2] *
x[2] *
y[6] * z[5] + 2.0 *
y[1] *
x[2] *
x[2] * z[6] +
565 x[2] * z[1] *
x[5] *
y[2];
566 s8 =
s6 -
x[2] *
x[1] *
y[2] * z[5] +
x[2] *
x[1] *
y[5] * z[2] -
567 x[2] *
y[1] *
x[5] * z[2] +
x[6] *
y[1] *
x[2] * z[5] -
568 x[6] * z[1] *
x[2] *
y[5] - z[1] *
x[6] *
x[6] *
y[5] +
569 y[1] *
x[6] *
x[6] * z[5] -
y[1] *
x[6] *
x[6] * z[2] -
570 2.0 *
x[6] *
x[6] *
y[5] * z[2] + 2.0 *
x[6] *
x[6] *
y[2] * z[5] +
571 z[1] *
x[6] *
x[6] *
y[2] -
x[6] *
x[1] *
y[6] * z[5] -
572 x[6] *
y[1] *
x[5] * z[6] +
x[6] *
x[1] *
y[5] * z[6];
573 s7 =
s8 +
x[6] * z[1] *
x[5] *
y[6] -
x[6] * z[1] *
x[2] *
y[6] -
574 x[6] *
x[1] *
y[2] * z[6] + 2.0 *
x[6] *
x[5] *
y[6] * z[2] +
575 2.0 *
x[6] *
x[2] *
y[5] * z[6] - 2.0 *
x[6] *
x[2] *
y[6] * z[5] -
576 2.0 *
x[6] *
x[5] *
y[2] * z[6] +
x[6] *
x[1] *
y[6] * z[2] +
577 x[6] *
y[1] *
x[2] * z[6] -
x[2] *
x[2] *
y[3] * z[7] +
578 x[2] *
x[2] *
y[7] * z[3] -
x[2] * z[2] *
x[3] *
y[7] -
579 x[2] *
y[2] *
x[7] * z[3] +
x[2] * z[2] *
x[7] *
y[3] +
580 x[2] *
y[2] *
x[3] * z[7] -
x[6] *
x[6] *
y[3] * z[7];
581 s8 =
s7 +
x[6] *
x[6] *
y[7] * z[3] -
x[6] *
x[2] *
y[3] * z[7] +
582 x[6] *
x[2] *
y[7] * z[3] -
x[6] *
y[6] *
x[7] * z[3] +
583 x[6] *
y[6] *
x[3] * z[7] -
x[6] * z[6] *
x[3] *
y[7] +
584 x[6] * z[6] *
x[7] *
y[3] +
y[6] *
x[2] *
x[2] * z[7] -
585 z[6] *
x[2] *
x[2] *
y[7] + 2.0 *
x[2] *
x[2] *
y[6] * z[3] -
586 x[2] *
y[6] *
x[7] * z[2] - 2.0 *
x[2] *
y[2] *
x[6] * z[3] -
587 2.0 *
x[2] *
x[2] *
y[3] * z[6] + 2.0 *
x[2] *
y[2] *
x[3] * z[6] -
588 x[2] *
x[6] *
y[2] * z[7];
589 s3 =
s8 +
x[2] *
x[6] *
y[7] * z[2] +
x[2] * z[6] *
x[7] *
y[2] +
590 2.0 *
x[2] * z[2] *
x[6] *
y[3] - 2.0 *
x[2] * z[2] *
x[3] *
y[6] -
591 y[2] *
x[6] *
x[6] * z[3] - 2.0 *
x[6] *
x[6] *
y[2] * z[7] +
592 2.0 *
x[6] *
x[6] *
y[7] * z[2] + z[2] *
x[6] *
x[6] *
y[3] -
593 2.0 *
x[6] *
y[6] *
x[7] * z[2] +
x[6] *
y[2] *
x[3] * z[6] -
594 x[6] *
x[2] *
y[3] * z[6] + 2.0 *
x[6] * z[6] *
x[7] *
y[2] +
595 2.0 *
x[6] *
y[6] *
x[2] * z[7] - 2.0 *
x[6] * z[6] *
x[2] *
y[7] +
596 x[6] *
x[2] *
y[6] * z[3] -
x[6] * z[2] *
x[3] *
y[6];
597 s8 =
y[1] *
x[0] * z[3] +
x[1] *
y[3] * z[0] -
y[0] *
x[3] * z[7] -
598 x[1] *
y[5] * z[0] -
y[0] *
x[3] * z[4] -
x[1] *
y[0] * z[2] +
599 z[1] *
x[2] *
y[0] -
y[1] *
x[0] * z[5] - z[1] *
x[0] *
y[2] -
600 y[1] *
x[0] * z[4] + z[1] *
x[5] *
y[2] + z[0] *
x[7] *
y[4] +
601 z[0] *
x[3] *
y[7] + z[1] *
x[0] *
y[4] -
x[1] *
y[2] * z[5] +
602 x[2] *
y[3] * z[0] +
y[1] *
x[2] * z[5] -
x[2] *
y[3] * z[7];
603 s7 =
s8 - z[1] *
x[2] *
y[5] -
y[1] *
x[3] * z[0] -
x[0] *
y[7] * z[3] -
604 z[1] *
x[0] *
y[3] +
y[5] *
x[4] * z[0] -
x[0] *
y[4] * z[3] +
605 y[5] *
x[7] * z[4] - z[0] *
x[4] *
y[3] +
x[1] *
y[0] * z[4] -
606 z[2] *
x[3] *
y[7] -
y[6] *
x[7] * z[2] +
x[1] *
y[5] * z[2] +
607 y[6] *
x[7] * z[5] +
x[0] *
y[7] * z[4] +
x[1] *
y[2] * z[0] -
608 z[1] *
x[4] *
y[0] - z[0] *
x[4] *
y[7] - z[2] *
x[0] *
y[3];
609 s8 =
x[5] *
y[0] * z[4] + z[1] *
x[0] *
y[5] -
x[2] *
y[0] * z[3] -
610 z[1] *
x[5] *
y[0] +
y[1] *
x[5] * z[0] -
x[1] *
y[0] * z[3] -
611 x[1] *
y[4] * z[0] -
y[1] *
x[5] * z[2] +
x[2] *
y[7] * z[3] +
612 y[0] *
x[4] * z[3] -
x[0] *
y[4] * z[7] +
x[1] *
y[0] * z[5] -
613 y[1] *
x[6] * z[2] -
y[2] *
x[6] * z[3] +
y[0] *
x[7] * z[3] -
614 y[2] *
x[7] * z[3] + z[2] *
x[7] *
y[3] +
y[2] *
x[0] * z[3];
615 s6 =
s8 +
y[2] *
x[3] * z[7] -
y[2] *
x[3] * z[0] -
x[6] *
y[5] * z[2] -
616 y[5] *
x[0] * z[4] + z[2] *
x[3] *
y[0] +
x[2] *
y[3] * z[1] +
617 x[0] *
y[3] * z[7] -
x[2] *
y[1] * z[3] +
y[1] *
x[4] * z[0] +
618 y[1] *
x[0] * z[2] - z[1] *
x[2] *
y[6] +
y[2] *
x[3] * z[6] -
619 y[1] *
x[2] * z[0] + z[1] *
x[3] *
y[0] -
x[1] *
y[2] * z[6] -
620 x[2] *
y[3] * z[6] +
x[0] *
y[3] * z[4] + z[0] *
x[3] *
y[4] +
s7;
621 s8 =
x[5] *
y[4] * z[7] +
s6 +
y[5] *
x[6] * z[4] -
y[5] *
x[4] * z[6] +
622 z[6] *
x[5] *
y[7] -
x[6] *
y[2] * z[7] -
x[6] *
y[7] * z[5] +
623 x[5] *
y[6] * z[2] +
x[6] *
y[5] * z[7] +
x[6] *
y[7] * z[2] +
624 y[6] *
x[7] * z[4] -
y[6] *
x[4] * z[7] -
y[6] *
x[7] * z[3] +
625 z[6] *
x[7] *
y[2] +
x[2] *
y[5] * z[6] -
x[2] *
y[6] * z[5] +
626 y[6] *
x[2] * z[7] +
x[6] *
y[2] * z[5];
627 s7 =
s8 -
x[5] *
y[2] * z[6] - z[6] *
x[7] *
y[5] - z[5] *
x[7] *
y[4] +
628 z[5] *
x[0] *
y[4] -
y[5] *
x[4] * z[7] +
y[0] *
x[4] * z[7] -
629 z[6] *
x[2] *
y[7] -
x[5] *
y[4] * z[0] -
x[5] *
y[7] * z[4] -
630 y[0] *
x[7] * z[4] +
y[5] *
x[4] * z[1] -
x[6] *
y[7] * z[4] +
631 x[7] *
y[4] * z[3] -
x[4] *
y[7] * z[3] +
x[3] *
y[7] * z[4] -
632 x[7] *
y[3] * z[4] -
x[6] *
y[3] * z[7] +
x[6] *
y[4] * z[7];
633 s8 = -
x[3] *
y[4] * z[7] +
x[4] *
y[3] * z[7] - z[6] *
x[7] *
y[4] -
634 z[1] *
x[6] *
y[5] +
x[6] *
y[7] * z[3] -
x[1] *
y[6] * z[5] -
635 y[1] *
x[5] * z[6] + z[5] *
x[4] *
y[7] - z[5] *
x[4] *
y[0] +
636 x[1] *
y[5] * z[6] -
y[6] *
x[5] * z[7] -
y[2] *
x[3] * z[1] +
637 z[1] *
x[5] *
y[6] -
y[5] *
x[1] * z[4] + z[6] *
x[4] *
y[7] +
638 x[5] *
y[1] * z[4] -
x[5] *
y[6] * z[4] +
y[6] *
x[3] * z[7] -
640 s5 =
s8 +
x[5] *
y[4] * z[6] + z[5] *
x[1] *
y[4] +
y[1] *
x[6] * z[5] -
641 z[6] *
x[3] *
y[7] + z[6] *
x[7] *
y[3] - z[5] *
x[6] *
y[4] -
642 z[5] *
x[4] *
y[1] + z[5] *
x[4] *
y[6] +
x[1] *
y[6] * z[2] +
643 x[2] *
y[6] * z[3] + z[2] *
x[6] *
y[3] + z[1] *
x[6] *
y[2] +
644 z[2] *
x[3] *
y[1] - z[2] *
x[1] *
y[3] - z[2] *
x[3] *
y[6] +
645 y[2] *
x[1] * z[3] +
y[1] *
x[2] * z[6] - z[0] *
x[7] *
y[3] +
s7;
650 s8 = 2.0 *
x[1] *
y[0] *
y[0] * z[4] +
x[5] *
y[0] *
y[0] * z[4] -
651 x[1] *
y[4] *
y[4] * z[0] + z[1] *
x[0] *
y[4] *
y[4] +
652 x[1] *
y[0] *
y[0] * z[5] - z[1] *
x[5] *
y[0] *
y[0] -
653 2.0 * z[1] *
x[4] *
y[0] *
y[0] + 2.0 * z[1] *
x[3] *
y[0] *
y[0] +
654 z[2] *
x[3] *
y[0] *
y[0] +
y[0] *
y[0] *
x[7] * z[3] +
655 2.0 *
y[0] *
y[0] *
x[4] * z[3] - 2.0 *
x[1] *
y[0] *
y[0] * z[3] -
656 2.0 *
x[5] *
y[4] *
y[4] * z[0] + 2.0 * z[5] *
x[0] *
y[4] *
y[4] +
657 2.0 *
y[4] *
y[5] *
x[7] * z[4];
658 s7 =
s8 -
x[3] *
y[4] *
y[4] * z[7] +
x[7] *
y[4] *
y[4] * z[3] +
659 z[0] *
x[3] *
y[4] *
y[4] - 2.0 *
x[0] *
y[4] *
y[4] * z[7] -
660 y[1] *
x[1] *
y[4] * z[0] -
x[0] *
y[4] *
y[4] * z[3] +
661 2.0 * z[0] *
x[7] *
y[4] *
y[4] +
y[4] * z[6] *
x[4] *
y[7] -
662 y[0] *
y[0] *
x[7] * z[4] +
y[0] *
y[0] *
x[4] * z[7] +
663 2.0 *
y[4] * z[5] *
x[4] *
y[7] - 2.0 *
y[4] *
x[5] *
y[7] * z[4] -
664 y[4] *
x[6] *
y[7] * z[4] -
y[4] *
y[6] *
x[4] * z[7] -
665 2.0 *
y[4] *
y[5] *
x[4] * z[7];
666 s8 =
y[4] *
y[6] *
x[7] * z[4] -
y[7] *
y[2] *
x[7] * z[3] +
667 y[7] * z[2] *
x[7] *
y[3] +
y[7] *
y[2] *
x[3] * z[7] +
668 2.0 *
x[5] *
y[4] *
y[4] * z[7] -
y[7] *
x[2] *
y[3] * z[7] -
669 y[0] * z[0] *
x[4] *
y[7] + z[6] *
x[7] *
y[3] *
y[3] -
670 y[0] *
x[0] *
y[4] * z[7] +
y[0] *
x[0] *
y[7] * z[4] -
671 2.0 *
x[2] *
y[3] *
y[3] * z[7] - z[5] *
x[4] *
y[0] *
y[0] +
672 y[0] * z[0] *
x[7] *
y[4] - 2.0 * z[6] *
x[3] *
y[7] *
y[7] +
673 z[1] *
x[2] *
y[0] *
y[0];
674 s6 =
s8 +
y[4] *
y[0] *
x[4] * z[3] - 2.0 *
y[4] * z[0] *
x[4] *
y[7] +
675 2.0 *
y[4] *
x[0] *
y[7] * z[4] -
y[4] * z[0] *
x[4] *
y[3] -
676 y[4] *
x[0] *
y[7] * z[3] +
y[4] * z[0] *
x[3] *
y[7] -
677 y[4] *
y[0] *
x[3] * z[4] +
y[0] *
x[4] *
y[3] * z[7] -
678 y[0] *
x[7] *
y[3] * z[4] -
y[0] *
x[3] *
y[4] * z[7] +
679 y[0] *
x[7] *
y[4] * z[3] +
x[2] *
y[7] *
y[7] * z[3] -
680 z[2] *
x[3] *
y[7] *
y[7] - 2.0 * z[2] *
x[0] *
y[3] *
y[3] +
681 2.0 *
y[0] * z[1] *
x[0] *
y[4] +
s7;
682 s8 = -2.0 *
y[0] *
y[1] *
x[0] * z[4] -
y[0] *
y[1] *
x[0] * z[5] -
683 y[0] *
y[0] *
x[3] * z[7] - z[1] *
x[0] *
y[3] *
y[3] -
684 y[0] *
x[1] *
y[5] * z[0] - 2.0 * z[0] *
x[7] *
y[3] *
y[3] +
685 x[0] *
y[3] *
y[3] * z[4] + 2.0 *
x[0] *
y[3] *
y[3] * z[7] -
686 z[0] *
x[4] *
y[3] *
y[3] + 2.0 *
x[2] *
y[3] *
y[3] * z[0] +
687 x[1] *
y[3] *
y[3] * z[0] + 2.0 *
y[7] * z[6] *
x[7] *
y[3] +
688 2.0 *
y[7] *
y[6] *
x[3] * z[7] - 2.0 *
y[7] *
y[6] *
x[7] * z[3] -
689 2.0 *
y[7] *
x[6] *
y[3] * z[7];
690 s7 =
s8 +
y[4] *
x[4] *
y[3] * z[7] -
y[4] *
x[4] *
y[7] * z[3] +
691 y[4] *
x[3] *
y[7] * z[4] -
y[4] *
x[7] *
y[3] * z[4] +
692 2.0 *
y[4] *
y[0] *
x[4] * z[7] - 2.0 *
y[4] *
y[0] *
x[7] * z[4] +
693 2.0 *
x[6] *
y[7] *
y[7] * z[3] +
y[4] *
x[0] *
y[3] * z[4] +
694 y[0] *
y[1] *
x[5] * z[0] +
y[0] * z[1] *
x[0] *
y[5] -
695 x[2] *
y[0] *
y[0] * z[3] +
x[4] *
y[3] *
y[3] * z[7] -
696 x[7] *
y[3] *
y[3] * z[4] -
x[5] *
y[4] *
y[4] * z[1] +
697 y[3] * z[0] *
x[3] *
y[4];
698 s8 =
y[3] *
y[0] *
x[4] * z[3] + 2.0 *
y[3] *
y[0] *
x[7] * z[3] +
699 2.0 *
y[3] *
y[2] *
x[0] * z[3] - 2.0 *
y[3] *
y[2] *
x[3] * z[0] +
700 2.0 *
y[3] * z[2] *
x[3] *
y[0] +
y[3] * z[1] *
x[3] *
y[0] -
701 2.0 *
y[3] *
x[2] *
y[0] * z[3] -
y[3] *
x[1] *
y[0] * z[3] -
702 y[3] *
y[1] *
x[3] * z[0] - 2.0 *
y[3] *
x[0] *
y[7] * z[3] -
703 y[3] *
x[0] *
y[4] * z[3] - 2.0 *
y[3] *
y[0] *
x[3] * z[7] -
704 y[3] *
y[0] *
x[3] * z[4] + 2.0 *
y[3] * z[0] *
x[3] *
y[7] +
705 y[3] *
y[1] *
x[0] * z[3] + z[5] *
x[1] *
y[4] *
y[4];
706 s5 =
s8 - 2.0 *
y[0] *
y[0] *
x[3] * z[4] -
707 2.0 *
y[0] *
x[1] *
y[4] * z[0] +
y[3] *
x[7] *
y[4] * z[3] -
708 y[3] *
x[4] *
y[7] * z[3] +
y[3] *
x[3] *
y[7] * z[4] -
709 y[3] *
x[3] *
y[4] * z[7] +
y[3] *
x[0] *
y[7] * z[4] -
710 y[3] * z[0] *
x[4] *
y[7] - 2.0 *
y[4] *
y[5] *
x[0] * z[4] +
s6 +
711 y[7] *
x[0] *
y[3] * z[7] -
y[7] * z[0] *
x[7] *
y[3] +
712 y[7] *
y[0] *
x[7] * z[3] -
y[7] *
y[0] *
x[3] * z[7] +
713 2.0 *
y[0] *
y[1] *
x[4] * z[0] +
s7;
714 s8 = -2.0 *
y[7] *
x[7] *
y[3] * z[4] -
715 2.0 *
y[7] *
x[3] *
y[4] * z[7] + 2.0 *
y[7] *
x[4] *
y[3] * z[7] +
716 y[7] *
y[0] *
x[4] * z[7] -
y[7] *
y[0] *
x[7] * z[4] +
717 2.0 *
y[7] *
x[7] *
y[4] * z[3] -
y[7] *
x[0] *
y[4] * z[7] +
718 y[7] * z[0] *
x[7] *
y[4] + z[5] *
x[4] *
y[7] *
y[7] +
719 2.0 * z[6] *
x[4] *
y[7] *
y[7] -
x[5] *
y[7] *
y[7] * z[4] -
720 2.0 *
x[6] *
y[7] *
y[7] * z[4] + 2.0 *
y[7] *
x[6] *
y[4] * z[7] -
721 2.0 *
y[7] * z[6] *
x[7] *
y[4] + 2.0 *
y[7] *
y[6] *
x[7] * z[4];
722 s7 =
s8 - 2.0 *
y[7] *
y[6] *
x[4] * z[7] -
y[7] * z[5] *
x[7] *
y[4] -
723 y[7] *
y[5] *
x[4] * z[7] -
x[0] *
y[7] *
y[7] * z[3] +
724 z[0] *
x[3] *
y[7] *
y[7] +
y[7] *
x[5] *
y[4] * z[7] +
725 y[7] *
y[5] *
x[7] * z[4] -
y[4] *
x[1] *
y[5] * z[0] -
726 x[1] *
y[0] *
y[0] * z[2] -
y[4] *
y[5] *
x[1] * z[4] -
727 2.0 *
y[4] * z[5] *
x[4] *
y[0] -
y[4] *
y[1] *
x[0] * z[4] +
728 y[4] *
y[5] *
x[4] * z[1] +
y[0] * z[0] *
x[3] *
y[7] -
729 y[0] * z[1] *
x[0] *
y[2];
730 s8 = 2.0 *
y[0] *
x[1] *
y[3] * z[0] +
y[4] *
y[1] *
x[4] * z[0] +
731 2.0 *
y[0] *
y[1] *
x[0] * z[3] +
y[4] *
x[1] *
y[0] * z[5] -
732 y[4] * z[1] *
x[5] *
y[0] +
y[4] * z[1] *
x[0] *
y[5] -
733 y[4] * z[1] *
x[4] *
y[0] +
y[4] *
x[1] *
y[0] * z[4] -
734 y[4] * z[5] *
x[4] *
y[1] +
x[5] *
y[4] *
y[4] * z[6] -
735 z[5] *
x[6] *
y[4] *
y[4] +
y[4] *
x[5] *
y[1] * z[4] -
736 y[0] * z[2] *
x[0] *
y[3] +
y[0] *
y[5] *
x[4] * z[0] +
737 y[0] *
x[1] *
y[2] * z[0];
738 s6 =
s8 - 2.0 *
y[0] * z[0] *
x[4] *
y[3] -
739 2.0 *
y[0] *
x[0] *
y[4] * z[3] - 2.0 *
y[0] * z[1] *
x[0] *
y[3] -
740 y[0] *
x[0] *
y[7] * z[3] - 2.0 *
y[0] *
y[1] *
x[3] * z[0] +
741 y[0] *
x[2] *
y[3] * z[0] -
y[0] *
y[1] *
x[2] * z[0] +
742 y[0] *
y[1] *
x[0] * z[2] -
y[0] *
x[2] *
y[1] * z[3] +
743 y[0] *
x[0] *
y[3] * z[7] +
y[0] *
x[2] *
y[3] * z[1] -
744 y[0] *
y[2] *
x[3] * z[0] +
y[0] *
y[2] *
x[0] * z[3] -
745 y[0] *
y[5] *
x[0] * z[4] -
y[4] *
y[5] *
x[4] * z[6] +
s7;
746 s8 =
s6 +
y[4] * z[6] *
x[5] *
y[7] -
y[4] *
x[6] *
y[7] * z[5] +
747 y[4] *
x[6] *
y[5] * z[7] -
y[4] * z[6] *
x[7] *
y[5] -
748 y[4] *
x[5] *
y[6] * z[4] +
y[4] * z[5] *
x[4] *
y[6] +
749 y[4] *
y[5] *
x[6] * z[4] - 2.0 *
y[1] *
y[1] *
x[0] * z[5] +
750 2.0 *
y[1] *
y[1] *
x[5] * z[0] - 2.0 *
y[2] *
y[2] *
x[6] * z[3] +
751 x[5] *
y[1] *
y[1] * z[4] - z[5] *
x[4] *
y[1] *
y[1] -
752 x[6] *
y[2] *
y[2] * z[7] + z[6] *
x[7] *
y[2] *
y[2];
753 s7 =
s8 -
x[1] *
y[5] *
y[5] * z[0] + z[1] *
x[0] *
y[5] *
y[5] +
754 y[1] *
y[5] *
x[4] * z[1] -
y[1] *
y[5] *
x[1] * z[4] -
755 2.0 *
y[2] * z[2] *
x[3] *
y[6] + 2.0 *
y[1] * z[1] *
x[0] *
y[5] -
756 2.0 *
y[1] * z[1] *
x[5] *
y[0] + 2.0 *
y[1] *
x[1] *
y[0] * z[5] -
757 y[2] *
x[2] *
y[3] * z[7] -
y[2] * z[2] *
x[3] *
y[7] +
758 y[2] *
x[2] *
y[7] * z[3] +
y[2] * z[2] *
x[7] *
y[3] -
759 2.0 *
y[2] *
x[2] *
y[3] * z[6] + 2.0 *
y[2] *
x[2] *
y[6] * z[3] +
760 2.0 *
y[2] * z[2] *
x[6] *
y[3] -
y[3] *
y[2] *
x[6] * z[3];
761 s8 =
y[3] *
y[2] *
x[3] * z[6] +
y[3] *
x[2] *
y[6] * z[3] -
762 y[3] * z[2] *
x[3] *
y[6] -
y[2] *
y[2] *
x[7] * z[3] +
763 2.0 *
y[2] *
y[2] *
x[3] * z[6] +
y[2] *
y[2] *
x[3] * z[7] -
764 2.0 *
y[1] *
x[1] *
y[5] * z[0] -
x[2] *
y[3] *
y[3] * z[6] +
765 z[2] *
x[6] *
y[3] *
y[3] + 2.0 *
y[6] *
x[2] *
y[5] * z[6] +
766 2.0 *
y[6] *
x[6] *
y[2] * z[5] - 2.0 *
y[6] *
x[5] *
y[2] * z[6] +
767 2.0 *
y[3] *
x[2] *
y[7] * z[3] - 2.0 *
y[3] * z[2] *
x[3] *
y[7] -
768 y[0] * z[0] *
x[7] *
y[3] -
y[0] * z[2] *
x[1] *
y[3];
769 s4 =
s8 -
y[2] *
y[6] *
x[7] * z[2] +
y[0] * z[2] *
x[3] *
y[1] +
770 y[1] * z[5] *
x[1] *
y[4] -
y[1] *
x[5] *
y[4] * z[1] +
771 2.0 *
y[0] * z[0] *
x[3] *
y[4] + 2.0 *
y[0] *
x[0] *
y[3] * z[4] +
772 2.0 * z[2] *
x[7] *
y[3] *
y[3] - 2.0 * z[5] *
x[7] *
y[4] *
y[4] +
773 x[6] *
y[4] *
y[4] * z[7] - z[6] *
x[7] *
y[4] *
y[4] +
774 y[1] *
y[1] *
x[0] * z[3] +
y[3] *
x[6] *
y[7] * z[2] -
775 y[3] * z[6] *
x[2] *
y[7] + 2.0 *
y[3] *
y[2] *
x[3] * z[7] +
s5 +
777 s8 =
s4 +
y[2] *
x[6] *
y[7] * z[2] -
y[2] *
y[6] *
x[7] * z[3] +
778 y[2] *
y[6] *
x[2] * z[7] -
y[2] * z[6] *
x[2] *
y[7] -
779 y[2] *
x[6] *
y[3] * z[7] +
y[2] *
y[6] *
x[3] * z[7] +
780 y[2] * z[6] *
x[7] *
y[3] - 2.0 *
y[3] *
y[2] *
x[7] * z[3] -
781 x[6] *
y[3] *
y[3] * z[7] +
y[1] *
y[1] *
x[4] * z[0] -
782 y[1] *
y[1] *
x[3] * z[0] +
x[2] *
y[6] *
y[6] * z[3] -
783 z[2] *
x[3] *
y[6] *
y[6] -
y[1] *
y[1] *
x[0] * z[4];
784 s7 =
s8 +
y[5] *
x[1] *
y[0] * z[5] +
y[6] *
x[2] *
y[7] * z[3] -
785 y[6] *
y[2] *
x[6] * z[3] +
y[6] *
y[2] *
x[3] * z[6] -
786 y[6] *
x[2] *
y[3] * z[6] +
y[6] * z[2] *
x[6] *
y[3] -
787 y[5] *
y[1] *
x[0] * z[5] -
y[5] * z[1] *
x[5] *
y[0] +
788 y[5] *
y[1] *
x[5] * z[0] -
y[6] * z[2] *
x[3] *
y[7] -
789 y[7] *
y[6] *
x[7] * z[2] + 2.0 *
y[6] *
y[6] *
x[2] * z[7] +
790 y[6] *
y[6] *
x[3] * z[7] +
x[6] *
y[7] *
y[7] * z[2] -
791 z[6] *
x[2] *
y[7] *
y[7];
792 s8 = -
x[2] *
y[1] *
y[1] * z[3] + 2.0 *
y[1] *
y[1] *
x[0] * z[2] -
793 2.0 *
y[1] *
y[1] *
x[2] * z[0] + z[2] *
x[3] *
y[1] *
y[1] -
794 z[1] *
x[0] *
y[2] *
y[2] +
x[1] *
y[2] *
y[2] * z[0] +
795 y[2] *
y[2] *
x[0] * z[3] -
y[2] *
y[2] *
x[3] * z[0] -
796 2.0 *
y[2] *
y[2] *
x[3] * z[1] +
y[1] *
x[1] *
y[3] * z[0] -
797 2.0 *
y[6] *
y[6] *
x[7] * z[2] + 2.0 *
y[5] *
y[5] *
x[4] * z[1] -
798 2.0 *
y[5] *
y[5] *
x[1] * z[4] -
y[6] *
y[6] *
x[7] * z[3] -
799 2.0 *
y[1] *
x[1] *
y[0] * z[2];
800 s6 =
s8 + 2.0 *
y[1] * z[1] *
x[2] *
y[0] -
801 2.0 *
y[1] * z[1] *
x[0] *
y[2] + 2.0 *
y[1] *
x[1] *
y[2] * z[0] +
802 y[1] *
x[2] *
y[3] * z[1] -
y[1] *
y[2] *
x[3] * z[1] -
803 y[1] * z[2] *
x[1] *
y[3] +
y[1] *
y[2] *
x[1] * z[3] -
804 y[2] *
x[1] *
y[0] * z[2] +
y[2] * z[1] *
x[2] *
y[0] +
805 y[2] *
x[2] *
y[3] * z[0] -
y[7] *
x[6] *
y[2] * z[7] +
806 y[7] * z[6] *
x[7] *
y[2] +
y[7] *
y[6] *
x[2] * z[7] -
807 y[6] *
x[6] *
y[3] * z[7] +
y[6] *
x[6] *
y[7] * z[3] +
s7;
808 s8 =
s6 -
y[6] * z[6] *
x[3] *
y[7] +
y[6] * z[6] *
x[7] *
y[3] +
809 2.0 *
y[2] *
y[2] *
x[1] * z[3] +
x[2] *
y[3] *
y[3] * z[1] -
810 z[2] *
x[1] *
y[3] *
y[3] +
y[1] *
x[1] *
y[0] * z[4] +
811 y[1] * z[1] *
x[3] *
y[0] -
y[1] *
x[1] *
y[0] * z[3] +
812 2.0 *
y[5] *
x[5] *
y[1] * z[4] - 2.0 *
y[5] *
x[5] *
y[4] * z[1] +
813 2.0 *
y[5] * z[5] *
x[1] *
y[4] - 2.0 *
y[5] * z[5] *
x[4] *
y[1] -
814 2.0 *
y[6] *
x[6] *
y[2] * z[7] + 2.0 *
y[6] *
x[6] *
y[7] * z[2];
815 s7 =
s8 + 2.0 *
y[6] * z[6] *
x[7] *
y[2] -
816 2.0 *
y[6] * z[6] *
x[2] *
y[7] -
y[1] * z[1] *
x[4] *
y[0] +
817 y[1] * z[1] *
x[0] *
y[4] -
y[1] * z[1] *
x[0] *
y[3] +
818 2.0 *
y[6] *
y[6] *
x[7] * z[5] + 2.0 *
y[5] *
y[5] *
x[6] * z[4] -
819 2.0 *
y[5] *
y[5] *
x[4] * z[6] +
x[6] *
y[5] *
y[5] * z[7] -
820 y[3] *
x[2] *
y[1] * z[3] -
y[3] *
y[2] *
x[3] * z[1] +
821 y[3] * z[2] *
x[3] *
y[1] +
y[3] *
y[2] *
x[1] * z[3] -
822 y[2] *
x[2] *
y[0] * z[3] +
y[2] * z[2] *
x[3] *
y[0];
823 s8 =
s7 + 2.0 *
y[2] *
x[2] *
y[3] * z[1] -
824 2.0 *
y[2] *
x[2] *
y[1] * z[3] +
y[2] *
y[1] *
x[0] * z[2] -
825 y[2] *
y[1] *
x[2] * z[0] + 2.0 *
y[2] * z[2] *
x[3] *
y[1] -
826 2.0 *
y[2] * z[2] *
x[1] *
y[3] -
y[2] * z[2] *
x[0] *
y[3] +
827 y[5] * z[6] *
x[5] *
y[7] -
y[5] *
x[6] *
y[7] * z[5] -
828 y[5] *
y[6] *
x[4] * z[7] -
y[5] *
y[6] *
x[5] * z[7] -
829 2.0 *
y[5] *
x[5] *
y[6] * z[4] + 2.0 *
y[5] *
x[5] *
y[4] * z[6] -
830 2.0 *
y[5] * z[5] *
x[6] *
y[4] + 2.0 *
y[5] * z[5] *
x[4] *
y[6];
831 s5 =
s8 -
y[1] *
y[5] *
x[0] * z[4] - z[6] *
x[7] *
y[5] *
y[5] +
832 y[6] *
y[6] *
x[7] * z[4] -
y[6] *
y[6] *
x[4] * z[7] -
833 2.0 *
y[6] *
y[6] *
x[5] * z[7] -
x[5] *
y[6] *
y[6] * z[4] +
834 z[5] *
x[4] *
y[6] *
y[6] + z[6] *
x[5] *
y[7] *
y[7] -
835 x[6] *
y[7] *
y[7] * z[5] +
y[1] *
y[5] *
x[4] * z[0] +
836 y[7] *
y[6] *
x[7] * z[5] +
y[6] *
y[5] *
x[7] * z[4] +
837 y[5] *
y[6] *
x[7] * z[5] +
y[6] *
y[5] *
x[6] * z[4] -
838 y[6] *
y[5] *
x[4] * z[6] + 2.0 *
y[6] * z[6] *
x[5] *
y[7];
839 s8 =
s5 - 2.0 *
y[6] *
x[6] *
y[7] * z[5] +
840 2.0 *
y[6] *
x[6] *
y[5] * z[7] - 2.0 *
y[6] * z[6] *
x[7] *
y[5] -
841 y[6] *
x[5] *
y[7] * z[4] -
y[6] *
x[6] *
y[7] * z[4] +
842 y[6] *
x[6] *
y[4] * z[7] -
y[6] * z[6] *
x[7] *
y[4] +
843 y[6] * z[5] *
x[4] *
y[7] +
y[6] * z[6] *
x[4] *
y[7] +
844 y[6] *
x[5] *
y[4] * z[6] -
y[6] * z[5] *
x[6] *
y[4] +
845 y[7] *
x[6] *
y[5] * z[7] -
y[7] * z[6] *
x[7] *
y[5] -
846 2.0 *
y[6] *
x[6] *
y[5] * z[2];
847 s7 =
s8 -
y[7] *
y[6] *
x[5] * z[7] + 2.0 *
y[4] *
y[5] *
x[4] * z[0] +
848 2.0 *
x[3] *
y[7] *
y[7] * z[4] - 2.0 *
x[4] *
y[7] *
y[7] * z[3] -
849 z[0] *
x[4] *
y[7] *
y[7] +
x[0] *
y[7] *
y[7] * z[4] -
850 y[0] * z[5] *
x[4] *
y[1] +
y[0] *
x[5] *
y[1] * z[4] -
851 y[0] *
x[5] *
y[4] * z[0] +
y[0] * z[5] *
x[0] *
y[4] -
852 y[5] *
y[5] *
x[0] * z[4] +
y[5] *
y[5] *
x[4] * z[0] +
853 2.0 *
y[1] *
y[1] *
x[2] * z[5] - 2.0 *
y[1] *
y[1] *
x[5] * z[2] +
854 z[1] *
x[5] *
y[2] *
y[2];
855 s8 =
s7 -
x[1] *
y[2] *
y[2] * z[5] -
y[5] * z[5] *
x[4] *
y[0] +
856 y[5] * z[5] *
x[0] *
y[4] -
y[5] *
x[5] *
y[4] * z[0] -
857 y[2] *
x[1] *
y[6] * z[5] -
y[2] *
y[1] *
x[5] * z[6] +
858 y[2] * z[1] *
x[5] *
y[6] +
y[2] *
y[1] *
x[6] * z[5] -
859 y[1] * z[1] *
x[6] *
y[5] -
y[1] *
x[1] *
y[6] * z[5] +
860 y[1] *
x[1] *
y[5] * z[6] +
y[1] * z[1] *
x[5] *
y[6] +
861 y[5] *
x[5] *
y[0] * z[4] +
y[2] *
y[1] *
x[2] * z[5] -
862 y[2] * z[1] *
x[2] *
y[5];
863 s6 =
s8 +
y[2] *
x[1] *
y[5] * z[2] -
y[2] *
y[1] *
x[5] * z[2] -
864 y[1] *
y[1] *
x[5] * z[6] +
y[1] *
y[1] *
x[6] * z[5] -
865 z[1] *
x[2] *
y[5] *
y[5] +
x[1] *
y[5] *
y[5] * z[2] +
866 2.0 *
y[1] * z[1] *
x[5] *
y[2] - 2.0 *
y[1] *
x[1] *
y[2] * z[5] -
867 2.0 *
y[1] * z[1] *
x[2] *
y[5] + 2.0 *
y[1] *
x[1] *
y[5] * z[2] -
868 y[1] *
y[1] *
x[6] * z[2] +
y[1] *
y[1] *
x[2] * z[6] -
869 2.0 *
y[5] *
x[1] *
y[6] * z[5] - 2.0 *
y[5] *
y[1] *
x[5] * z[6] +
870 2.0 *
y[5] * z[1] *
x[5] *
y[6] + 2.0 *
y[5] *
y[1] *
x[6] * z[5];
871 s8 =
s6 -
y[6] * z[1] *
x[6] *
y[5] -
y[6] *
y[1] *
x[5] * z[6] +
872 y[6] *
x[1] *
y[5] * z[6] +
y[6] *
y[1] *
x[6] * z[5] -
873 2.0 * z[1] *
x[6] *
y[5] *
y[5] + 2.0 *
x[1] *
y[5] *
y[5] * z[6] -
874 x[1] *
y[6] *
y[6] * z[5] + z[1] *
x[5] *
y[6] *
y[6] +
875 y[5] * z[1] *
x[5] *
y[2] -
y[5] *
x[1] *
y[2] * z[5] +
876 y[5] *
y[1] *
x[2] * z[5] -
y[5] *
y[1] *
x[5] * z[2] -
877 y[6] * z[1] *
x[2] *
y[5] +
y[6] *
x[1] *
y[5] * z[2];
878 s7 =
s8 -
y[1] * z[1] *
x[2] *
y[6] -
y[1] *
x[1] *
y[2] * z[6] +
879 y[1] *
x[1] *
y[6] * z[2] +
y[1] * z[1] *
x[6] *
y[2] +
880 y[5] *
x[5] *
y[6] * z[2] -
y[5] *
x[2] *
y[6] * z[5] +
881 y[5] *
x[6] *
y[2] * z[5] -
y[5] *
x[5] *
y[2] * z[6] -
882 x[6] *
y[5] *
y[5] * z[2] +
x[2] *
y[5] *
y[5] * z[6] -
883 y[5] *
y[5] *
x[4] * z[7] +
y[5] *
y[5] *
x[7] * z[4] -
884 y[1] *
x[6] *
y[5] * z[2] +
y[1] *
x[2] *
y[5] * z[6] -
885 y[2] *
x[6] *
y[5] * z[2] - 2.0 *
y[2] *
y[1] *
x[6] * z[2];
886 s8 =
s7 - 2.0 *
y[2] * z[1] *
x[2] *
y[6] +
887 2.0 *
y[2] *
x[1] *
y[6] * z[2] + 2.0 *
y[2] *
y[1] *
x[2] * z[6] -
888 2.0 *
x[1] *
y[2] *
y[2] * z[6] + 2.0 * z[1] *
x[6] *
y[2] *
y[2] +
889 x[6] *
y[2] *
y[2] * z[5] -
x[5] *
y[2] *
y[2] * z[6] +
890 2.0 *
x[5] *
y[6] *
y[6] * z[2] - 2.0 *
x[2] *
y[6] *
y[6] * z[5] -
891 z[1] *
x[2] *
y[6] *
y[6] -
y[6] *
y[1] *
x[6] * z[2] -
892 y[6] *
x[1] *
y[2] * z[6] +
y[6] * z[1] *
x[6] *
y[2] +
893 y[6] *
y[1] *
x[2] * z[6] +
x[1] *
y[6] *
y[6] * z[2];
894 s3 =
s8 +
y[2] *
x[5] *
y[6] * z[2] +
y[2] *
x[2] *
y[5] * z[6] -
895 y[2] *
x[2] *
y[6] * z[5] +
y[5] * z[5] *
x[4] *
y[7] +
896 y[5] *
x[5] *
y[4] * z[7] -
y[5] * z[5] *
x[7] *
y[4] -
897 y[5] *
x[5] *
y[7] * z[4] + 2.0 *
y[4] *
x[5] *
y[0] * z[4] -
898 y[3] * z[6] *
x[3] *
y[7] +
y[3] *
y[6] *
x[3] * z[7] +
899 y[3] *
x[6] *
y[7] * z[3] -
y[3] *
y[6] *
x[7] * z[3] -
900 y[2] *
y[1] *
x[3] * z[0] -
y[2] * z[1] *
x[0] *
y[3] +
901 y[2] *
y[1] *
x[0] * z[3] +
y[2] *
x[1] *
y[3] * z[0];
902 s8 =
y[1] *
x[0] * z[3] +
x[1] *
y[3] * z[0] -
y[0] *
x[3] * z[7] -
903 x[1] *
y[5] * z[0] -
y[0] *
x[3] * z[4] -
x[1] *
y[0] * z[2] +
904 z[1] *
x[2] *
y[0] -
y[1] *
x[0] * z[5] - z[1] *
x[0] *
y[2] -
905 y[1] *
x[0] * z[4] + z[1] *
x[5] *
y[2] + z[0] *
x[7] *
y[4] +
906 z[0] *
x[3] *
y[7] + z[1] *
x[0] *
y[4] -
x[1] *
y[2] * z[5] +
907 x[2] *
y[3] * z[0] +
y[1] *
x[2] * z[5] -
x[2] *
y[3] * z[7];
908 s7 =
s8 - z[1] *
x[2] *
y[5] -
y[1] *
x[3] * z[0] -
x[0] *
y[7] * z[3] -
909 z[1] *
x[0] *
y[3] +
y[5] *
x[4] * z[0] -
x[0] *
y[4] * z[3] +
910 y[5] *
x[7] * z[4] - z[0] *
x[4] *
y[3] +
x[1] *
y[0] * z[4] -
911 z[2] *
x[3] *
y[7] -
y[6] *
x[7] * z[2] +
x[1] *
y[5] * z[2] +
912 y[6] *
x[7] * z[5] +
x[0] *
y[7] * z[4] +
x[1] *
y[2] * z[0] -
913 z[1] *
x[4] *
y[0] - z[0] *
x[4] *
y[7] - z[2] *
x[0] *
y[3];
914 s8 =
x[5] *
y[0] * z[4] + z[1] *
x[0] *
y[5] -
x[2] *
y[0] * z[3] -
915 z[1] *
x[5] *
y[0] +
y[1] *
x[5] * z[0] -
x[1] *
y[0] * z[3] -
916 x[1] *
y[4] * z[0] -
y[1] *
x[5] * z[2] +
x[2] *
y[7] * z[3] +
917 y[0] *
x[4] * z[3] -
x[0] *
y[4] * z[7] +
x[1] *
y[0] * z[5] -
918 y[1] *
x[6] * z[2] -
y[2] *
x[6] * z[3] +
y[0] *
x[7] * z[3] -
919 y[2] *
x[7] * z[3] + z[2] *
x[7] *
y[3] +
y[2] *
x[0] * z[3];
920 s6 =
s8 +
y[2] *
x[3] * z[7] -
y[2] *
x[3] * z[0] -
x[6] *
y[5] * z[2] -
921 y[5] *
x[0] * z[4] + z[2] *
x[3] *
y[0] +
x[2] *
y[3] * z[1] +
922 x[0] *
y[3] * z[7] -
x[2] *
y[1] * z[3] +
y[1] *
x[4] * z[0] +
923 y[1] *
x[0] * z[2] - z[1] *
x[2] *
y[6] +
y[2] *
x[3] * z[6] -
924 y[1] *
x[2] * z[0] + z[1] *
x[3] *
y[0] -
x[1] *
y[2] * z[6] -
925 x[2] *
y[3] * z[6] +
x[0] *
y[3] * z[4] + z[0] *
x[3] *
y[4] +
s7;
926 s8 =
x[5] *
y[4] * z[7] +
s6 +
y[5] *
x[6] * z[4] -
y[5] *
x[4] * z[6] +
927 z[6] *
x[5] *
y[7] -
x[6] *
y[2] * z[7] -
x[6] *
y[7] * z[5] +
928 x[5] *
y[6] * z[2] +
x[6] *
y[5] * z[7] +
x[6] *
y[7] * z[2] +
929 y[6] *
x[7] * z[4] -
y[6] *
x[4] * z[7] -
y[6] *
x[7] * z[3] +
930 z[6] *
x[7] *
y[2] +
x[2] *
y[5] * z[6] -
x[2] *
y[6] * z[5] +
931 y[6] *
x[2] * z[7] +
x[6] *
y[2] * z[5];
932 s7 =
s8 -
x[5] *
y[2] * z[6] - z[6] *
x[7] *
y[5] - z[5] *
x[7] *
y[4] +
933 z[5] *
x[0] *
y[4] -
y[5] *
x[4] * z[7] +
y[0] *
x[4] * z[7] -
934 z[6] *
x[2] *
y[7] -
x[5] *
y[4] * z[0] -
x[5] *
y[7] * z[4] -
935 y[0] *
x[7] * z[4] +
y[5] *
x[4] * z[1] -
x[6] *
y[7] * z[4] +
936 x[7] *
y[4] * z[3] -
x[4] *
y[7] * z[3] +
x[3] *
y[7] * z[4] -
937 x[7] *
y[3] * z[4] -
x[6] *
y[3] * z[7] +
x[6] *
y[4] * z[7];
938 s8 = -
x[3] *
y[4] * z[7] +
x[4] *
y[3] * z[7] - z[6] *
x[7] *
y[4] -
939 z[1] *
x[6] *
y[5] +
x[6] *
y[7] * z[3] -
x[1] *
y[6] * z[5] -
940 y[1] *
x[5] * z[6] + z[5] *
x[4] *
y[7] - z[5] *
x[4] *
y[0] +
941 x[1] *
y[5] * z[6] -
y[6] *
x[5] * z[7] -
y[2] *
x[3] * z[1] +
942 z[1] *
x[5] *
y[6] -
y[5] *
x[1] * z[4] + z[6] *
x[4] *
y[7] +
943 x[5] *
y[1] * z[4] -
x[5] *
y[6] * z[4] +
y[6] *
x[3] * z[7] -
945 s5 =
s8 +
x[5] *
y[4] * z[6] + z[5] *
x[1] *
y[4] +
y[1] *
x[6] * z[5] -
946 z[6] *
x[3] *
y[7] + z[6] *
x[7] *
y[3] - z[5] *
x[6] *
y[4] -
947 z[5] *
x[4] *
y[1] + z[5] *
x[4] *
y[6] +
x[1] *
y[6] * z[2] +
948 x[2] *
y[6] * z[3] + z[2] *
x[6] *
y[3] + z[1] *
x[6] *
y[2] +
949 z[2] *
x[3] *
y[1] - z[2] *
x[1] *
y[3] - z[2] *
x[3] *
y[6] +
950 y[2] *
x[1] * z[3] +
y[1] *
x[2] * z[6] - z[0] *
x[7] *
y[3] +
s7;
955 s8 = -z[2] *
x[1] *
y[2] * z[5] + z[2] *
y[1] *
x[2] * z[5] -
956 z[2] * z[1] *
x[2] *
y[5] + z[2] * z[1] *
x[5] *
y[2] +
957 2.0 *
y[5] *
x[7] * z[4] * z[4] -
y[1] *
x[2] * z[0] * z[0] +
958 x[0] *
y[3] * z[7] * z[7] - 2.0 * z[5] * z[5] *
x[4] *
y[1] +
959 2.0 * z[5] * z[5] *
x[1] *
y[4] + z[5] * z[5] *
x[0] *
y[4] -
960 2.0 * z[2] * z[2] *
x[1] *
y[3] + 2.0 * z[2] * z[2] *
x[3] *
y[1] -
961 x[0] *
y[4] * z[7] * z[7] -
y[0] *
x[3] * z[7] * z[7] +
962 x[1] *
y[0] * z[5] * z[5];
963 s7 =
s8 -
y[1] *
x[0] * z[5] * z[5] + z[1] *
y[1] *
x[2] * z[6] +
964 y[1] *
x[0] * z[2] * z[2] + z[2] * z[2] *
x[3] *
y[0] -
965 z[2] * z[2] *
x[0] *
y[3] -
x[1] *
y[0] * z[2] * z[2] +
966 2.0 * z[5] * z[5] *
x[4] *
y[6] - 2.0 * z[5] * z[5] *
x[6] *
y[4] -
967 z[5] * z[5] *
x[7] *
y[4] -
x[6] *
y[7] * z[5] * z[5] +
968 2.0 * z[2] *
y[1] *
x[2] * z[6] - 2.0 * z[2] *
x[1] *
y[2] * z[6] +
969 2.0 * z[2] * z[1] *
x[6] *
y[2] -
y[6] *
x[5] * z[7] * z[7] +
970 2.0 *
x[6] *
y[4] * z[7] * z[7];
971 s8 = -2.0 *
y[6] *
x[4] * z[7] * z[7] +
x[6] *
y[5] * z[7] * z[7] -
972 2.0 * z[2] * z[1] *
x[2] *
y[6] + z[4] *
y[6] *
x[7] * z[5] +
973 x[5] *
y[4] * z[6] * z[6] + z[6] * z[6] *
x[4] *
y[7] -
974 z[6] * z[6] *
x[7] *
y[4] - 2.0 * z[6] * z[6] *
x[7] *
y[5] +
975 2.0 * z[6] * z[6] *
x[5] *
y[7] -
y[5] *
x[4] * z[6] * z[6] +
976 2.0 * z[0] * z[0] *
x[3] *
y[4] -
x[6] *
y[5] * z[2] * z[2] +
977 z[1] * z[1] *
x[5] *
y[6] - z[1] * z[1] *
x[6] *
y[5] -
978 z[5] * z[5] *
x[4] *
y[0];
979 s6 =
s8 + 2.0 *
x[1] *
y[3] * z[0] * z[0] +
980 2.0 *
x[1] *
y[6] * z[2] * z[2] - 2.0 *
y[1] *
x[6] * z[2] * z[2] -
981 y[1] *
x[5] * z[2] * z[2] - z[1] * z[1] *
x[2] *
y[6] -
982 2.0 * z[1] * z[1] *
x[2] *
y[5] + 2.0 * z[1] * z[1] *
x[5] *
y[2] +
983 z[1] *
y[1] *
x[6] * z[5] +
y[1] *
x[2] * z[5] * z[5] +
984 z[2] * z[1] *
x[2] *
y[0] + z[1] *
x[1] *
y[5] * z[6] -
985 z[1] *
x[1] *
y[6] * z[5] - z[1] *
y[1] *
x[5] * z[6] -
986 z[1] *
x[2] *
y[6] * z[5] + z[1] *
x[6] *
y[2] * z[5] +
s7;
987 s8 = -
x[1] *
y[2] * z[5] * z[5] + z[1] *
x[5] *
y[6] * z[2] -
988 2.0 * z[2] * z[2] *
x[3] *
y[6] + 2.0 * z[2] * z[2] *
x[6] *
y[3] +
989 z[2] * z[2] *
x[7] *
y[3] - z[2] * z[2] *
x[3] *
y[7] -
990 z[1] *
x[6] *
y[5] * z[2] + 2.0 * z[1] *
x[1] *
y[5] * z[2] -
991 2.0 *
x[3] *
y[4] * z[7] * z[7] + 2.0 *
x[4] *
y[3] * z[7] * z[7] +
992 x[5] *
y[6] * z[2] * z[2] +
y[1] *
x[2] * z[6] * z[6] +
993 y[0] *
x[4] * z[7] * z[7] + z[2] *
x[2] *
y[3] * z[0] -
994 x[1] *
y[2] * z[6] * z[6];
995 s7 =
s8 - z[7] * z[2] *
x[3] *
y[7] +
x[2] *
y[6] * z[3] * z[3] -
996 y[2] *
x[6] * z[3] * z[3] - z[6] *
x[2] *
y[3] * z[7] -
997 z[2] * z[1] *
x[0] *
y[2] + z[6] * z[2] *
x[6] *
y[3] -
998 z[6] * z[2] *
x[3] *
y[6] + z[6] *
x[2] *
y[6] * z[3] +
999 z[2] *
x[1] *
y[2] * z[0] + z[6] *
y[2] *
x[3] * z[7] -
1000 z[4] * z[5] *
x[6] *
y[4] + z[4] * z[5] *
x[4] *
y[6] -
1001 z[4] *
y[6] *
x[5] * z[7] + z[4] * z[6] *
x[4] *
y[7] +
1002 z[4] *
x[5] *
y[4] * z[6];
1003 s8 = -z[6] *
y[2] *
x[6] * z[3] - z[4] *
y[5] *
x[4] * z[6] -
1004 z[2] *
y[1] *
x[5] * z[6] + z[2] *
x[1] *
y[5] * z[6] +
1005 z[4] *
x[6] *
y[4] * z[7] + 2.0 * z[4] * z[5] *
x[4] *
y[7] -
1006 z[4] * z[6] *
x[7] *
y[4] +
x[6] *
y[7] * z[3] * z[3] -
1007 2.0 * z[4] * z[5] *
x[7] *
y[4] - 2.0 * z[4] *
y[5] *
x[4] * z[7] -
1008 z[4] *
y[6] *
x[4] * z[7] + z[4] *
x[6] *
y[5] * z[7] -
1009 z[4] *
x[6] *
y[7] * z[5] + 2.0 * z[4] *
x[5] *
y[4] * z[7] +
1010 z[2] *
x[2] *
y[5] * z[6] - z[2] *
x[2] *
y[6] * z[5];
1011 s5 =
s8 + z[2] *
x[6] *
y[2] * z[5] - z[2] *
x[5] *
y[2] * z[6] -
1012 z[2] *
x[2] *
y[3] * z[7] -
x[2] *
y[3] * z[7] * z[7] +
1013 2.0 * z[2] *
x[2] *
y[3] * z[1] - z[2] *
y[2] *
x[3] * z[0] +
1014 z[2] *
y[2] *
x[0] * z[3] - z[2] *
x[2] *
y[0] * z[3] -
1015 z[7] *
y[2] *
x[7] * z[3] + z[7] * z[2] *
x[7] *
y[3] +
1016 z[7] *
x[2] *
y[7] * z[3] + z[6] *
y[1] *
x[2] * z[5] -
1017 z[6] *
x[1] *
y[2] * z[5] + z[5] *
x[1] *
y[5] * z[2] +
s6 +
s7;
1018 s8 = z[5] * z[1] *
x[5] *
y[2] - z[5] * z[1] *
x[2] *
y[5] -
1019 y[6] *
x[7] * z[2] * z[2] + 2.0 * z[2] *
x[2] *
y[6] * z[3] -
1020 2.0 * z[2] *
x[2] *
y[3] * z[6] + 2.0 * z[2] *
y[2] *
x[3] * z[6] +
1021 y[2] *
x[3] * z[6] * z[6] +
y[6] *
x[7] * z[5] * z[5] +
1022 z[2] *
y[2] *
x[3] * z[7] - z[2] *
y[2] *
x[7] * z[3] -
1023 2.0 * z[2] *
y[2] *
x[6] * z[3] + z[2] *
x[2] *
y[7] * z[3] +
1024 x[6] *
y[2] * z[5] * z[5] - 2.0 * z[2] *
x[2] *
y[1] * z[3] -
1025 x[2] *
y[6] * z[5] * z[5];
1026 s7 =
s8 -
y[1] *
x[5] * z[6] * z[6] + z[6] *
x[1] *
y[6] * z[2] -
1027 z[3] * z[2] *
x[3] *
y[6] + z[6] * z[1] *
x[6] *
y[2] -
1028 z[6] * z[1] *
x[2] *
y[6] - z[6] *
y[1] *
x[6] * z[2] -
1029 2.0 *
x[5] *
y[2] * z[6] * z[6] + z[4] * z[1] *
x[0] *
y[4] -
1030 z[3] *
x[2] *
y[3] * z[6] - z[5] *
y[1] *
x[5] * z[2] +
1031 z[3] *
y[2] *
x[3] * z[6] + 2.0 *
x[2] *
y[5] * z[6] * z[6] -
1032 z[5] *
x[1] *
y[5] * z[0] +
y[2] *
x[3] * z[7] * z[7] -
1033 x[2] *
y[3] * z[6] * z[6];
1034 s8 = z[5] *
y[5] *
x[4] * z[0] + z[3] * z[2] *
x[6] *
y[3] +
1035 x[1] *
y[5] * z[6] * z[6] + z[5] *
y[5] *
x[7] * z[4] -
1036 z[1] *
x[1] *
y[2] * z[6] + z[1] *
x[1] *
y[6] * z[2] +
1037 2.0 * z[6] *
y[6] *
x[7] * z[5] - z[7] *
y[6] *
x[7] * z[2] -
1038 z[3] *
y[6] *
x[7] * z[2] +
x[6] *
y[7] * z[2] * z[2] -
1039 2.0 * z[6] *
y[6] *
x[7] * z[2] - 2.0 *
x[6] *
y[3] * z[7] * z[7] -
1040 x[6] *
y[2] * z[7] * z[7] - z[5] *
x[6] *
y[5] * z[2] +
1041 y[6] *
x[2] * z[7] * z[7];
1042 s6 =
s8 + 2.0 *
y[6] *
x[3] * z[7] * z[7] + z[6] * z[6] *
x[7] *
y[3] -
1043 y[6] *
x[7] * z[3] * z[3] + z[5] *
x[5] *
y[0] * z[4] +
1044 2.0 * z[6] * z[6] *
x[7] *
y[2] - 2.0 * z[6] * z[6] *
x[2] *
y[7] -
1045 z[6] * z[6] *
x[3] *
y[7] + z[7] *
y[6] *
x[7] * z[5] +
1046 z[7] *
y[5] *
x[7] * z[4] - 2.0 * z[7] *
x[7] *
y[3] * z[4] +
1047 2.0 * z[7] *
x[3] *
y[7] * z[4] - 2.0 * z[7] *
x[4] *
y[7] * z[3] +
1048 2.0 * z[7] *
x[7] *
y[4] * z[3] - z[7] *
y[0] *
x[7] * z[4] -
1049 2.0 * z[7] * z[6] *
x[3] *
y[7] +
s7;
1050 s8 =
s6 + 2.0 * z[7] * z[6] *
x[7] *
y[3] +
1051 2.0 * z[7] *
x[6] *
y[7] * z[3] + z[7] *
x[6] *
y[7] * z[2] -
1052 2.0 * z[7] *
y[6] *
x[7] * z[3] + z[7] * z[6] *
x[7] *
y[2] -
1053 z[7] * z[6] *
x[2] *
y[7] + z[5] *
y[1] *
x[5] * z[0] -
1054 z[5] * z[1] *
x[5] *
y[0] + 2.0 *
y[1] *
x[6] * z[5] * z[5] -
1055 2.0 *
x[1] *
y[6] * z[5] * z[5] + z[5] * z[1] *
x[0] *
y[5] +
1056 z[6] *
y[6] *
x[3] * z[7] + 2.0 * z[6] *
x[6] *
y[7] * z[2] -
1057 z[6] *
y[6] *
x[7] * z[3];
1058 s7 =
s8 + 2.0 * z[6] *
y[6] *
x[2] * z[7] - z[6] *
x[6] *
y[3] * z[7] +
1059 z[6] *
x[6] *
y[7] * z[3] - 2.0 * z[6] *
x[6] *
y[2] * z[7] -
1060 2.0 * z[1] *
y[1] *
x[5] * z[2] - z[1] *
y[1] *
x[6] * z[2] -
1061 z[7] * z[0] *
x[7] *
y[3] - 2.0 * z[6] *
x[6] *
y[5] * z[2] -
1062 z[2] * z[6] *
x[3] *
y[7] + z[2] *
x[6] *
y[7] * z[3] -
1063 z[2] * z[6] *
x[2] *
y[7] +
y[5] *
x[6] * z[4] * z[4] +
1064 z[2] *
y[6] *
x[2] * z[7] +
y[6] *
x[7] * z[4] * z[4] +
1065 z[2] * z[6] *
x[7] *
y[2] - 2.0 *
x[5] *
y[7] * z[4] * z[4];
1066 s8 = -
x[6] *
y[7] * z[4] * z[4] - z[5] *
y[5] *
x[0] * z[4] -
1067 z[2] *
x[6] *
y[2] * z[7] -
x[5] *
y[6] * z[4] * z[4] -
1068 2.0 * z[5] *
y[1] *
x[5] * z[6] + 2.0 * z[5] * z[1] *
x[5] *
y[6] +
1069 2.0 * z[5] *
x[1] *
y[5] * z[6] - 2.0 * z[5] * z[1] *
x[6] *
y[5] -
1070 z[5] *
x[5] *
y[2] * z[6] + z[5] *
x[5] *
y[6] * z[2] +
1071 z[5] *
x[2] *
y[5] * z[6] + z[5] * z[5] *
x[4] *
y[7] -
1072 y[5] *
x[4] * z[7] * z[7] +
x[5] *
y[4] * z[7] * z[7] +
1073 z[6] * z[1] *
x[5] *
y[6] + z[6] *
y[1] *
x[6] * z[5];
1074 s4 =
s8 - z[6] * z[1] *
x[6] *
y[5] - z[6] *
x[1] *
y[6] * z[5] +
1075 z[2] * z[6] *
x[7] *
y[3] + 2.0 * z[6] *
x[6] *
y[2] * z[5] +
1076 2.0 * z[6] *
x[5] *
y[6] * z[2] - 2.0 * z[6] *
x[2] *
y[6] * z[5] +
1077 z[7] * z[0] *
x[3] *
y[7] + z[7] * z[0] *
x[7] *
y[4] +
1078 z[3] * z[6] *
x[7] *
y[3] - z[3] * z[6] *
x[3] *
y[7] -
1079 z[3] *
x[6] *
y[3] * z[7] + z[3] *
y[6] *
x[2] * z[7] -
1080 z[3] *
x[6] *
y[2] * z[7] + z[5] *
x[5] *
y[4] * z[7] +
s5 +
s7;
1081 s8 =
s4 + z[3] *
y[6] *
x[3] * z[7] - z[7] *
x[0] *
y[7] * z[3] +
1082 z[6] *
x[5] *
y[4] * z[7] + z[7] *
y[0] *
x[7] * z[3] +
1083 z[5] * z[6] *
x[4] *
y[7] - 2.0 * z[5] *
x[5] *
y[6] * z[4] +
1084 2.0 * z[5] *
x[5] *
y[4] * z[6] - z[5] *
x[5] *
y[7] * z[4] -
1085 z[5] *
y[6] *
x[5] * z[7] - z[5] * z[6] *
x[7] *
y[4] -
1086 z[7] * z[0] *
x[4] *
y[7] - z[5] * z[6] *
x[7] *
y[5] -
1087 z[5] *
y[5] *
x[4] * z[7] + z[7] *
x[0] *
y[7] * z[4];
1088 s7 =
s8 - 2.0 * z[5] *
y[5] *
x[4] * z[6] + z[5] * z[6] *
x[5] *
y[7] +
1089 z[5] *
x[6] *
y[5] * z[7] + 2.0 * z[5] *
y[5] *
x[6] * z[4] +
1090 z[6] * z[5] *
x[4] *
y[6] - z[6] *
x[5] *
y[6] * z[4] -
1091 z[6] * z[5] *
x[6] *
y[4] - z[6] *
x[6] *
y[7] * z[4] -
1092 2.0 * z[6] *
y[6] *
x[5] * z[7] + z[6] *
x[6] *
y[4] * z[7] -
1093 z[6] *
y[5] *
x[4] * z[7] - z[6] *
y[6] *
x[4] * z[7] +
1094 z[6] *
y[6] *
x[7] * z[4] + z[6] *
y[5] *
x[6] * z[4] +
1095 2.0 * z[6] *
x[6] *
y[5] * z[7];
1096 s8 = -2.0 * z[6] *
x[6] *
y[7] * z[5] - z[2] *
y[1] *
x[2] * z[0] +
1097 2.0 * z[7] * z[6] *
x[4] *
y[7] - 2.0 * z[7] *
x[6] *
y[7] * z[4] -
1098 2.0 * z[7] * z[6] *
x[7] *
y[4] + z[7] * z[5] *
x[4] *
y[7] -
1099 z[7] * z[5] *
x[7] *
y[4] - z[7] *
x[5] *
y[7] * z[4] +
1100 2.0 * z[7] *
y[6] *
x[7] * z[4] - z[7] * z[6] *
x[7] *
y[5] +
1101 z[7] * z[6] *
x[5] *
y[7] - z[7] *
x[6] *
y[7] * z[5] +
1102 z[1] * z[1] *
x[6] *
y[2] +
s7 +
x[1] *
y[5] * z[2] * z[2];
1103 s6 =
s8 + 2.0 * z[2] *
y[2] *
x[1] * z[3] -
1104 2.0 * z[2] *
y[2] *
x[3] * z[1] - 2.0 *
x[1] *
y[4] * z[0] * z[0] +
1105 2.0 *
y[1] *
x[4] * z[0] * z[0] + 2.0 *
x[2] *
y[7] * z[3] * z[3] -
1106 2.0 *
y[2] *
x[7] * z[3] * z[3] -
x[1] *
y[5] * z[0] * z[0] +
1107 z[0] * z[0] *
x[7] *
y[4] + z[0] * z[0] *
x[3] *
y[7] +
1108 x[2] *
y[3] * z[0] * z[0] - 2.0 *
y[1] *
x[3] * z[0] * z[0] +
1109 y[5] *
x[4] * z[0] * z[0] - 2.0 * z[0] * z[0] *
x[4] *
y[3] +
1110 x[1] *
y[2] * z[0] * z[0] - z[0] * z[0] *
x[4] *
y[7] +
1111 y[1] *
x[5] * z[0] * z[0];
1112 s8 =
s6 -
y[2] *
x[3] * z[0] * z[0] +
y[1] *
x[0] * z[3] * z[3] -
1113 2.0 *
x[0] *
y[7] * z[3] * z[3] -
x[0] *
y[4] * z[3] * z[3] -
1114 2.0 *
x[2] *
y[0] * z[3] * z[3] -
x[1] *
y[0] * z[3] * z[3] +
1115 y[0] *
x[4] * z[3] * z[3] - 2.0 * z[0] *
y[1] *
x[0] * z[4] +
1116 2.0 * z[0] * z[1] *
x[0] *
y[4] + 2.0 * z[0] *
x[1] *
y[0] * z[4] -
1117 2.0 * z[0] * z[1] *
x[4] *
y[0] - 2.0 * z[3] *
x[2] *
y[3] * z[7] -
1118 2.0 * z[3] * z[2] *
x[3] *
y[7] + 2.0 * z[3] * z[2] *
x[7] *
y[3];
1119 s7 =
s8 + 2.0 * z[3] *
y[2] *
x[3] * z[7] +
1120 2.0 * z[5] *
y[5] *
x[4] * z[1] + 2.0 * z[0] *
y[1] *
x[0] * z[3] -
1121 z[0] *
y[0] *
x[3] * z[7] - 2.0 * z[0] *
y[0] *
x[3] * z[4] -
1122 z[0] *
x[1] *
y[0] * z[2] + z[0] * z[1] *
x[2] *
y[0] -
1123 z[0] *
y[1] *
x[0] * z[5] - z[0] * z[1] *
x[0] *
y[2] -
1124 z[0] *
x[0] *
y[7] * z[3] - 2.0 * z[0] * z[1] *
x[0] *
y[3] -
1125 z[5] *
x[5] *
y[4] * z[0] - 2.0 * z[0] *
x[0] *
y[4] * z[3] +
1126 z[0] *
x[0] *
y[7] * z[4] - z[0] * z[2] *
x[0] *
y[3];
1127 s8 =
s7 + z[0] *
x[5] *
y[0] * z[4] + z[0] * z[1] *
x[0] *
y[5] -
1128 z[0] *
x[2] *
y[0] * z[3] - z[0] * z[1] *
x[5] *
y[0] -
1129 2.0 * z[0] *
x[1] *
y[0] * z[3] + 2.0 * z[0] *
y[0] *
x[4] * z[3] -
1130 z[0] *
x[0] *
y[4] * z[7] + z[0] *
x[1] *
y[0] * z[5] +
1131 z[0] *
y[0] *
x[7] * z[3] + z[0] *
y[2] *
x[0] * z[3] -
1132 z[0] *
y[5] *
x[0] * z[4] + z[0] * z[2] *
x[3] *
y[0] +
1133 z[0] *
x[2] *
y[3] * z[1] + z[0] *
x[0] *
y[3] * z[7] -
1134 z[0] *
x[2] *
y[1] * z[3];
1135 s5 =
s8 + z[0] *
y[1] *
x[0] * z[2] + z[3] *
x[1] *
y[3] * z[0] -
1136 2.0 * z[3] *
y[0] *
x[3] * z[7] - z[3] *
y[0] *
x[3] * z[4] -
1137 z[3] *
x[1] *
y[0] * z[2] + z[3] * z[0] *
x[7] *
y[4] +
1138 2.0 * z[3] * z[0] *
x[3] *
y[7] + 2.0 * z[3] *
x[2] *
y[3] * z[0] -
1139 z[3] *
y[1] *
x[3] * z[0] - z[3] * z[1] *
x[0] *
y[3] -
1140 z[3] * z[0] *
x[4] *
y[3] + z[3] *
x[1] *
y[2] * z[0] -
1141 z[3] * z[0] *
x[4] *
y[7] - 2.0 * z[3] * z[2] *
x[0] *
y[3] -
1142 z[3] *
x[0] *
y[4] * z[7] - 2.0 * z[3] *
y[2] *
x[3] * z[0];
1143 s8 =
s5 + 2.0 * z[3] * z[2] *
x[3] *
y[0] + z[3] *
x[2] *
y[3] * z[1] +
1144 2.0 * z[3] *
x[0] *
y[3] * z[7] + z[3] *
y[1] *
x[0] * z[2] -
1145 z[4] *
y[0] *
x[3] * z[7] - z[4] *
x[1] *
y[5] * z[0] -
1146 z[4] *
y[1] *
x[0] * z[5] + 2.0 * z[4] * z[0] *
x[7] *
y[4] +
1147 z[4] * z[0] *
x[3] *
y[7] + 2.0 * z[4] *
y[5] *
x[4] * z[0] +
1148 2.0 *
y[0] *
x[7] * z[3] * z[3] + 2.0 *
y[2] *
x[0] * z[3] * z[3] -
1149 x[2] *
y[1] * z[3] * z[3] -
y[0] *
x[3] * z[4] * z[4];
1150 s7 =
s8 -
y[1] *
x[0] * z[4] * z[4] +
x[1] *
y[0] * z[4] * z[4] +
1151 2.0 *
x[0] *
y[7] * z[4] * z[4] + 2.0 *
x[5] *
y[0] * z[4] * z[4] -
1152 2.0 *
y[5] *
x[0] * z[4] * z[4] + 2.0 * z[1] * z[1] *
x[2] *
y[0] -
1153 2.0 * z[1] * z[1] *
x[0] *
y[2] + z[1] * z[1] *
x[0] *
y[4] -
1154 z[1] * z[1] *
x[0] *
y[3] - z[1] * z[1] *
x[4] *
y[0] +
1155 2.0 * z[1] * z[1] *
x[0] *
y[5] - 2.0 * z[1] * z[1] *
x[5] *
y[0] +
1156 x[2] *
y[3] * z[1] * z[1] -
x[5] *
y[4] * z[0] * z[0] -
1157 z[0] * z[0] *
x[7] *
y[3];
1158 s8 =
s7 +
x[7] *
y[4] * z[3] * z[3] -
x[4] *
y[7] * z[3] * z[3] +
1159 y[2] *
x[1] * z[3] * z[3] +
x[0] *
y[3] * z[4] * z[4] -
1160 2.0 *
y[0] *
x[7] * z[4] * z[4] +
x[3] *
y[7] * z[4] * z[4] -
1161 x[7] *
y[3] * z[4] * z[4] -
y[5] *
x[1] * z[4] * z[4] +
1162 x[5] *
y[1] * z[4] * z[4] + z[1] * z[1] *
x[3] *
y[0] +
1163 y[5] *
x[4] * z[1] * z[1] -
y[2] *
x[3] * z[1] * z[1] -
1164 x[5] *
y[4] * z[1] * z[1] - z[4] *
x[0] *
y[4] * z[3] -
1165 z[4] * z[0] *
x[4] *
y[3];
1166 s6 =
s8 - z[4] * z[1] *
x[4] *
y[0] - 2.0 * z[4] * z[0] *
x[4] *
y[7] +
1167 z[4] *
y[1] *
x[5] * z[0] - 2.0 * z[5] *
x[5] *
y[4] * z[1] -
1168 z[4] *
x[1] *
y[4] * z[0] + z[4] *
y[0] *
x[4] * z[3] -
1169 2.0 * z[4] *
x[0] *
y[4] * z[7] + z[4] *
x[1] *
y[0] * z[5] -
1170 2.0 * z[1] *
x[1] *
y[2] * z[5] + z[4] *
x[0] *
y[3] * z[7] +
1171 2.0 * z[5] *
x[5] *
y[1] * z[4] + z[4] *
y[1] *
x[4] * z[0] +
1172 z[1] *
y[1] *
x[0] * z[3] + z[1] *
x[1] *
y[3] * z[0] -
1173 2.0 * z[1] *
x[1] *
y[5] * z[0] - 2.0 * z[1] *
x[1] *
y[0] * z[2];
1174 s8 =
s6 - 2.0 * z[1] *
y[1] *
x[0] * z[5] - z[1] *
y[1] *
x[0] * z[4] +
1175 2.0 * z[1] *
y[1] *
x[2] * z[5] - z[1] *
y[1] *
x[3] * z[0] -
1176 2.0 * z[5] *
y[5] *
x[1] * z[4] + z[1] *
y[5] *
x[4] * z[0] +
1177 z[1] *
x[1] *
y[0] * z[4] + 2.0 * z[1] *
x[1] *
y[2] * z[0] -
1178 z[1] * z[2] *
x[0] *
y[3] + 2.0 * z[1] *
y[1] *
x[5] * z[0] -
1179 z[1] *
x[1] *
y[0] * z[3] - z[1] *
x[1] *
y[4] * z[0] +
1180 2.0 * z[1] *
x[1] *
y[0] * z[5] - z[1] *
y[2] *
x[3] * z[0];
1181 s7 =
s8 + z[1] * z[2] *
x[3] *
y[0] - z[1] *
x[2] *
y[1] * z[3] +
1182 z[1] *
y[1] *
x[4] * z[0] + 2.0 * z[1] *
y[1] *
x[0] * z[2] +
1183 2.0 * z[0] * z[1] *
x[3] *
y[0] + 2.0 * z[0] *
x[0] *
y[3] * z[4] +
1184 z[0] * z[5] *
x[0] *
y[4] + z[0] *
y[0] *
x[4] * z[7] -
1185 z[0] *
y[0] *
x[7] * z[4] - z[0] *
x[7] *
y[3] * z[4] -
1186 z[0] * z[5] *
x[4] *
y[0] - z[0] *
x[5] *
y[4] * z[1] +
1187 z[3] * z[1] *
x[3] *
y[0] + z[3] *
x[0] *
y[3] * z[4] +
1188 z[3] * z[0] *
x[3] *
y[4] + z[3] *
y[0] *
x[4] * z[7];
1189 s8 =
s7 + z[3] *
x[3] *
y[7] * z[4] - z[3] *
x[7] *
y[3] * z[4] -
1190 z[3] *
x[3] *
y[4] * z[7] + z[3] *
x[4] *
y[3] * z[7] -
1191 z[3] *
y[2] *
x[3] * z[1] + z[3] * z[2] *
x[3] *
y[1] -
1192 z[3] * z[2] *
x[1] *
y[3] - 2.0 * z[3] * z[0] *
x[7] *
y[3] +
1193 z[4] * z[0] *
x[3] *
y[4] + 2.0 * z[4] * z[5] *
x[0] *
y[4] +
1194 2.0 * z[4] *
y[0] *
x[4] * z[7] - 2.0 * z[4] *
x[5] *
y[4] * z[0] +
1195 z[4] *
y[5] *
x[4] * z[1] + z[4] *
x[7] *
y[4] * z[3] -
1196 z[4] *
x[4] *
y[7] * z[3];
1197 s3 =
s8 - z[4] *
x[3] *
y[4] * z[7] + z[4] *
x[4] *
y[3] * z[7] -
1198 2.0 * z[4] * z[5] *
x[4] *
y[0] - z[4] *
x[5] *
y[4] * z[1] +
1199 z[4] * z[5] *
x[1] *
y[4] - z[4] * z[5] *
x[4] *
y[1] -
1200 2.0 * z[1] *
y[1] *
x[2] * z[0] + z[1] * z[5] *
x[0] *
y[4] -
1201 z[1] * z[5] *
x[4] *
y[0] - z[1] *
y[5] *
x[1] * z[4] +
1202 z[1] *
x[5] *
y[1] * z[4] + z[1] * z[5] *
x[1] *
y[4] -
1203 z[1] * z[5] *
x[4] *
y[1] + z[1] * z[2] *
x[3] *
y[1] -
1204 z[1] * z[2] *
x[1] *
y[3] + z[1] *
y[2] *
x[1] * z[3];
1205 s8 =
y[1] *
x[0] * z[3] +
x[1] *
y[3] * z[0] -
y[0] *
x[3] * z[7] -
1206 x[1] *
y[5] * z[0] -
y[0] *
x[3] * z[4] -
x[1] *
y[0] * z[2] +
1207 z[1] *
x[2] *
y[0] -
y[1] *
x[0] * z[5] - z[1] *
x[0] *
y[2] -
1208 y[1] *
x[0] * z[4] + z[1] *
x[5] *
y[2] + z[0] *
x[7] *
y[4] +
1209 z[0] *
x[3] *
y[7] + z[1] *
x[0] *
y[4] -
x[1] *
y[2] * z[5] +
1210 x[2] *
y[3] * z[0] +
y[1] *
x[2] * z[5] -
x[2] *
y[3] * z[7];
1211 s7 =
s8 - z[1] *
x[2] *
y[5] -
y[1] *
x[3] * z[0] -
x[0] *
y[7] * z[3] -
1212 z[1] *
x[0] *
y[3] +
y[5] *
x[4] * z[0] -
x[0] *
y[4] * z[3] +
1213 y[5] *
x[7] * z[4] - z[0] *
x[4] *
y[3] +
x[1] *
y[0] * z[4] -
1214 z[2] *
x[3] *
y[7] -
y[6] *
x[7] * z[2] +
x[1] *
y[5] * z[2] +
1215 y[6] *
x[7] * z[5] +
x[0] *
y[7] * z[4] +
x[1] *
y[2] * z[0] -
1216 z[1] *
x[4] *
y[0] - z[0] *
x[4] *
y[7] - z[2] *
x[0] *
y[3];
1217 s8 =
x[5] *
y[0] * z[4] + z[1] *
x[0] *
y[5] -
x[2] *
y[0] * z[3] -
1218 z[1] *
x[5] *
y[0] +
y[1] *
x[5] * z[0] -
x[1] *
y[0] * z[3] -
1219 x[1] *
y[4] * z[0] -
y[1] *
x[5] * z[2] +
x[2] *
y[7] * z[3] +
1220 y[0] *
x[4] * z[3] -
x[0] *
y[4] * z[7] +
x[1] *
y[0] * z[5] -
1221 y[1] *
x[6] * z[2] -
y[2] *
x[6] * z[3] +
y[0] *
x[7] * z[3] -
1222 y[2] *
x[7] * z[3] + z[2] *
x[7] *
y[3] +
y[2] *
x[0] * z[3];
1223 s6 =
s8 +
y[2] *
x[3] * z[7] -
y[2] *
x[3] * z[0] -
x[6] *
y[5] * z[2] -
1224 y[5] *
x[0] * z[4] + z[2] *
x[3] *
y[0] +
x[2] *
y[3] * z[1] +
1225 x[0] *
y[3] * z[7] -
x[2] *
y[1] * z[3] +
y[1] *
x[4] * z[0] +
1226 y[1] *
x[0] * z[2] - z[1] *
x[2] *
y[6] +
y[2] *
x[3] * z[6] -
1227 y[1] *
x[2] * z[0] + z[1] *
x[3] *
y[0] -
x[1] *
y[2] * z[6] -
1228 x[2] *
y[3] * z[6] +
x[0] *
y[3] * z[4] + z[0] *
x[3] *
y[4] +
s7;
1229 s8 =
x[5] *
y[4] * z[7] +
s6 +
y[5] *
x[6] * z[4] -
y[5] *
x[4] * z[6] +
1230 z[6] *
x[5] *
y[7] -
x[6] *
y[2] * z[7] -
x[6] *
y[7] * z[5] +
1231 x[5] *
y[6] * z[2] +
x[6] *
y[5] * z[7] +
x[6] *
y[7] * z[2] +
1232 y[6] *
x[7] * z[4] -
y[6] *
x[4] * z[7] -
y[6] *
x[7] * z[3] +
1233 z[6] *
x[7] *
y[2] +
x[2] *
y[5] * z[6] -
x[2] *
y[6] * z[5] +
1234 y[6] *
x[2] * z[7] +
x[6] *
y[2] * z[5];
1235 s7 =
s8 -
x[5] *
y[2] * z[6] - z[6] *
x[7] *
y[5] - z[5] *
x[7] *
y[4] +
1236 z[5] *
x[0] *
y[4] -
y[5] *
x[4] * z[7] +
y[0] *
x[4] * z[7] -
1237 z[6] *
x[2] *
y[7] -
x[5] *
y[4] * z[0] -
x[5] *
y[7] * z[4] -
1238 y[0] *
x[7] * z[4] +
y[5] *
x[4] * z[1] -
x[6] *
y[7] * z[4] +
1239 x[7] *
y[4] * z[3] -
x[4] *
y[7] * z[3] +
x[3] *
y[7] * z[4] -
1240 x[7] *
y[3] * z[4] -
x[6] *
y[3] * z[7] +
x[6] *
y[4] * z[7];
1241 s8 = -
x[3] *
y[4] * z[7] +
x[4] *
y[3] * z[7] - z[6] *
x[7] *
y[4] -
1242 z[1] *
x[6] *
y[5] +
x[6] *
y[7] * z[3] -
x[1] *
y[6] * z[5] -
1243 y[1] *
x[5] * z[6] + z[5] *
x[4] *
y[7] - z[5] *
x[4] *
y[0] +
1244 x[1] *
y[5] * z[6] -
y[6] *
x[5] * z[7] -
y[2] *
x[3] * z[1] +
1245 z[1] *
x[5] *
y[6] -
y[5] *
x[1] * z[4] + z[6] *
x[4] *
y[7] +
1246 x[5] *
y[1] * z[4] -
x[5] *
y[6] * z[4] +
y[6] *
x[3] * z[7] -
1248 s5 =
s8 +
x[5] *
y[4] * z[6] + z[5] *
x[1] *
y[4] +
y[1] *
x[6] * z[5] -
1249 z[6] *
x[3] *
y[7] + z[6] *
x[7] *
y[3] - z[5] *
x[6] *
y[4] -
1250 z[5] *
x[4] *
y[1] + z[5] *
x[4] *
y[6] +
x[1] *
y[6] * z[2] +
1251 x[2] *
y[6] * z[3] + z[2] *
x[6] *
y[3] + z[1] *
x[6] *
y[2] +
1252 z[2] *
x[3] *
y[1] - z[2] *
x[1] *
y[3] - z[2] *
x[3] *
y[6] +
1253 y[2] *
x[1] * z[3] +
y[1] *
x[2] * z[6] - z[0] *
x[7] *
y[3] +
s7;
1274 template <
int structdim,
int dim,
int spacedim>
1286 template <
int dim,
int spacedim>
1292 return (accessor.vertex(1) - accessor.vertex(0)).norm();
1305 accessor.get_triangulation().get_vertices(),
1318 accessor.get_triangulation().get_vertices(),
1360 for (
unsigned int d = 0;
d < 3; ++
d)
1362 if (
a_max < 1e-14 * accessor.diameter())
1368 constexpr unsigned int n_qp = 4;
1369 const double c1 = 2.0 / 7.0 *
std::sqrt(6.0 / 5.0);
1373 const std::array<double, n_qp>
q{{
1379 const std::array<double, n_qp>
w{{
w0,
w1,
w1,
w0}};
1382 for (
unsigned int i = 0; i <
n_qp; ++i)
1383 for (
unsigned int j = 0;
j <
n_qp; ++
j)
1403 template <
int structdim,
int dim,
int spacedim>
1410 return std::numeric_limits<double>::quiet_NaN();
1414 template <
int dim,
int spacedim>
1419 return obj.get_manifold().get_new_point_on_line(
it);
1422 template <
int dim,
int spacedim>
1427 return obj.get_manifold().get_new_point_on_quad(
it);
1430 template <
int dim,
int spacedim>
1435 return obj.get_manifold().get_new_point_on_hex(
it);
1438 template <
int structdim,
int dim,
int spacedim>
1448 return obj.get_manifold().get_new_point(
1466template <
int structdim,
int dim,
int spacedim>
1469template <
int structdim,
int dim,
int spacedim>
1472template <
int structdim,
int dim,
int spacedim>
1480template <
int structdim,
int dim,
int spacedim>
1483 const std::initializer_list<int> &
new_indices)
const
1486 this->objects().get_bounding_object_indices(this->present_index);
1500template <
int structdim,
int dim,
int spacedim>
1503 const std::initializer_list<unsigned int> &
new_indices)
const
1506 this->objects().get_bounding_object_indices(this->present_index);
1520template <
int structdim,
int dim,
int spacedim>
1526 return ::barycenter(*
this);
1531template <
int structdim,
int dim,
int spacedim>
1537 return ::measure(*
this);
1542template <
int structdim,
int dim,
int spacedim>
1547 std::make_pair(this->vertex(0), this->vertex(0));
1549 const unsigned int n_vertices = this->n_vertices();
1550 for (
unsigned int v = 1; v < n_vertices; ++v)
1553 for (
unsigned int k = 0;
k < spacedim; ++
k)
1555 boundary_points.first[
k] =
std::min(boundary_points.first[
k],
x[
k]);
1556 boundary_points.second[
k] =
std::max(boundary_points.second[
k],
x[
k]);
1565template <
int structdim,
int dim,
int spacedim>
1568 const unsigned int )
const
1571 return std::numeric_limits<double>::signaling_NaN();
1582 return this->diameter();
1592 return this->diameter();
1600 const unsigned int lines[2][2] = {
1606 return std::max(this->line(lines[
axis][0])->diameter(),
1607 this->line(lines[
axis][1])->diameter());
1614 const unsigned int lines[2][2] = {
1620 return std::max(this->line(lines[
axis][0])->diameter(),
1621 this->line(lines[
axis][1])->diameter());
1629 const unsigned int lines[3][4] = {
1636 double lengths[4] = {this->line(lines[
axis][0])->diameter(),
1637 this->line(lines[
axis][1])->diameter(),
1638 this->line(lines[
axis][2])->diameter(),
1639 this->line(lines[
axis][3])->diameter()};
1654 if (this->has_children())
1655 for (
unsigned int c = 0; c < this->n_children(); ++c)
1661 for (
const unsigned int i : this->face_indices())
1663 for (
const unsigned int i : this->line_indices())
1668template <
int structdim,
int dim,
int spacedim>
1675 std::array<double, GeometryInfo<structdim>::vertices_per_cell> w;
1679 p[i] = this->vertex(i);
1683 return this->get_manifold().get_new_point(
make_array_view(p.begin(), p.end()),
1690template <
int structdim,
int dim,
int spacedim>
1698 vertices[v] = this->vertex(v);
1701 GridTools::affine_cell_approximation<structdim, spacedim>(vertices);
1703 A_b.first.covariant_form().transpose();
1709template <
int structdim,
int dim,
int spacedim>
1721 return p / this->n_vertices();
1731template <
int spacedim>
1742template <
int spacedim>
1752template <
int spacedim>
1762template <
int spacedim>
1768 if (this->has_children())
1769 for (
unsigned int c = 0; c < this->n_children(); ++c)
1770 this->child(c)->recursively_set_user_flag();
1775template <
int spacedim>
1781 if (this->has_children())
1782 for (
unsigned int c = 0; c < this->n_children(); ++c)
1783 this->child(c)->recursively_clear_user_flag();
1788template <
int spacedim>
1798template <
int spacedim>
1808template <
int spacedim>
1818template <
int spacedim>
1829template <
int spacedim>
1833 set_user_pointer(p);
1835 if (this->has_children())
1836 for (
unsigned int c = 0; c < this->n_children(); ++c)
1837 this->child(c)->recursively_set_user_pointer(p);
1842template <
int spacedim>
1846 clear_user_pointer();
1848 if (this->has_children())
1849 for (
unsigned int c = 0; c < this->n_children(); ++c)
1850 this->child(c)->recursively_clear_user_pointer();
1855template <
int spacedim>
1865template <
int spacedim>
1875template <
int spacedim>
1886template <
int spacedim>
1892 if (this->has_children())
1893 for (
unsigned int c = 0; c < this->n_children(); ++c)
1894 this->child(c)->recursively_set_user_index(p);
1899template <
int spacedim>
1905 if (this->has_children())
1906 for (
unsigned int c = 0; c < this->n_children(); ++c)
1907 this->child(c)->recursively_clear_user_index();
1920 return (this->vertex(0)[0] <= p[0]) && (p[0] <= this->vertex(1)[0]);
1953 static const int direction[4] = {-1, 1, 1, -1};
1954 for (
unsigned int f = 0; f < 4; ++f)
1978 if ((-face[1] *
to_p[0] + face[0] *
to_p[1]) < 0)
2009 const unsigned int dim = 3;
2010 const unsigned int spacedim = 3;
2014 for (
unsigned int v = 1; v < this->n_vertices(); ++v)
2015 for (
unsigned int d = 0; d < dim; ++d)
2023 for (
unsigned int d = 0; d < dim; ++d)
2024 if ((p[d] <
minp[d]) || (p[d] >
maxp[d]))
2040 .transform_real_to_unit_cell(cell_iterator, p)));
2053template <
int dim,
int spacedim>
2059 ExcMessage(
"The current iterator points to an inactive cell. "
2060 "You cannot convert it to an iterator to an active cell."));
2061 Assert(&this->get_triangulation() == &dof_handler.get_triangulation(),
2062 ExcMessage(
"The triangulation associated with the iterator does not "
2063 "match that of the DoFHandler."));
2066 &dof_handler.get_triangulation(),
2074template <
int dim,
int spacedim>
2079 Assert(&this->get_triangulation() == &dof_handler.get_triangulation(),
2080 ExcMessage(
"The triangulation associated with the iterator does not "
2081 "match that of the DoFHandler."));
2084 &dof_handler.get_triangulation(),
2096template <
int dim,
int spacedim>
2097template <
int dim_,
int spacedim_>
2106 this->reference_cell()
2108 .transform_real_to_unit_cell(cell_iterator, p);
2142template <
int dim,
int spacedim>
2146 for (
const auto face : this->face_indices())
2147 if (at_boundary(face))
2155template <
int dim,
int spacedim>
2160 return this->tria->levels[this->present_level]
2161 ->cells.boundary_or_material_id[this->present_index]
2167template <
int dim,
int spacedim>
2174 this->tria->levels[this->present_level]
2175 ->cells.boundary_or_material_id[this->present_index]
2181template <
int dim,
int spacedim>
2188 if (this->has_children())
2189 for (
unsigned int c = 0; c < this->n_children(); ++c)
2190 this->child(c)->recursively_set_material_id(
mat_id);
2195template <
int dim,
int spacedim>
2201 Assert(this->is_active(),
2202 ExcMessage(
"set_subdomain_id() can only be called on active cells!"));
2203 this->tria->levels[this->present_level]->subdomain_ids[this->present_index] =
2209template <
int dim,
int spacedim>
2215 this->tria->levels[this->present_level]
2220template <
int dim,
int spacedim>
2225 if constexpr (dim == spacedim)
2227 else if constexpr (dim == spacedim - 1)
2228 return this->tria->levels[
this->present_level]
2229 ->direction_flags[
this->present_index];
2233 ExcMessage(
"This function cannot be called if dim<spacedim-1."));
2240template <
int dim,
int spacedim>
2249 if constexpr (dim == spacedim)
2251 ExcMessage(
"If dim==spacedim, direction flags are always true and "
2252 "can not be set to anything else."));
2253 else if constexpr (dim == spacedim - 1)
2254 this->tria->levels[
this->present_level]
2258 ExcMessage(
"If dim<spacedim-1, then this function can be called "
2259 "only if the argument is 'true'."));
2264template <
int dim,
int spacedim>
2270 this->tria->levels[this->present_level]->parents[this->present_index / 2] =
2276template <
int dim,
int spacedim>
2285 return this->tria->levels[this->present_level]
2286 ->parents[this->present_index / 2];
2291template <
int dim,
int spacedim>
2294 const unsigned int active_cell_index)
const
2296 this->tria->levels[this->present_level]
2297 ->active_cell_indices[this->present_index] = active_cell_index;
2302template <
int dim,
int spacedim>
2307 this->tria->levels[this->present_level]
2308 ->global_active_cell_indices[this->present_index] = index;
2313template <
int dim,
int spacedim>
2318 this->tria->levels[this->present_level]
2319 ->global_level_cell_indices[this->present_index] = index;
2324template <
int dim,
int spacedim>
2331 this->present_level - 1,
2338template <
int dim,
int spacedim>
2343 if (this->has_children())
2344 for (
unsigned int c = 0; c < this->n_children(); ++c)
2352template <
int dim,
int spacedim>
2355 const unsigned int i,
2361 this->tria->levels[this->present_level]
2362 ->neighbors[this->present_index * ReferenceCells::max_n_faces<dim>() + i];
2365 neighbor.first = pointer->present_level;
2366 neighbor.second = pointer->present_index;
2370 neighbor.first = -1;
2371 neighbor.second = -1;
2377template <
int dim,
int spacedim>
2381 std::array<unsigned char, 30> id;
2384 const unsigned int n_child_indices = ptr.level();
2386 while (ptr.level() > 0)
2389 const unsigned int n_children = parent->n_children();
2392 unsigned char v =
static_cast<unsigned char>(-1);
2393 for (
unsigned int c = 0; c < n_children; ++c)
2395 if (parent->child_index(c) == ptr.index())
2403 id[ptr.level() - 1] = v;
2405 ptr.copy_from(*parent);
2411 return {this->tria->coarse_cell_index_to_coarse_cell_id(
coarse_index),
2418template <
int dim,
int spacedim>
2421 const unsigned int neighbor)
const
2434 if ((dim == 1) && (spacedim == dim))
2438 this->neighbor(neighbor);
2484template <
int dim,
int spacedim>
2487 const unsigned int face_no)
const
2489 const unsigned int n2 = neighbor_of_neighbor_internal(
face_no);
2498template <
int dim,
int spacedim>
2501 const unsigned int face_no)
const
2503 return neighbor_of_neighbor_internal(
face_no) ==
2509template <
int dim,
int spacedim>
2510std::pair<unsigned int, unsigned int>
2512 const unsigned int neighbor)
const
2517 Assert(neighbor_is_coarser(neighbor),
2526 this->neighbor(neighbor);
2564 if (face->has_children())
2585 this->neighbor(neighbor);
2637 if (!face->has_children())
2647 return std::make_pair(
face_no,
2660 return std::make_pair(
face_no,
2685template <
int dim,
int spacedim>
2688 const unsigned int i_face)
const
2704 if (this->tria->periodic_face_map.find(
2706 this->tria->periodic_face_map.end())
2713template <
int dim,
int spacedim>
2740template <
int dim,
int spacedim>
2743 const unsigned int i_face)
const
2745 if (!(this->face(
i_face)->at_boundary()))
2746 return this->neighbor(
i_face);
2747 else if (this->has_periodic_neighbor(
i_face))
2748 return this->periodic_neighbor(
i_face);
2752 return this->neighbor(
i_face);
2757template <
int dim,
int spacedim>
2760 const unsigned int i_face,
2777 cell_iterator
my_it(*
this);
2780 this->tria->periodic_face_map.find(std::make_pair(
my_it,
i_face));
2813template <
int dim,
int spacedim>
2814std::pair<unsigned int, unsigned int>
2816 const unsigned int i_face)
const
2833 cell_iterator
my_it(*
this);
2836 this->tria->periodic_face_map.find(std::make_pair(
my_it,
i_face));
2874template <
int dim,
int spacedim>
2877 const unsigned int i_face)
const
2879 return periodic_neighbor(
i_face)->index();
2884template <
int dim,
int spacedim>
2887 const unsigned int i_face)
const
2889 return periodic_neighbor(
i_face)->level();
2894template <
int dim,
int spacedim>
2897 const unsigned int i_face)
const
2899 return periodic_neighbor_face_no(
i_face);
2904template <
int dim,
int spacedim>
2907 const unsigned int i_face)
const
2919 cell_iterator
my_it(*
this);
2922 this->tria->periodic_face_map.find(std::make_pair(
my_it,
i_face));
2935template <
int dim,
int spacedim>
2938 const unsigned int i_face)
const
2959 cell_iterator
my_it(*
this);
2962 this->tria->periodic_face_map.find(std::make_pair(
my_it,
i_face));
2983 const unsigned int neighbor_level =
nb_face_pair->second.first.first->level();
2990template <
int dim,
int spacedim>
2997 return (neighbor_index(i) == -1);
3002template <
int dim,
int spacedim>
3007 return at_boundary();
3010 for (
unsigned int l = 0; l < this->n_lines(); ++l)
3011 if (this->line(l)->at_boundary())
3020template <
int dim,
int spacedim>
3023 const unsigned int face,
3024 const unsigned int subface)
const
3026 Assert(!this->has_children(),
3027 ExcMessage(
"The present cell must not have children!"));
3028 Assert(!this->at_boundary(face),
3029 ExcMessage(
"The present cell must have a valid neighbor!"));
3030 Assert(this->neighbor(face)->has_children() ==
true,
3031 ExcMessage(
"The neighbor must have children!"));
3040 this->neighbor_of_neighbor(face);
3041 const auto neighbor = this->neighbor(face);
3043 Assert(neighbor->refinement_case() ==
3051 this->combined_face_orientation(face) ?
3055 neighbor->reference_cell().child_cell_on_face(
3064 this->neighbor_of_neighbor(face);
3067 this->neighbor(face)->refinement_case(),
3168 this->neighbor(face);
3188 neighbor->refinement_case(),
3198 Assert((this->face(face)->child(subface) ==
3220 if (neighbor_is_coarser(face))
3222 std::pair<unsigned int, unsigned int> indices =
3223 neighbor_of_coarser_neighbor(face);
3276 ->refinement_case() ==
3284 neighbor->refinement_case(),
3296 neighbor->refinement_case(),
3372 mother_face->child(subface / 2)->refinement_case()));
3389 switch (this->subface_case(face))
3399 mother_face->child(subface / 2)->child(subface % 2);
3457template <
int structdim,
int dim,
int spacedim>
3466template <
int structdim,
int dim,
int spacedim>
3475template <
int structdim,
int dim,
int spacedim>
3484#include "grid/tria_accessor.inst"
ArrayView< std::remove_reference_t< typename std::iterator_traits< Iterator >::reference >, MemorySpaceType > make_array_view(const Iterator begin, const Iterator end)
void recursively_set_subdomain_id(const types::subdomain_id new_subdomain_id) const
TriaIterator< CellAccessor< dim, spacedim > > parent() const
void set_active_cell_index(const unsigned int active_cell_index) const
unsigned int neighbor_of_neighbor_internal(const unsigned int neighbor) const
TriaIterator< CellAccessor< dim, spacedim > > periodic_neighbor(const unsigned int i) const
void set_neighbor(const unsigned int i, const TriaIterator< CellAccessor< dim, spacedim > > &pointer) const
void set_direction_flag(const bool new_direction_flag) const
void recursively_set_material_id(const types::material_id new_material_id) const
void set_level_subdomain_id(const types::subdomain_id new_level_subdomain_id) const
TriaActiveIterator< DoFCellAccessor< dim, spacedim, false > > as_dof_handler_iterator(const DoFHandler< dim, spacedim > &dof_handler) const
TriaIterator< CellAccessor< dim, spacedim > > neighbor_child_on_subface(const unsigned int face_no, const unsigned int subface_no) const
void set_subdomain_id(const types::subdomain_id new_subdomain_id) const
bool neighbor_is_coarser(const unsigned int face_no) const
void set_global_level_cell_index(const types::global_cell_index index) const
bool has_periodic_neighbor(const unsigned int i) const
int periodic_neighbor_level(const unsigned int i) const
std::pair< unsigned int, unsigned int > neighbor_of_coarser_neighbor(const unsigned int neighbor) const
unsigned int neighbor_of_neighbor(const unsigned int face_no) const
void set_material_id(const types::material_id new_material_id) const
bool point_inside_codim(const Point< spacedim_ > &p) const
bool has_boundary_lines() const
TriaIterator< CellAccessor< dim, spacedim > > periodic_neighbor_child_on_subface(const unsigned int face_no, const unsigned int subface_no) const
int periodic_neighbor_index(const unsigned int i) const
bool periodic_neighbor_is_coarser(const unsigned int i) const
void set_global_active_cell_index(const types::global_cell_index index) const
void set_parent(const unsigned int parent_index)
std::pair< unsigned int, unsigned int > periodic_neighbor_of_coarser_periodic_neighbor(const unsigned face_no) const
bool point_inside(const Point< spacedim > &p) const
bool direction_flag() const
types::material_id material_id() const
TriaIterator< DoFCellAccessor< dim, spacedim, true > > as_dof_handler_level_iterator(const DoFHandler< dim, spacedim > &dof_handler) const
TriaIterator< CellAccessor< dim, spacedim > > neighbor_or_periodic_neighbor(const unsigned int i) const
unsigned int periodic_neighbor_of_periodic_neighbor(const unsigned int i) const
unsigned int periodic_neighbor_face_no(const unsigned int i) const
typename LevelSelector::cell_iterator level_cell_iterator
static IteratorState::IteratorStates state()
Abstract base class for mapping classes.
numbers::NumberTraits< Number >::real_type norm() const
void set_user_index(const unsigned int p) const
void clear_user_pointer() const
void recursively_set_user_index(const unsigned int p) const
void clear_user_data() const
Point< structdim > real_to_unit_cell_affine_approximation(const Point< spacedim > &point) const
void recursively_clear_user_index() const
void recursively_set_user_pointer(void *p) const
double extent_in_direction(const unsigned int axis) const
Point< spacedim > intermediate_point(const Point< structdim > &coordinates) const
void recursively_clear_user_flag() const
Point< spacedim > barycenter() const
BoundingBox< spacedim > bounding_box() const
void clear_user_flag() const
void recursively_set_user_flag() const
bool user_flag_set() const
void set_user_flag() const
void * user_pointer() const
Point< spacedim > center(const bool respect_manifold=false, const bool interpolate_from_surrounding=false) const
void clear_user_index() const
void set_bounding_object_indices(const std::initializer_list< int > &new_indices) const
unsigned int user_index() const
void set_user_pointer(void *p) const
void recursively_clear_user_pointer() const
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
static ::ExceptionBase & ExcCellHasNoParent()
static ::ExceptionBase & ExcNotImplemented()
static ::ExceptionBase & ExcCellNotUsed()
static ::ExceptionBase & ExcNoPeriodicNeighbor()
#define Assert(cond, exc)
static ::ExceptionBase & ExcImpossibleInDim(int arg1)
static ::ExceptionBase & ExcNeighborIsNotCoarser()
static ::ExceptionBase & ExcNeighborIsCoarser()
#define AssertIndexRange(index, range)
static ::ExceptionBase & ExcInternalError()
static ::ExceptionBase & ExcMessage(std::string arg1)
#define AssertThrow(cond, exc)
typename ActiveSelector::active_cell_iterator active_cell_iterator
void set_all_manifold_ids(const types::manifold_id) const
#define DEAL_II_ASSERT_UNREACHABLE()
#define DEAL_II_NOT_IMPLEMENTED()
@ valid
Iterator points to a valid object.
@ invalid
Iterator is invalid, probably due to an error.
std::pair< std::array< Point< MeshIteratorType::AccessorType::space_dimension >, n_default_points_per_cell< MeshIteratorType >()>, std::array< double, n_default_points_per_cell< MeshIteratorType >()> > get_default_points_and_weights(const MeshIteratorType &iterator, const bool with_interpolation=false)
Tensor< 2, dim, Number > w(const Tensor< 2, dim, Number > &F, const Tensor< 2, dim, Number > &dF_dt)
SymmetricTensor< 2, dim, Number > e(const Tensor< 2, dim, Number > &F)
SymmetricTensor< 2, dim, Number > d(const Tensor< 2, dim, Number > &F, const Tensor< 2, dim, Number > &dF_dt)
constexpr const ReferenceCell Tetrahedron
constexpr const ReferenceCell Quadrilateral
constexpr const ReferenceCell Wedge
constexpr const ReferenceCell Pyramid
constexpr const ReferenceCell Triangle
constexpr const ReferenceCell Hexahedron
std::tuple< bool, bool, bool > split_face_orientation(const types::geometric_orientation combined_face_orientation)
constexpr unsigned int invalid_unsigned_int
constexpr types::geometric_orientation reverse_line_orientation
constexpr types::material_id invalid_material_id
constexpr types::geometric_orientation default_geometric_orientation
::VectorizedArray< Number, width > min(const ::VectorizedArray< Number, width > &, const ::VectorizedArray< Number, width > &)
::VectorizedArray< Number, width > max(const ::VectorizedArray< Number, width > &, const ::VectorizedArray< Number, width > &)
::VectorizedArray< Number, width > sqrt(const ::VectorizedArray< Number, width > &)
::VectorizedArray< Number, width > abs(const ::VectorizedArray< Number, width > &)
static unsigned int child_cell_on_face(const RefinementCase< dim > &ref_case, const unsigned int face, const unsigned int subface, const bool face_orientation=true, const bool face_flip=false, const bool face_rotation=false, const RefinementCase< dim - 1 > &face_refinement_case=RefinementCase< dim - 1 >::isotropic_refinement)
static double d_linear_shape_function(const Point< dim > &xi, const unsigned int i)
static bool is_inside_unit_cell(const Point< dim > &p)