Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More thetis issues #70

Closed
wence- opened this issue May 11, 2016 · 6 comments · Fixed by #72
Closed

More thetis issues #70

wence- opened this issue May 11, 2016 · 6 comments · Fixed by #72

Comments

@wence-
Copy link
Contributor

wence- commented May 11, 2016

Running the following test:

py.test test_steady_state_basin_mms.py::test_steady_state_basin_convergence[mimetic-Setup9] -x -v -s

Results in:

>   Compile errors in %s""" % (e.cmd, e.returncode, logfile, errfile))
E                                   CompilationError: Command "['mpicc', '-std=c99', '-fPIC', '-Wall', '-framework', 'Accelerate', '-march=native', '-O3', '-I/Users/lmitche1/Documents/work/src/deps/petsc/include', '-I/Users/lmitche1/Documents/work/src/deps/petsc/arch-darwin-c-opt/include', '-I/Users/lmitche1/Documents/work/src/PyOP2/pyop2', '-mavx', '-o', '/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.so.tmp', '/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c', '-dynamiclib', '-L/Users/lmitche1/Documents/work/src/deps/petsc/lib', '-L/Users/lmitche1/Documents/work/src/deps/petsc/arch-darwin-c-opt/lib', '-Wl,-rpath,/Users/lmitche1/Documents/work/src/deps/petsc/lib', '-Wl,-rpath,/Users/lmitche1/Documents/work/src/deps/petsc/arch-darwin-c-opt/lib', '-lpetsc', '-lm']" return error status 1.
E                                   Unable to compile code
E                                   Compile log in /Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.log
E                                   Compile errors in /Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.err

Error file is:

/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:578:27: error: use of undeclared identifier 'ip_43_0_9'
    double  ip_77_1_0  = (ip_43_0_9 * ((t63 * t44) + (t58 * t45)));
                          ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:579:27: error: use of undeclared identifier 'ip_43_0_9'
    double  ip_77_1_1  = (ip_43_0_9 * ((t64 * t44) + (t59 * t45)));
                          ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:580:27: error: use of undeclared identifier 'ip_43_0_9'
    double  ip_78_1_0  = (ip_43_0_9 * ((t59 * t45) + (t64 * t44)));
                          ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:581:27: error: use of undeclared identifier 'ip_43_0_9'
    double  ip_78_1_1  = (ip_43_0_9 * ((t58 * t45) + (t63 * t44)));
                          ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:592:27: error: use of undeclared identifier 'ip_43_0_9'
    double  ip_83_1_0  = (ip_43_0_9 * ((t61 * t53) + (t55 * t60)));
                          ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:593:27: error: use of undeclared identifier 'ip_43_0_9'
    double  ip_83_1_1  = (ip_43_0_9 * ((t62 * t53) + (t56 * t60)));
                          ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:594:27: error: use of undeclared identifier 'ip_43_0_9'
    double  ip_84_1_0  = (ip_43_0_9 * ((t55 * t60) + (t61 * t53)));
                          ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:595:27: error: use of undeclared identifier 'ip_43_0_9'
    double  ip_84_1_1  = (ip_43_0_9 * ((t56 * t60) + (t62 * t53)));
                          ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:976:15: warning: unused variable 't171' [-Wunused-variable]
      double  t171  = (-1 * ((t30[facet[1]][ip][j] * t56) + (t29[facet[1]][ip][j] * t55)));
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:1000:15: warning: unused variable 'ip_j_0_2_2' [-Wunused-variable]
      double  ip_j_0_2_2 ;
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:987:15: warning: unused variable 'ip_j_0_1_1' [-Wunused-variable]
      double  ip_j_0_1_1 ;
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:985:15: warning: unused variable 't196' [-Wunused-variable]
      double  t196  = (t88 * ((t30[facet[0]][ip][j] * t64) + (t29[facet[0]][ip][j] * t63)));
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:988:15: warning: unused variable 'ip_j_0_1_2' [-Wunused-variable]
      double  ip_j_0_1_2 ;
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:999:15: warning: unused variable 'ip_j_0_2_1' [-Wunused-variable]
      double  ip_j_0_2_1 ;
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:980:15: warning: unused variable 't176' [-Wunused-variable]
      double  t176  = (t90 * ((t30[facet[1]][ip][j] * t62) + (t29[facet[1]][ip][j] * t61)));
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:986:15: warning: unused variable 'ip_j_0_1_0' [-Wunused-variable]
      double  ip_j_0_1_0 ;
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:1002:15: warning: unused variable 'ip_j_0_2_4' [-Wunused-variable]
      double  ip_j_0_2_4 ;
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:975:15: warning: unused variable 't170' [-Wunused-variable]
      double  t170  = (-1 * ((t30[facet[1]][ip][j] * t62) + (t29[facet[1]][ip][j] * t61)));
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:971:15: warning: unused variable 't156' [-Wunused-variable]
      double  t156  = (t53 * ((t30[facet[1]][ip][j] * t62) + (t29[facet[1]][ip][j] * t61)));
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:1001:15: warning: unused variable 'ip_j_0_2_3' [-Wunused-variable]
      double  ip_j_0_2_3 ;
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:1003:15: warning: unused variable 'ip_j_0_2_5' [-Wunused-variable]
      double  ip_j_0_2_5 ;
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:982:15: warning: unused variable 't190' [-Wunused-variable]
      double  t190  = (t44 * ((t30[facet[0]][ip][j] * t59) + (t29[facet[0]][ip][j] * t58)));
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:972:15: warning: unused variable 't158' [-Wunused-variable]
      double  t158  = (t60 * ((t30[facet[1]][ip][j] * t56) + (t29[facet[1]][ip][j] * t55)));
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:1005:15: warning: unused variable 'ip_j_0_2_7' [-Wunused-variable]
      double  ip_j_0_2_7 ;
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:973:15: warning: unused variable 't167' [-Wunused-variable]
      double  t167  = (t60 * ((t30[facet[1]][ip][j] * t62) + (t29[facet[1]][ip][j] * t61)));
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:1004:15: warning: unused variable 'ip_j_0_2_6' [-Wunused-variable]
      double  ip_j_0_2_6 ;
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:981:15: warning: unused variable 't189' [-Wunused-variable]
      double  t189  = (t45 * ((t30[facet[0]][ip][j] * t64) + (t29[facet[0]][ip][j] * t63)));
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:995:15: warning: unused variable 'ip_j_0_1_10' [-Wunused-variable]
      double  ip_j_0_1_10 ;
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:978:15: warning: unused variable 't174' [-Wunused-variable]
      double  t174  = (t91 * ((t30[facet[1]][ip][j] * t62) + (t29[facet[1]][ip][j] * t61)));
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:1007:15: warning: unused variable 'ip_j_0_3_1' [-Wunused-variable]
      double  ip_j_0_3_1 ;
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:996:15: warning: unused variable 'ip_j_0_1_9' [-Wunused-variable]
      double  ip_j_0_1_9  = ((ip_0_0_0 * ((t30[facet[0]][ip][j] * c_42_0_0) + (t29[facet[0]][ip][j] * c_42_0_1))) + (t32[facet[0]][ip][j] * ip_0_0_2) + (t33[facet[0]][ip][j] * ip_0_0_8) + (t34[facet[0]][ip][j] * ip_0_0_9) + (t31[facet[0]][ip][j] * ip_0_0_5));
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:1006:15: warning: unused variable 'ip_j_0_3_0' [-Wunused-variable]
      double  ip_j_0_3_0 ;
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:974:15: warning: unused variable 't168' [-Wunused-variable]
      double  t168  = (t53 * ((t30[facet[1]][ip][j] * t56) + (t29[facet[1]][ip][j] * t55)));
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:993:15: warning: unused variable 'ip_j_0_1_7' [-Wunused-variable]
      double  ip_j_0_1_7 ;
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:979:15: warning: unused variable 't175' [-Wunused-variable]
      double  t175  = (t90 * ((t30[facet[1]][ip][j] * t56) + (t29[facet[1]][ip][j] * t55)));
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:983:15: warning: unused variable 't192' [-Wunused-variable]
      double  t192  = ((t30[facet[0]][ip][j] * ip_35_0_1) + (t29[facet[0]][ip][j] * ip_35_0_0));
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:994:15: warning: unused variable 'ip_j_0_1_8' [-Wunused-variable]
      double  ip_j_0_1_8 ;
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:997:15: warning: unused variable 'ip_j_0_1_11' [-Wunused-variable]
      double  ip_j_0_1_11  = ((ip_0_0_6 * ((t30[facet[0]][ip][j] * c_42_0_0) + (t29[facet[0]][ip][j] * c_42_0_1))) + (t32[facet[0]][ip][j] * ip_0_0_1) + (t33[facet[0]][ip][j] * ip_0_0_13) + (t34[facet[0]][ip][j] * ip_0_0_11) + (t31[facet[0]][ip][j] * ip_0_0_3));
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:991:15: warning: unused variable 'ip_j_0_1_5' [-Wunused-variable]
      double  ip_j_0_1_5 ;
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:977:15: warning: unused variable 't173' [-Wunused-variable]
      double  t173  = (t91 * ((t30[facet[1]][ip][j] * t56) + (t29[facet[1]][ip][j] * t55)));
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:992:15: warning: unused variable 'ip_j_0_1_6' [-Wunused-variable]
      double  ip_j_0_1_6 ;
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:998:15: warning: unused variable 'ip_j_0_2_0' [-Wunused-variable]
      double  ip_j_0_2_0 ;
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:989:15: warning: unused variable 'ip_j_0_1_3' [-Wunused-variable]
      double  ip_j_0_1_3 ;
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:984:15: warning: unused variable 't193' [-Wunused-variable]
      double  t193  = (t89 * ((t30[facet[0]][ip][j] * t59) + (t29[facet[0]][ip][j] * t58)));
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:990:15: warning: unused variable 'ip_j_0_1_4' [-Wunused-variable]
      double  ip_j_0_1_4 ;
              ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:1084:46: warning: incompatible pointer types passing 'double [16][16]' to parameter of type 'double (*)[8][2][8]' [-Wincompatible-pointer-types]
    form00_interior_facet_integral_otherwise(buffer_arg0_0, arg1_0_vec, arg2_0, arg3_0_vec, arg4_0, arg5_0_vec, arg6_0, arg7_0, arg8_0_vec, arg9_0 + (i * 2));
                                             ^~~~~~~~~~~~~
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:15:70: note: passing argument to parameter 'A' here
static inline void form00_interior_facet_integral_otherwise (double  A[2][8][2][8] , const double *restrict *restrict coords , const double  w_0[1] , const double *restrict w_1[2][3] , const double  w_2[1] , const double *restrict w_4[2][3] , const double  w_6[1] , const double  w_7[1] , const double *restrict *restrict w_8_ , const unsigned int  facet[2] )
                                                                     ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:1084:61: warning: passing 'double *[12]' to parameter of type 'const double *restrict *' discards qualifiers in nested pointer types [-Wincompatible-pointer-types-discards-qualifiers]
    form00_interior_facet_integral_otherwise(buffer_arg0_0, arg1_0_vec, arg2_0, arg3_0_vec, arg4_0, arg5_0_vec, arg6_0, arg7_0, arg8_0_vec, arg9_0 + (i * 2));
                                                            ^~~~~~~~~~
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:15:119: note: passing argument to parameter 'coords' here
static inline void form00_interior_facet_integral_otherwise (double  A[2][8][2][8] , const double *restrict *restrict coords , const double  w_0[1] , const double *restrict w_1[2][3] , const double  w_2[1] , const double *restrict w_4[2][3] , const double  w_6[1] , const double  w_7[1] , const double *restrict *restrict w_8_ , const unsigned int  facet[2] )
                                                                                                                      ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:1084:81: warning: incompatible pointer types passing 'double *[6]' to parameter of type 'const double *restrict (*)[3]' [-Wincompatible-pointer-types]
    form00_interior_facet_integral_otherwise(buffer_arg0_0, arg1_0_vec, arg2_0, arg3_0_vec, arg4_0, arg5_0_vec, arg6_0, arg7_0, arg8_0_vec, arg9_0 + (i * 2));
                                                                                ^~~~~~~~~~
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:15:174: note: passing argument to parameter 'w_1' here
static inline void form00_interior_facet_integral_otherwise (double  A[2][8][2][8] , const double *restrict *restrict coords , const double  w_0[1] , const double *restrict w_1[2][3] , const double  w_2[1] , const double *restrict w_4[2][3] , const double  w_6[1] , const double  w_7[1] , const double *restrict *restrict w_8_ , const unsigned int  facet[2] )
                                                                                                                                                                             ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:1084:101: warning: incompatible pointer types passing 'double *[6]' to parameter of type 'const double *restrict (*)[3]' [-Wincompatible-pointer-types]
    form00_interior_facet_integral_otherwise(buffer_arg0_0, arg1_0_vec, arg2_0, arg3_0_vec, arg4_0, arg5_0_vec, arg6_0, arg7_0, arg8_0_vec, arg9_0 + (i * 2));
                                                                                                    ^~~~~~~~~~
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:15:232: note: passing argument to parameter 'w_4' here
static inline void form00_interior_facet_integral_otherwise (double  A[2][8][2][8] , const double *restrict *restrict coords , const double  w_0[1] , const double *restrict w_1[2][3] , const double  w_2[1] , const double *restrict w_4[2][3] , const double  w_6[1] , const double  w_7[1] , const double *restrict *restrict w_8_ , const unsigned int  facet[2] )
                                                                                                                                                                                                                                       ^
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:1084:129: warning: passing 'double *[44]' to parameter of type 'const double *restrict *' discards qualifiers in nested pointer types [-Wincompatible-pointer-types-discards-qualifiers]
    form00_interior_facet_integral_otherwise(buffer_arg0_0, arg1_0_vec, arg2_0, arg3_0_vec, arg4_0, arg5_0_vec, arg6_0, arg7_0, arg8_0_vec, arg9_0 + (i * 2));
                                                                                                                                ^~~~~~~~~~
/Users/lmitche1/tmp/pyop2-cache/f63d65783366bea318218c2f14725a43_p29779.c:15:323: note: passing argument to parameter 'w_8_' here
static inline void form00_interior_facet_integral_otherwise (double  A[2][8][2][8] , const double *restrict *restrict coords , const double  w_0[1] , const double *restrict w_1[2][3] , const double  w_2[1] , const double *restrict w_4[2][3] , const double  w_6[1] , const double  w_7[1] , const double *restrict *restrict w_8_ , const unsigned int  facet[2] )
                                                                                                                                                                                                                                                                                                                                  ^
42 warnings and 8 errors generated.

C file


        #include <petsc.h>
        #include <stdbool.h>
        #include <math.h>





            #define OP2_STRIDE(a, idx) a[idx]
            #include <immintrin.h>



static inline void form00_interior_facet_integral_otherwise (double  A[2][8][2][8] , const double *restrict *restrict coords , const double  w_0[1] , const double *restrict w_1[2][3] , const double  w_2[1] , const double *restrict w_4[2][3] , const double  w_6[1] , const double  w_7[1] , const double *restrict *restrict w_8_ , const unsigned int  facet[2] )
{
  double  w_8[2][11] ;

  for (int  i  = 0; i < 8; i += 1)
  {
    w_8[0][0 + i] = w_8_[0 + i][0];
    w_8[1][0 + i] = w_8_[8 + i][0];

  }

  for (int  i  = 0; i < 3; i += 1)
  {
    w_8[0][8 + i] = w_8_[16 + i][0];
    w_8[1][8 + i] = w_8_[19 + i][0];

  }
  double  t0  = (-1 * coords[0][0]);
  double  t1  = (t0 + (1 * coords[1][0]));
  double  t2  = (t0 + (1 * coords[2][0]));
  double  t3  = (1 * t2);
  double  t4  = ((-1 * t1) + t3);
  double  t5  = (-1 * coords[6][0]);
  double  t6  = (t5 + (1 * coords[7][0]));
  double  t7  = (-1 * t6);
  double  t8  = (t5 + (1 * coords[8][0]));
  double  t9  = (1 * t8);
  double  t10  = (t7 + t9);
  double  t11  = (1 * t1);
  double  t12  = (1 * t6);
  double  t13  = ((t1 * t8) + (-1 * t2 * t6));
  double  t14  = (-1 * coords[3][0]);
  double  t15  = (t14 + (1 * coords[4][0]));
  double  t16  = (t14 + (1 * coords[5][0]));
  double  t17  = (1 * t16);
  double  t18  = ((-1 * t15) + t17);
  double  t19  = (-1 * coords[9][0]);
  double  t20  = (t19 + (1 * coords[10][0]));
  double  t21  = (-1 * t20);
  double  t22  = (t19 + (1 * coords[11][0]));
  double  t23  = (1 * t22);
  double  t24  = (t21 + t23);
  double  t25  = (1 * t15);
  double  t26  = (1 * t20);
  double  t27  = ((t15 * t22) + (-1 * t16 * t20));
  double  t28  = (30 / (0.5 * ((2 * ((sqrt((t4 * t4) + (t10 * t10)) * sqrt((t3 * t3) + (t9 * t9)) * sqrt((t11 * t11) + (t12 * t12))) / (4 * fabs(0.5 * t13)))) + (2 * ((sqrt((t18 * t18) + (t24 * t24)) * sqrt((t17 * t17) + (t23 * t23)) * sqrt((t25 * t25) + (t26 * t26))) / (4 * fabs(0.5 * t27)))))));
  static const double  t29[3][9][8]  = {{{0.0310794327312151, -0.0151595524850284, 0.0159198802461865, 0.0151595524850286, 0.984080119753812, -1.92116092653022, -0.0469993129774018, 0.0469993129774027}, 
  {0.143804544349967, -0.0618200980132853, 0.081984446336682, 0.0618200980132855, 0.918015553663317, -1.61024211663999, -0.22578899068665, 0.22578899068665}, 
  {0.274517330510414, -0.081203046860709, 0.193314283649705, 0.0812030468607092, 0.806685716350294, -1.14553981854047, -0.467831614160119, 0.467831614160119}, 
  {0.333271499760087, 0.00460178853800883, 0.337873288298096, -0.00460178853800858, 0.662126711701903, -0.653108635345626, -0.671144788058183, 0.671144788058182}, 
  {0.25, 0.250000000000001, 0.5, -0.25, 0.5, -0.25, -0.750000000000001, 0.749999999999999}, 
  {0.00901807635627877, 0.653108635345626, 0.662126711701905, -0.653108635345626, 0.337873288298095, -0.0046017885380083, -0.671144788058184, 0.671144788058182}, 
  {-0.338854102190176, 1.14553981854047, 0.806685716350296, -1.14553981854047, 0.193314283649705, 0.0812030468607097, -0.467831614160119, 0.467831614160119}, 
  {-0.692226562976668, 1.61024211663999, 0.918015553663318, -1.61024211663999, 0.0819844463366827, 0.0618200980132856, -0.22578899068665, 0.22578899068665}, 
  {-0.93708080677641, 1.92116092653022, 0.984080119753813, -1.92116092653022, 0.015919880246188, 0.0151595524850286, -0.046999312977402, 0.0469993129774031}}, 
  {{-0.0159198802461872, -0.0151595524850281, -0.0310794327312147, 0.0151595524850279, -1.92116092653022, 0.984080119753813, 0.0469993129774022, 0.0939986259548041}, 
  {-0.0819844463366824, -0.0618200980132853, -0.143804544349967, 0.061820098013285, -1.61024211663999, 0.918015553663318, 0.22578899068665, 0.451577981373299}, 
  {-0.193314283649705, -0.0812030468607094, -0.274517330510414, 0.0812030468607092, -1.14553981854047, 0.806685716350295, 0.467831614160119, 0.935663228320238}, 
  {-0.337873288298096, 0.00460178853800816, -0.333271499760087, -0.0046017885380083, -0.653108635345625, 0.662126711701904, 0.671144788058183, 1.34228957611637}, 
  {-0.5, 0.25, -0.25, -0.25, -0.249999999999999, 0.5, 0.750000000000001, 1.5}, 
  {-0.662126711701904, 0.653108635345625, -0.00901807635627885, -0.653108635345625, -0.00460178853800738, 0.337873288298096, 0.671144788058184, 1.34228957611637}, 
  {-0.806685716350295, 1.14553981854047, 0.338854102190176, -1.14553981854047, 0.0812030468607105, 0.193314283649705, 0.467831614160119, 0.935663228320239}, 
  {-0.918015553663318, 1.61024211663999, 0.692226562976668, -1.61024211663999, 0.0618200980132863, 0.0819844463366824, 0.22578899068665, 0.4515779813733}, 
  {-0.984080119753813, 1.92116092653022, 0.937080806776411, -1.92116092653022, 0.0151595524850294, 0.0159198802461874, 0.0469993129774022, 0.0939986259548053}}, 
  {{0.0, 0.0, 0.0, 0.0, -1.95224035926144, 0.952240359261439, 0.0, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, -1.75404666098995, 0.754046660989953, 0.0, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, -1.42005714905089, 0.420057149050885, 0.0, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, -0.986380135105713, -0.0136198648942869, 0.0, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, -0.5, -0.5, 0.0, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, -0.0136198648942875, -0.986380135105713, 0.0, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, 0.420057149050885, -1.42005714905089, 0.0, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, 0.754046660989953, -1.75404666098995, 0.0, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, 0.952240359261438, -1.95224035926144, 0.0, 0.0}}};
  static const double  t30[3][9][8]  = {{{1.92116092653022, -0.937080806776411, -0.0159198802461867, -0.0151595524850286, -0.984080119753813, 1.92116092653022, 0.0469993129774022, -0.0469993129774021}, 
  {1.61024211663999, -0.692226562976669, -0.081984446336682, -0.0618200980132855, -0.918015553663318, 1.61024211663999, 0.22578899068665, -0.225788990686649}, 
  {1.14553981854047, -0.338854102190177, -0.193314283649705, -0.0812030468607093, -0.806685716350295, 1.14553981854047, 0.46783161416012, -0.467831614160118}, 
  {0.653108635345626, 0.0090180763562778, -0.337873288298096, 0.00460178853800851, -0.662126711701904, 0.653108635345626, 0.671144788058183, -0.671144788058182}, 
  {0.25, 0.25, -0.5, 0.25, -0.5, 0.25, 0.750000000000001, -0.749999999999999}, 
  {0.00460178853800824, 0.333271499760087, -0.662126711701905, 0.653108635345626, -0.337873288298095, 0.00460178853800816, 0.671144788058184, -0.671144788058182}, 
  {-0.0812030468607096, 0.274517330510414, -0.806685716350295, 1.14553981854047, -0.193314283649705, -0.0812030468607098, 0.467831614160119, -0.467831614160119}, 
  {-0.0618200980132855, 0.143804544349967, -0.918015553663318, 1.61024211663999, -0.0819844463366823, -0.0618200980132858, 0.225788990686649, -0.22578899068665}, 
  {-0.0151595524850285, 0.0310794327312155, -0.984080119753813, 1.92116092653022, -0.0159198802461875, -0.0151595524850289, 0.0469993129774019, -0.0469993129774029}}, 
  {{0.0, 0.0, 1.95224035926144, -0.95224035926144, 0.0, 0.0, 0.0, 0.0}, 
  {0.0, 0.0, 1.75404666098995, -0.754046660989954, 0.0, 0.0, 0.0, 0.0}, 
  {0.0, 0.0, 1.42005714905089, -0.420057149050886, 0.0, 0.0, 0.0, 0.0}, 
  {0.0, 0.0, 0.986380135105714, 0.0136198648942868, 0.0, 0.0, 0.0, 0.0}, 
  {0.0, 0.0, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0}, 
  {0.0, 0.0, 0.013619864894287, 0.986380135105713, 0.0, 0.0, 0.0, 0.0}, 
  {0.0, 0.0, -0.420057149050886, 1.42005714905089, 0.0, 0.0, 0.0, 0.0}, 
  {0.0, 0.0, -0.754046660989954, 1.75404666098995, 0.0, 0.0, 0.0, 0.0}, 
  {0.0, 0.0, -0.952240359261439, 1.95224035926144, 0.0, 0.0, 0.0, 0.0}}, 
  {{-0.0151595524850275, -0.0159198802461865, 1.92116092653022, -0.984080119753813, 0.0310794327312146, -0.0151595524850278, 0.0939986259548034, 0.0469993129774014}, 
  {-0.0618200980132845, -0.0819844463366817, 1.61024211663999, -0.918015553663318, 0.143804544349967, -0.0618200980132847, 0.451577981373298, 0.225788990686649}, 
  {-0.0812030468607085, -0.193314283649704, 1.14553981854047, -0.806685716350296, 0.274517330510413, -0.0812030468607085, 0.935663228320237, 0.467831614160118}, 
  {0.00460178853800912, -0.337873288298095, 0.653108635345627, -0.662126711701905, 0.333271499760086, 0.00460178853800911, 1.34228957611636, 0.671144788058182}, 
  {0.250000000000001, -0.5, 0.250000000000001, -0.5, 0.249999999999999, 0.250000000000001, 1.5, 0.749999999999999}, 
  {0.653108635345626, -0.662126711701904, 0.00460178853800906, -0.337873288298096, 0.00901807635627781, 0.653108635345626, 1.34228957611637, 0.671144788058182}, 
  {1.14553981854047, -0.806685716350295, -0.0812030468607087, -0.193314283649705, -0.338854102190177, 1.14553981854047, 0.935663228320237, 0.467831614160118}, 
  {1.61024211663999, -0.918015553663318, -0.0618200980132848, -0.0819844463366828, -0.692226562976669, 1.61024211663999, 0.451577981373298, 0.225788990686649}, 
  {1.92116092653022, -0.984080119753813, -0.0151595524850278, -0.0159198802461877, -0.937080806776411, 1.92116092653022, 0.0939986259548042, 0.0469993129774021}}};
  static const double  t31[3][9][8]  = {{{1.95224035926143, -0.904480718522874, 1.04775964073855, 0.904480718522875, 1.95224035926145, 1.95224035926143, -2.99999999999998, 2.85672107778432}, 
  {1.75404666098994, -0.508093321979904, 1.24595333901004, 0.508093321979904, 1.75404666098996, 1.75404666098994, -2.99999999999998, 2.26213998296987}, 
  {1.42005714905088, 0.159885701898233, 1.57994285094911, -0.159885701898232, 1.42005714905089, 1.42005714905087, -2.99999999999998, 1.26017144715266}, 
  {0.986380135105703, 1.02723972978858, 2.01361986489428, -1.02723972978858, 0.986380135105722, 0.986380135105701, -2.99999999999998, -0.0408595946828559}, 
  {0.49999999999999, 2, 2.49999999999999, -2, 0.5, 0.499999999999988, -2.99999999999998, -1.5}, 
  {0.0136198648942767, 2.97276027021143, 2.98638013510571, -2.97276027021143, 0.0136198648942942, 0.0136198648942754, -2.99999999999998, -2.95914040531714}, 
  {-0.420057149050897, 3.84011429810178, 3.42005714905088, -3.84011429810178, -0.42005714905088, -0.420057149050898, -2.99999999999998, -4.26017144715266}, 
  {-0.754046660989965, 4.50809332197991, 3.75404666098995, -4.50809332197991, -0.754046660989948, -0.754046660989966, -2.99999999999998, -5.26213998296986}, 
  {-0.952240359261451, 4.90448071852288, 3.95224035926143, -4.90448071852288, -0.952240359261434, -0.952240359261452, -2.99999999999998, -5.85672107778432}}, 
  {{-1.0, -0.904480718522879, -1.90448071852289, 0.904480718522879, 4.90448071852289, -1.0, 2.90448071852289, 5.80896143704576}, 
  {-1.0, -0.508093321979908, -1.50809332197992, 0.508093321979908, 4.50809332197992, -1.0, 2.50809332197992, 5.01618664395982}, 
  {-1.0, 0.159885701898229, -0.840114298101779, -0.159885701898229, 3.84011429810178, -1.0, 1.84011429810179, 3.68022859620355}, 
  {-1.0, 1.02723972978857, 0.0272397297885656, -1.02723972978857, 2.97276027021144, -1.00000000000001, 0.972760270211442, 1.94552054042286}, 
  {-1.0, 2, 1.0, -2, 2.00000000000001, -1.00000000000001, 1.55680740378407e-14, 0.0}, 
  {-1.0, 2.97276027021143, 1.97276027021142, -2.97276027021143, 1.02723972978858, -1.00000000000001, -0.972760270211409, -1.94552054042285}, 
  {-1.00000000000001, 3.84011429810178, 2.84011429810177, -3.84011429810177, 0.159885701898236, -1.00000000000001, -1.84011429810175, -3.68022859620354}, 
  {-1.00000000000001, 4.50809332197991, 3.5080933219799, -4.50809332197991, -0.508093321979902, -1.00000000000001, -2.50809332197989, -5.01618664395981}, 
  {-1.00000000000001, 4.90448071852288, 3.90448071852287, -4.90448071852288, -0.904480718522874, -1.00000000000001, -2.90448071852286, -5.80896143704576}}, 
  {{-0.952240359261447, -1.0, -1.95224035926145, 1.0, 4.95224035926145, -0.952240359261447, 2.9044807185229, 5.95224035926145}, 
  {-0.754046660989961, -1.0, -1.75404666098996, 1.0, 4.75404666098996, -0.754046660989961, 2.50809332197992, 5.75404666098996}, 
  {-0.420057149050892, -1.0, -1.42005714905089, 1.0, 4.42005714905089, -0.420057149050893, 1.84011429810179, 5.42005714905089}, 
  {0.0136198648942794, -1.0, -0.986380135105722, 1.0, 3.98638013510572, 0.0136198648942782, 0.972760270211442, 4.98638013510572}, 
  {0.5, -1.0, -0.5, 1.0, 3.50000000000001, 0.5, 1.59984270847106e-14, 4.5}, 
  {0.986380135105704, -1.0, -0.0136198648942953, 1.0, 3.01361986489429, 0.986380135105702, -0.972760270211409, 4.01361986489429}, 
  {1.42005714905088, -1.0, 0.420057149050877, 1.0, 2.57994285094912, 1.42005714905087, -1.84011429810175, 3.57994285094912}, 
  {1.75404666098994, -1.0, 0.754046660989945, 1.0, 2.24595333901005, 1.75404666098994, -2.50809332197989, 3.24595333901005}, 
  {1.95224035926143, -1.0, 0.95224035926143, 1.0, 2.04775964073857, 1.95224035926143, -2.90448071852286, 3.04775964073857}}};
  static const double  t32[3][9][8]  = {{{0.0477596407385599, 0.0, 0.0477596407385589, 0.0, 2.95224035926143, -2.95224035926143, -0.0955192814771191, -0.0477596407385589}, 
  {0.245953339010045, 0.0, 0.245953339010045, 0.0, 2.75404666098995, -2.75404666098995, -0.49190667802009, -0.245953339010045}, 
  {0.579942850949114, 0.0, 0.579942850949113, 0.0, 2.42005714905088, -2.42005714905088, -1.15988570189823, -0.579942850949114}, 
  {1.01361986489429, 0.0, 1.01361986489429, 0.0, 1.98638013510571, -1.98638013510571, -2.02723972978857, -1.01361986489429}, 
  {1.5, 0.0, 1.5, 0.0, 1.49999999999999, -1.5, -3.0, -1.5}, 
  {1.98638013510571, 0.0, 1.98638013510571, 0.0, 1.01361986489428, -1.01361986489428, -3.97276027021142, -1.98638013510571}, 
  {2.42005714905088, 0.0, 2.42005714905089, 0.0, 0.579942850949106, -0.579942850949111, -4.84011429810177, -2.42005714905089}, 
  {2.75404666098995, 0.0, 2.75404666098995, 0.0, 0.245953339010037, -0.245953339010042, -5.50809332197991, -2.75404666098996}, 
  {2.95224035926144, 0.0, 2.95224035926144, 0.0, 0.0477596407385503, -0.0477596407385557, -5.90448071852287, -2.95224035926144}}, 
  {{0.0477596407385609, 0.0, 0.0477596407385599, 0.0, 2.95224035926143, -2.95224035926143, -0.0955192814771211, -0.04775964073856}, 
  {0.245953339010046, 0.0, 0.245953339010046, 0.0, 2.75404666098995, -2.75404666098995, -0.491906678020092, -0.245953339010046}, 
  {0.579942850949114, 0.0, 0.579942850949114, 0.0, 2.42005714905088, -2.42005714905088, -1.15988570189823, -0.579942850949115}, 
  {1.01361986489429, 0.0, 1.01361986489429, 0.0, 1.98638013510571, -1.98638013510571, -2.02723972978857, -1.01361986489429}, 
  {1.5, 0.0, 1.5, 0.0, 1.49999999999999, -1.5, -3.0, -1.5}, 
  {1.98638013510571, 0.0, 1.98638013510571, 0.0, 1.01361986489428, -1.01361986489428, -3.97276027021143, -1.98638013510571}, 
  {2.42005714905088, 0.0, 2.42005714905089, 0.0, 0.579942850949106, -0.579942850949111, -4.84011429810177, -2.42005714905089}, 
  {2.75404666098995, 0.0, 2.75404666098995, 0.0, 0.245953339010037, -0.245953339010042, -5.50809332197991, -2.75404666098996}, 
  {2.95224035926144, 0.0, 2.95224035926144, 0.0, 0.0477596407385503, -0.0477596407385557, -5.90448071852287, -2.95224035926144}}, 
  {{0.0, 0.0, 0.0, 0.0, 2.99999999999999, -2.99999999999999, 0.0, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, 2.99999999999999, -2.99999999999999, 0.0, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, 2.99999999999999, -2.99999999999999, 0.0, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, 2.99999999999999, -2.99999999999999, 0.0, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, 2.99999999999999, -2.99999999999999, 0.0, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, 2.99999999999999, -2.99999999999999, 0.0, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, 2.99999999999999, -2.99999999999999, 0.0, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, 2.99999999999999, -2.99999999999999, 0.0, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, 2.99999999999999, -2.99999999999999, 0.0, 0.0}}};
  static const double  t33[3][9][8]  = {{{1.21014309684142e-14, 2.95224035926142, -0.0477596407385628, 0.0477596407385754, -2.95224035926143, 1.25455201782643e-14, -2.95224035926145, -5.90448071852286}, 
  {1.14352971536391e-14, 2.75404666098994, -0.245953339010048, 0.24595333901006, -2.75404666098995, 1.18793863634892e-14, -2.75404666098996, -5.50809332197989}, 
  {1.21569421196455e-14, 2.42005714905087, -0.579942850949116, 0.579942850949127, -2.42005714905088, 1.20459198171829e-14, -2.4200571490509, -4.84011429810176}, 
  {1.12410081243297e-14, 1.9863801351057, -1.01361986489429, 1.0136198648943, -1.98638013510571, 1.12826414877532e-14, -1.98638013510572, -3.97276027021141}, 
  {1.12132525487141e-14, 1.49999999999999, -1.5, 1.50000000000001, -1.5, 1.12687636999453e-14, -1.50000000000001, -2.99999999999999}, 
  {1.15463194561016e-14, 1.01361986489427, -1.98638013510571, 1.98638013510572, -1.01361986489429, 1.11022302462516e-14, -1.0136198648943, -2.02723972978856}, 
  {1.24344978758018e-14, 0.579942850949101, -2.42005714905088, 2.42005714905089, -0.579942850949115, 1.17683640610267e-14, -0.579942850949126, -1.15988570189822}, 
  {1.22124532708767e-14, 0.245953339010033, -2.75404666098995, 2.75404666098996, -0.245953339010047, 1.17683640610267e-14, -0.245953339010058, -0.49190667802008}, 
  {1.28785870856518e-14, 0.0477596407385474, -2.95224035926143, 2.95224035926145, -0.0477596407385616, 1.19904086659517e-14, -0.0477596407385732, -0.0955192814771082}}, 
  {{0.0, 0.0, -3, 3.00000000000001, 0.0, 0.0, 0.0, 1.22124532708767e-14}, 
  {0.0, 0.0, -3, 3.00000000000001, 0.0, 0.0, 0.0, 1.15463194561016e-14}, 
  {0.0, 0.0, -3, 3.00000000000001, 0.0, 0.0, 0.0, 1.0769163338864e-14}, 
  {0.0, 0.0, -3, 3.00000000000001, 0.0, 0.0, 0.0, 0.0}, 
  {1.01585406753202e-14, -1.02140518265514e-14, -3, 3.00000000000001, 0.0, 0.0, 0.0, 0.0}, 
  {1.11022302462516e-14, -1.0991207943789e-14, -3, 3.00000000000001, 0.0, 1.0547118733939e-14, 0.0, 1.02140518265514e-14}, 
  {1.19904086659517e-14, -1.19904086659517e-14, -3.0, 3.00000000000001, 0.0, 1.14352971536391e-14, -1.06026298851702e-14, 1.13242748511766e-14}, 
  {1.19904086659517e-14, -1.24344978758018e-14, -3, 3.00000000000001, 0.0, 1.15463194561016e-14, -1.15463194561016e-14, 1.19904086659517e-14}, 
  {1.26565424807268e-14, -1.35447209004269e-14, -3, 3.00000000000001, 0.0, 1.22124532708767e-14, -1.22124532708767e-14, 1.37667655053519e-14}}, 
  {{0.0, 0.047759640738551, -2.95224035926144, 2.95224035926145, -0.0477596407385568, 0.0, -0.0477596407385636, -0.0955192814771089}, 
  {0.0, 0.245953339010037, -2.75404666098996, 2.75404666098996, -0.245953339010042, 0.0, -0.245953339010049, -0.491906678020081}, 
  {0.0, 0.579942850949104, -2.42005714905089, 2.4200571490509, -0.579942850949111, 0.0, -0.579942850949119, -1.15988570189822}, 
  {0.0, 1.01361986489428, -1.98638013510572, 1.98638013510572, -1.01361986489428, 0.0, -1.01361986489429, -2.02723972978856}, 
  {0.0, 1.49999999999999, -1.5, 1.50000000000001, -1.5, 0.0, -1.50000000000001, -2.99999999999999}, 
  {0.0, 1.9863801351057, -1.01361986489429, 1.0136198648943, -1.98638013510571, 1.02140518265514e-14, -1.98638013510572, -3.97276027021141}, 
  {1.0991207943789e-14, 2.42005714905087, -0.579942850949116, 0.579942850949128, -2.42005714905088, 1.15463194561016e-14, -2.42005714905089, -4.84011429810176}, 
  {1.16573417585641e-14, 2.75404666098994, -0.245953339010048, 0.245953339010061, -2.75404666098995, 1.21014309684142e-14, -2.75404666098996, -5.50809332197989}, 
  {1.27675647831893e-14, 2.95224035926142, -0.0477596407385625, 0.0477596407385759, -2.95224035926144, 1.27675647831893e-14, -2.95224035926145, -5.90448071852286}}};
  static const double  t34[3][9][8]  = {{{4.90448071852287, -0.952240359261439, 0.952240359261447, 0.952240359261438, -3.95224035926144, 4.90448071852288, -5.85672107778432, -3.0}, 
  {4.50809332197991, -0.754046660989954, 0.75404666098996, 0.754046660989953, -3.75404666098995, 4.50809332197991, -5.26213998296987, -3.0}, 
  {3.84011429810177, -0.420057149050887, 0.42005714905089, 0.420057149050885, -3.42005714905088, 3.84011429810177, -4.26017144715266, -3.0}, 
  {2.97276027021143, 0.0136198648942851, -0.0136198648942825, -0.0136198648942863, -2.98638013510571, 2.97276027021143, -2.95914040531714, -3.0}, 
  {2.0, 0.5, -0.5, -0.5, -2.5, 2.0, -1.5, -3}, 
  {1.02723972978857, 0.98638013510571, -0.98638013510571, -0.986380135105712, -2.01361986489428, 1.02723972978857, -0.0408595946828618, -3}, 
  {0.159885701898227, 1.42005714905088, -1.42005714905088, -1.42005714905088, -1.57994285094911, 0.159885701898227, 1.26017144715266, -2.99999999999999}, 
  {-0.508093321979911, 1.75404666098995, -1.75404666098995, -1.75404666098995, -1.24595333901004, -0.50809332197991, 2.26213998296986, -2.99999999999999}, 
  {-0.904480718522882, 1.95224035926144, -1.95224035926144, -1.95224035926144, -1.04775964073855, -0.904480718522882, 2.85672107778432, -2.99999999999999}}, 
  {{-1.0, -0.952240359261437, -4.95224035926144, 0.952240359261437, 1.95224035926144, -1.0, 5.95224035926144, 2.90448071852288}, 
  {-1.0, -0.754046660989952, -4.75404666098995, 0.754046660989953, 1.75404666098996, -1.0, 5.75404666098996, 2.50809332197991}, 
  {-1.0, -0.420057149050885, -4.42005714905089, 0.420057149050885, 1.42005714905089, -1.0, 5.42005714905089, 1.84011429810177}, 
  {-1.0, 0.0136198648942866, -3.98638013510571, -0.0136198648942866, 0.986380135105716, -1.0, 4.98638013510572, 0.972760270211429}, 
  {-1.0, 0.5, -3.5, -0.5, 0.5, -1.0, 4.5, 0.0}, 
  {-1.0, 0.986380135105711, -3.01361986489429, -0.986380135105712, 0.0136198648942913, -1.0, 4.01361986489429, -0.972760270211421}, 
  {-1.0, 1.42005714905088, -2.57994285094911, -1.42005714905088, -0.42005714905088, -1.0, 3.57994285094912, -1.84011429810176}, 
  {-1.0, 1.75404666098995, -2.24595333901004, -1.75404666098995, -0.754046660989947, -1.0, 3.24595333901005, -2.5080933219799}, 
  {-1.0, 1.95224035926144, -2.04775964073856, -1.95224035926144, -0.952240359261431, -1.0, 3.04775964073856, -2.90448071852287}}, 
  {{-0.904480718522884, -1.0, -4.90448071852288, 1.0, 1.90448071852288, -0.904480718522884, 5.80896143704576, 2.90448071852288}, 
  {-0.508093321979914, -1.0, -4.50809332197991, 1.0, 1.50809332197991, -0.508093321979913, 5.01618664395982, 2.50809332197991}, 
  {0.159885701898223, -1.0, -3.84011429810177, 1.0, 0.840114298101775, 0.159885701898224, 3.68022859620355, 1.84011429810177}, 
  {1.02723972978857, -1.0, -2.97276027021142, 1.0, -0.0272397297885694, 1.02723972978857, 1.94552054042286, 0.97276027021143}, 
  {1.99999999999999, -1.0, -2, 1.0, -1.0, 2, 0.0, 0.0}, 
  {2.97276027021142, -1.0, -1.02723972978857, 1.0, -1.97276027021142, 2.97276027021142, -1.94552054042285, -0.972760270211424}, 
  {3.84011429810177, -1.0, -0.159885701898224, 1.0, -2.84011429810177, 3.84011429810177, -3.68022859620354, -1.84011429810177}, 
  {4.5080933219799, -1.0, 0.508093321979914, 1.0, -3.50809332197991, 4.50809332197991, -5.01618664395982, -2.50809332197991}, 
  {4.90448071852287, -1.0, 0.904480718522885, 1.0, -3.90448071852288, 4.90448071852288, -5.80896143704576, -2.90448071852288}}};
  static const double  t35[3][9][3]  = {{{0.0, 0.984080119753813, 0.015919880246187}, 
  {0.0, 0.918015553663318, 0.0819844463366821}, 
  {0.0, 0.806685716350295, 0.193314283649705}, 
  {0.0, 0.662126711701905, 0.337873288298096}, 
  {0.0, 0.5, 0.5}, 
  {0.0, 0.337873288298096, 0.662126711701904}, 
  {0.0, 0.193314283649705, 0.806685716350295}, 
  {0.0, 0.0819844463366822, 0.918015553663318}, 
  {0.0, 0.015919880246187, 0.984080119753813}}, 
  {{0.984080119753813, 0.0, 0.015919880246187}, 
  {0.918015553663318, 0.0, 0.0819844463366821}, 
  {0.806685716350295, 0.0, 0.193314283649705}, 
  {0.662126711701905, 0.0, 0.337873288298096}, 
  {0.5, 0.0, 0.5}, 
  {0.337873288298096, 0.0, 0.662126711701904}, 
  {0.193314283649705, 0.0, 0.806685716350295}, 
  {0.0819844463366822, 0.0, 0.918015553663318}, 
  {0.015919880246187, 0.0, 0.984080119753813}}, 
  {{0.984080119753813, 0.0159198802461869, 0.0}, 
  {0.918015553663318, 0.0819844463366821, 0.0}, 
  {0.806685716350295, 0.193314283649705, 0.0}, 
  {0.662126711701905, 0.337873288298096, 0.0}, 
  {0.5, 0.5, 0.0}, 
  {0.337873288298096, 0.662126711701904, 0.0}, 
  {0.193314283649705, 0.806685716350295, 0.0}, 
  {0.0819844463366821, 0.918015553663318, 0.0}, 
  {0.015919880246187, 0.984080119753813, 0.0}}};
  double  t36  = (t8 / t13);
  static const double  t37[3][2]  = {{1.0, 1.0}, 
  {-1.0, 0.0}, 
  {0.0, -1.0}};
  double  t38  = (t7 / t13);
  double  t39  = ((t36 * t37[facet[0]][0]) + (t38 * t37[facet[0]][1]));
  double  t40  = ((-1 * t2) / t13);
  double  t41  = (t1 / t13);
  double  t42  = ((t40 * t37[facet[0]][0]) + (t41 * t37[facet[0]][1]));
  double  t43  = sqrt((t39 * t39) + (t42 * t42));
  ;
  double  t44  = (t42 / t43);
  double  t45  = (t39 / t43);
  double  t46  = (t22 / t27);
  double  t47  = (t21 / t27);
  double  t48  = ((t46 * t37[facet[1]][0]) + (t47 * t37[facet[1]][1]));
  double  t49  = ((-1 * t16) / t27);
  double  t50  = (t15 / t27);
  double  t51  = ((t49 * t37[facet[1]][0]) + (t50 * t37[facet[1]][1]));
  double  t52  = sqrt((t48 * t48) + (t51 * t51));
  ;
  double  t53  = (t51 / t52);
  double  t54  = (1 / t27);
  double  t55  = (t22 * t54);
  double  t56  = (t20 * t54);
  double  t57  = (1 / t13);
  double  t58  = (t8 * t57);
  double  t59  = (t6 * t57);
  double  t60  = (t48 / t52);
  double  t61  = (t16 * t54);
  double  t62  = (t15 * t54);
  double  t63  = (t2 * t57);
  double  t64  = (t1 * t57);
  static const double  t65[3][2][1]  = {{{-1.0}, 
  {1.0}}, 
  {{0.0}, 
  {1.0}}, 
  {{1.0}, 
  {0.0}}};
  double  t66  = ((t65[facet[0]][0][0] * t1) + (t65[facet[0]][1][0] * t2));
  double  t67  = ((t65[facet[0]][0][0] * t6) + (t65[facet[0]][1][0] * t8));
  double  t68  = sqrt((t66 * t66) + (t67 * t67));
  ;
  static const double  t69[9]  = {0.0406371941808072, 0.0903240803474731, 0.130305348201532, 0.156173538520078, 0.165119677500711, 0.156173538520078, 0.130305348201532, 0.0903240803474731, 0.0406371941808072};
  static const double  t70[3][9][11]  = {{{1.92116092653022, -0.937080806776411, -0.0159198802461867, -0.0151595524850286, -0.984080119753813, 1.92116092653022, 0.0469993129774022, -0.0469993129774021, 0.0, 0.0, 0.0}, 
  {1.61024211663999, -0.692226562976669, -0.081984446336682, -0.0618200980132855, -0.918015553663318, 1.61024211663999, 0.22578899068665, -0.225788990686649, 0.0, 0.0, 0.0}, 
  {1.14553981854047, -0.338854102190177, -0.193314283649705, -0.0812030468607093, -0.806685716350295, 1.14553981854047, 0.46783161416012, -0.467831614160118, 0.0, 0.0, 0.0}, 
  {0.653108635345626, 0.0090180763562778, -0.337873288298096, 0.00460178853800851, -0.662126711701904, 0.653108635345626, 0.671144788058183, -0.671144788058182, 0.0, 0.0, 0.0}, 
  {0.25, 0.25, -0.5, 0.25, -0.5, 0.25, 0.750000000000001, -0.749999999999999, 0.0, 0.0, 0.0}, 
  {0.00460178853800824, 0.333271499760087, -0.662126711701905, 0.653108635345626, -0.337873288298095, 0.00460178853800816, 0.671144788058184, -0.671144788058182, 0.0, 0.0, 0.0}, 
  {-0.0812030468607096, 0.274517330510414, -0.806685716350295, 1.14553981854047, -0.193314283649705, -0.0812030468607098, 0.467831614160119, -0.467831614160119, 0.0, 0.0, 0.0}, 
  {-0.0618200980132855, 0.143804544349967, -0.918015553663318, 1.61024211663999, -0.0819844463366823, -0.0618200980132858, 0.225788990686649, -0.22578899068665, 0.0, 0.0, 0.0}, 
  {-0.0151595524850285, 0.0310794327312155, -0.984080119753813, 1.92116092653022, -0.0159198802461875, -0.0151595524850289, 0.0469993129774019, -0.0469993129774029, 0.0, 0.0, 0.0}}, 
  {{0.0, 0.0, 1.95224035926144, -0.95224035926144, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, 
  {0.0, 0.0, 1.75404666098995, -0.754046660989954, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, 
  {0.0, 0.0, 1.42005714905089, -0.420057149050886, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, 
  {0.0, 0.0, 0.986380135105714, 0.0136198648942868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, 
  {0.0, 0.0, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, 
  {0.0, 0.0, 0.013619864894287, 0.986380135105713, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, 
  {0.0, 0.0, -0.420057149050886, 1.42005714905089, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, 
  {0.0, 0.0, -0.754046660989954, 1.75404666098995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, 
  {0.0, 0.0, -0.952240359261439, 1.95224035926144, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}}, 
  {{-0.0151595524850275, -0.0159198802461865, 1.92116092653022, -0.984080119753813, 0.0310794327312146, -0.0151595524850278, 0.0939986259548034, 0.0469993129774014, 0.0, 0.0, 0.0}, 
  {-0.0618200980132845, -0.0819844463366817, 1.61024211663999, -0.918015553663318, 0.143804544349967, -0.0618200980132847, 0.451577981373298, 0.225788990686649, 0.0, 0.0, 0.0}, 
  {-0.0812030468607085, -0.193314283649704, 1.14553981854047, -0.806685716350296, 0.274517330510413, -0.0812030468607085, 0.935663228320237, 0.467831614160118, 0.0, 0.0, 0.0}, 
  {0.00460178853800912, -0.337873288298095, 0.653108635345627, -0.662126711701905, 0.333271499760086, 0.00460178853800911, 1.34228957611636, 0.671144788058182, 0.0, 0.0, 0.0}, 
  {0.250000000000001, -0.5, 0.250000000000001, -0.5, 0.249999999999999, 0.250000000000001, 1.5, 0.749999999999999, 0.0, 0.0, 0.0}, 
  {0.653108635345626, -0.662126711701904, 0.00460178853800906, -0.337873288298096, 0.00901807635627781, 0.653108635345626, 1.34228957611637, 0.671144788058182, 0.0, 0.0, 0.0}, 
  {1.14553981854047, -0.806685716350295, -0.0812030468607087, -0.193314283649705, -0.338854102190177, 1.14553981854047, 0.935663228320237, 0.467831614160118, 0.0, 0.0, 0.0}, 
  {1.61024211663999, -0.918015553663318, -0.0618200980132848, -0.0819844463366828, -0.692226562976669, 1.61024211663999, 0.451577981373298, 0.225788990686649, 0.0, 0.0, 0.0}, 
  {1.92116092653022, -0.984080119753813, -0.0151595524850278, -0.0159198802461877, -0.937080806776411, 1.92116092653022, 0.0939986259548042, 0.0469993129774021, 0.0, 0.0, 0.0}}};
  static const double  t71[3][9][11]  = {{{0.0310794327312151, -0.0151595524850284, 0.0159198802461865, 0.0151595524850286, 0.984080119753812, -1.92116092653022, -0.0469993129774018, 0.0469993129774027, 0.0, 0.0, 0.0}, 
  {0.143804544349967, -0.0618200980132853, 0.081984446336682, 0.0618200980132855, 0.918015553663317, -1.61024211663999, -0.22578899068665, 0.22578899068665, 0.0, 0.0, 0.0}, 
  {0.274517330510414, -0.081203046860709, 0.193314283649705, 0.0812030468607092, 0.806685716350294, -1.14553981854047, -0.467831614160119, 0.467831614160119, 0.0, 0.0, 0.0}, 
  {0.333271499760087, 0.00460178853800883, 0.337873288298096, -0.00460178853800858, 0.662126711701903, -0.653108635345626, -0.671144788058183, 0.671144788058182, 0.0, 0.0, 0.0}, 
  {0.25, 0.250000000000001, 0.5, -0.25, 0.5, -0.25, -0.750000000000001, 0.749999999999999, 0.0, 0.0, 0.0}, 
  {0.00901807635627877, 0.653108635345626, 0.662126711701905, -0.653108635345626, 0.337873288298095, -0.0046017885380083, -0.671144788058184, 0.671144788058182, 0.0, 0.0, 0.0}, 
  {-0.338854102190176, 1.14553981854047, 0.806685716350296, -1.14553981854047, 0.193314283649705, 0.0812030468607097, -0.467831614160119, 0.467831614160119, 0.0, 0.0, 0.0}, 
  {-0.692226562976668, 1.61024211663999, 0.918015553663318, -1.61024211663999, 0.0819844463366827, 0.0618200980132856, -0.22578899068665, 0.22578899068665, 0.0, 0.0, 0.0}, 
  {-0.93708080677641, 1.92116092653022, 0.984080119753813, -1.92116092653022, 0.015919880246188, 0.0151595524850286, -0.046999312977402, 0.0469993129774031, 0.0, 0.0, 0.0}}, 
  {{-0.0159198802461872, -0.0151595524850281, -0.0310794327312147, 0.0151595524850279, -1.92116092653022, 0.984080119753813, 0.0469993129774022, 0.0939986259548041, 0.0, 0.0, 0.0}, 
  {-0.0819844463366824, -0.0618200980132853, -0.143804544349967, 0.061820098013285, -1.61024211663999, 0.918015553663318, 0.22578899068665, 0.451577981373299, 0.0, 0.0, 0.0}, 
  {-0.193314283649705, -0.0812030468607094, -0.274517330510414, 0.0812030468607092, -1.14553981854047, 0.806685716350295, 0.467831614160119, 0.935663228320238, 0.0, 0.0, 0.0}, 
  {-0.337873288298096, 0.00460178853800816, -0.333271499760087, -0.0046017885380083, -0.653108635345625, 0.662126711701904, 0.671144788058183, 1.34228957611637, 0.0, 0.0, 0.0}, 
  {-0.5, 0.25, -0.25, -0.25, -0.249999999999999, 0.5, 0.750000000000001, 1.5, 0.0, 0.0, 0.0}, 
  {-0.662126711701904, 0.653108635345625, -0.00901807635627885, -0.653108635345625, -0.00460178853800738, 0.337873288298096, 0.671144788058184, 1.34228957611637, 0.0, 0.0, 0.0}, 
  {-0.806685716350295, 1.14553981854047, 0.338854102190176, -1.14553981854047, 0.0812030468607105, 0.193314283649705, 0.467831614160119, 0.935663228320239, 0.0, 0.0, 0.0}, 
  {-0.918015553663318, 1.61024211663999, 0.692226562976668, -1.61024211663999, 0.0618200980132863, 0.0819844463366824, 0.22578899068665, 0.4515779813733, 0.0, 0.0, 0.0}, 
  {-0.984080119753813, 1.92116092653022, 0.937080806776411, -1.92116092653022, 0.0151595524850294, 0.0159198802461874, 0.0469993129774022, 0.0939986259548053, 0.0, 0.0, 0.0}}, 
  {{0.0, 0.0, 0.0, 0.0, -1.95224035926144, 0.952240359261439, 0.0, 0.0, 0.0, 0.0, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, -1.75404666098995, 0.754046660989953, 0.0, 0.0, 0.0, 0.0, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, -1.42005714905089, 0.420057149050885, 0.0, 0.0, 0.0, 0.0, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, -0.986380135105713, -0.0136198648942869, 0.0, 0.0, 0.0, 0.0, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, -0.5, -0.5, 0.0, 0.0, 0.0, 0.0, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, -0.0136198648942875, -0.986380135105713, 0.0, 0.0, 0.0, 0.0, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, 0.420057149050885, -1.42005714905089, 0.0, 0.0, 0.0, 0.0, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, 0.754046660989953, -1.75404666098995, 0.0, 0.0, 0.0, 0.0, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, 0.952240359261438, -1.95224035926144, 0.0, 0.0, 0.0, 0.0, 0.0}}};
  static const double  t72[3][9][11]  = {{{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.984080119753813, 0.015919880246187}, 
  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.918015553663318, 0.0819844463366821}, 
  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.806685716350295, 0.193314283649705}, 
  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.662126711701905, 0.337873288298096}, 
  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5, 0.5}, 
  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.337873288298096, 0.662126711701904}, 
  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.193314283649705, 0.806685716350295}, 
  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0819844463366822, 0.918015553663318}, 
  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015919880246187, 0.984080119753813}}, 
  {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.984080119753813, 0.0, 0.015919880246187}, 
  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.918015553663318, 0.0, 0.0819844463366821}, 
  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.806685716350295, 0.0, 0.193314283649705}, 
  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.662126711701905, 0.0, 0.337873288298096}, 
  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.5}, 
  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.337873288298096, 0.0, 0.662126711701904}, 
  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.193314283649705, 0.0, 0.806685716350295}, 
  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0819844463366822, 0.0, 0.918015553663318}, 
  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015919880246187, 0.0, 0.984080119753813}}, 
  {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.984080119753813, 0.0159198802461869, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.918015553663318, 0.0819844463366821, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.806685716350295, 0.193314283649705, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.662126711701905, 0.337873288298096, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5, 0.5, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.337873288298096, 0.662126711701904, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.193314283649705, 0.806685716350295, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0819844463366821, 0.918015553663318, 0.0}, 
  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015919880246187, 0.984080119753813, 0.0}}};
  double  c_15_0_0  = (t50 * t56);
  double  c_15_0_1  = (t50 * t55);
  double  c_15_0_2  = (t49 * t55);
  double  c_15_0_3  = (t49 * t56);
  double  c_16_0_0  = (t50 * t62);
  double  c_16_0_1  = (t49 * t61);
  double  c_16_0_2  = (t49 * t62);
  double  c_16_0_3  = (t50 * t61);
  double  c_17_0_0  = (t46 * t56);
  double  c_17_0_1  = (t46 * t55);
  double  c_17_0_2  = (t47 * t56);
  double  c_17_0_3  = (t47 * t55);
  double  c_18_0_0  = (t46 * t62);
  double  c_18_0_1  = (t46 * t61);
  double  c_18_0_2  = (t47 * t62);
  double  c_18_0_3  = (t47 * t61);
  double  c_29_0_0  = (t41 * t59);
  double  c_29_0_1  = (t41 * t58);
  double  c_29_0_2  = (t40 * t58);
  double  c_29_0_3  = (t40 * t59);
  double  c_30_0_0  = (t40 * t64);
  double  c_30_0_1  = (t41 * t63);
  double  c_30_0_2  = (t41 * t64);
  double  c_30_0_3  = (t40 * t63);
  double  c_31_0_0  = (t38 * t59);
  double  c_31_0_1  = (t38 * t58);
  double  c_31_0_2  = (t36 * t59);
  double  c_31_0_3  = (t36 * t58);
  double  c_32_0_0  = (t38 * t64);
  double  c_32_0_1  = (t36 * t63);
  double  c_32_0_2  = (t36 * t64);
  double  c_32_0_3  = (t38 * t63);
  double  c_40_0_0  = ((t61 * t60) + (t55 * t53));
  double  c_40_0_1  = ((t62 * t60) + (t56 * t53));
  double  c_42_0_0  = ((t64 * t45) + (t59 * t44));
  double  c_42_0_1  = ((t63 * t45) + (t58 * t44));
  double  c_43_0_0  = (t45 * t28);
  double  c_43_0_1  = (w_0[0] * -1);
  double  c_43_0_2  = (t44 * -1);
  double  c_43_0_3  = (t44 * t28);
  double  c_43_0_5  = (t45 * -1);
  double  c_43_1_0  = (t58 * -1);
  double  c_43_1_1  = (t59 * -1);
  double  c_43_1_2  = (t64 * -1);
  double  c_43_1_3  = (t63 * -1);
  double  c_44_0_0  = (t53 * -1);
  double  c_44_0_1  = (t60 * t28);
  double  c_44_0_3  = (t53 * t28);
  double  c_44_0_4  = (t60 * -1);
  double  c_44_1_0  = (c_18_0_1 * t64);
  double  c_44_1_1  = (c_18_0_1 * t63);
  double  c_44_1_2  = (c_18_0_3 * t63);
  double  c_44_1_3  = (c_15_0_1 * t58);
  double  c_44_1_4  = (c_15_0_1 * t59);
  double  c_44_1_5  = (c_15_0_2 * t59);
  double  c_44_1_6  = (c_18_0_2 * t64);
  double  c_44_1_7  = (c_18_0_0 * t64);
  double  c_44_1_8  = (c_18_0_3 * t64);
  double  c_44_1_9  = (c_15_0_0 * t59);
  double  c_44_1_10  = (c_15_0_0 * t58);
  double  c_44_1_11  = (c_18_0_2 * t63);
  double  c_44_1_12  = (c_18_0_0 * t63);
  double  c_44_1_13  = (c_15_0_3 * t58);
  double  c_44_1_14  = (c_15_0_3 * t59);
  double  c_44_1_15  = (c_15_0_2 * t58);
  double  c_45_1_0  = (t62 * -1);
  double  c_45_1_1  = (t61 * -1);
  double  c_45_1_2  = (t55 * -1);
  double  c_45_1_3  = (0.5 * w_2[0]);
  double  c_45_1_4  = (t56 * -1);
  double  c_0_0_0  = (t45 * t28);
  double  c_0_0_1  = (-1 * w_7[0] * w_6[0] * -1);
  double  c_0_0_2  = (c_30_0_1 * 0.5 * -1 * -1 * w_7[0] * w_6[0] * -1);
  double  c_0_0_3  = (t44 * -1);
  double  c_0_0_4  = (t44 * t28);
  double  c_0_0_5  = (0.5 * -1);
  double  c_0_0_6  = (t45 * -1);
  double  c_0_0_7  = (c_31_0_1 * 0.5 * -1 * -1 * w_7[0] * w_6[0] * -1);
  double  c_79_0_0  = (t55 * t49);
  double  c_79_0_1  = (t56 * t50);
  double  c_79_0_2  = (t55 * t50);
  double  c_79_0_3  = (t56 * t49);
  double  c_82_0_0  = (t62 * t47);
  double  c_82_0_1  = (t62 * t46);
  double  c_82_0_2  = (t61 * t46);
  double  c_82_0_3  = (t61 * t47);
  double  c_85_0_0  = (t58 * t40);
  double  c_85_0_1  = (t59 * t40);
  double  c_85_0_2  = (t59 * t41);
  double  c_85_0_3  = (t58 * t41);
  double  c_88_0_0  = (t63 * t36);
  double  c_88_0_1  = (t64 * t36);
  double  c_88_0_2  = (t64 * t38);
  double  c_88_0_3  = (t63 * t38);
  double  c_127_0_0  = (c_0_0_5 * c_0_0_1);
  double  c_128_0_0  = (c_31_0_0 * c_0_0_1);
  double  c_128_0_1  = (t58 * c_0_0_1);
  double  c_128_0_2  = (t59 * c_0_0_1);
  double  c_128_0_3  = (c_31_0_3 * c_0_0_1);
  double  c_128_0_4  = (c_31_0_2 * c_0_0_1);
  double  c_130_0_0  = (t56 * c_44_0_4);
  double  c_130_0_1  = (t56 * c_44_0_0);
  double  c_130_0_2  = (t62 * c_44_0_4);
  double  c_130_0_3  = (t61 * c_44_0_0);
  double  c_130_0_4  = (t62 * c_44_0_0);
  double  c_130_0_5  = (t61 * c_44_0_4);
  double  c_130_0_6  = (t55 * c_44_0_4);
  double  c_130_0_7  = (t55 * c_44_0_0);
  double  c_130_1_0  = (c_85_0_0 * c_130_0_1);
  double  c_130_1_1  = (c_88_0_0 * c_130_0_5);
  double  c_130_1_2  = (c_88_0_0 * c_130_0_2);
  double  c_130_1_3  = (c_88_0_1 * c_130_0_5);
  double  c_130_1_4  = (c_88_0_1 * c_130_0_2);
  double  c_130_1_5  = (c_85_0_0 * c_130_0_7);
  double  c_130_1_6  = (c_85_0_2 * c_130_0_1);
  double  c_130_1_7  = (c_85_0_3 * c_130_0_1);
  double  c_130_1_8  = (c_85_0_2 * c_130_0_7);
  double  c_130_1_9  = (c_85_0_3 * c_130_0_7);
  double  c_130_1_10  = (c_88_0_3 * c_130_0_5);
  double  c_130_1_11  = (c_88_0_2 * c_130_0_5);
  double  c_130_1_12  = (c_85_0_1 * c_130_0_1);
  double  c_130_1_13  = (c_85_0_1 * c_130_0_7);
  double  c_130_1_14  = (c_88_0_2 * c_130_0_2);
  double  c_130_1_15  = (c_88_0_3 * c_130_0_2);

  for (int  ip  = 0; ip < 9; ip += 1)
  {
    double  t104[8] ;
    double  t109[8] ;
    double  t110[8] ;
    double  t112[8] ;
    double  t114[8] ;
    double  t115[8] ;
    double  t119[8] ;
    double  t120[8] ;
    double  t121[8] ;
    double  t122[8] ;
    double  t123[8] ;
    double  t124[8] ;
    double  t125[8] ;
    double  t126[8] ;
    double  t127[8] ;
    double  t128[8] ;
    double  t132[8] ;
    double  t137[8] ;
    double  t138[8] ;
    double  t140[8] ;
    double  t141[8] ;
    double  t142[8] ;
    double  t143[8] ;
    double  t144[8] ;
    double  t147[8] ;
    double  t148[8] ;
    double  t149[8] ;
    double  t150[8] ;
    double  t151[8] ;
    double  t152[8] ;
    double  t153[8] ;
    double  t154[8] ;
    double  t78  = 0.0;
    double  t77  = 0.0;
    double  t76  = 0.0;
    double  t75  = 0.0;
    double  t74  = 0.0;
    double  t73  = 0.0;

    for (int  i_0  = 0; i_0 < 3; i_0 += 1)
    {
      t73 += t72[facet[1]][ip][i_0+8] * w_8[1][i_0+8];
      t74 += t72[facet[0]][ip][i_0+8] * w_8[0][i_0+8];

    }

    for (int  i_0  = 0; i_0 < 8; i_0 += 1)
    {
      t75 += t71[facet[1]][ip][i_0] * w_8[1][i_0];
      t76 += t70[facet[1]][ip][i_0] * w_8[1][i_0];
      t77 += t71[facet[0]][ip][i_0] * w_8[0][i_0];
      t78 += t70[facet[0]][ip][i_0] * w_8[0][i_0];

    }
    double  t79  = (t69[ip] * t68);
    double  t80  = ((t64 * t78) + (t63 * t77));
    double  t81  = ((t62 * t76) + (t61 * t75));
    double  t82  = (0.5 * (t80 + t81));
    double  t83  = ((t59 * t78) + (t58 * t77));
    double  t84  = ((t56 * t76) + (t55 * t75));
    double  t85  = (0.5 * (t83 + t84));
    double  t86  = ((t82 * t60) + (t85 * t53));
    double  t87  = (0.5 * fabs(t86) * w_2[0]);
    double  t88  = (t80 * t45);
    double  t89  = (t83 * t44);
    double  t90  = (t81 * t60);
    double  t91  = (t84 * t53);
    double  t92  = (t83 + (-1 * t84));
    double  t93  = (t80 + (-1 * t81));
    double  t94  = ((t35[facet[0]][ip][0] * w_4[0][0][0]) + (t35[facet[0]][ip][1] * w_4[0][1][0]) + (t35[facet[0]][ip][2] * w_4[0][2][0]));
    double  t95  = (2 * t94);
    double  t96  = (t86 == 0 ? 0 : (t86 < 0 ? -1 : 1));
    double  t97  = (0.5 * sqrt((0.5 * (t74 + (t35[facet[0]][ip][0] * w_1[0][0][0]) + (t35[facet[0]][ip][1] * w_1[0][1][0]) + (t35[facet[0]][ip][2] * w_1[0][2][0]) + t73 + (t35[facet[1]][ip][0] * w_1[1][0][0]) + (t35[facet[1]][ip][1] * w_1[1][1][0]) + (t35[facet[1]][ip][2] * w_1[1][2][0]))) / w_0[0]));
    double  t98  = ((t35[facet[1]][ip][0] * w_4[1][0][0]) + (t35[facet[1]][ip][1] * w_4[1][1][0]) + (t35[facet[1]][ip][2] * w_4[1][2][0]));
    double  t99  = (2 * 0.5 * (t94 + t98));
    double  t100  = (2 * t98);
    double  ip_77_1_0  = (ip_43_0_9 * ((t63 * t44) + (t58 * t45)));
    double  ip_77_1_1  = (ip_43_0_9 * ((t64 * t44) + (t59 * t45)));
    double  ip_78_1_0  = (ip_43_0_9 * ((t59 * t45) + (t64 * t44)));
    double  ip_78_1_1  = (ip_43_0_9 * ((t58 * t45) + (t63 * t44)));
    double  ip_79_0_0  = (t100 * 0.5);
    double  ip_80_1_0  = (0.5 * ip_79_0_0);
    double  ip_80_2_0  = (ip_80_1_0 * ((t62 * t49) + (t56 * t46)));
    double  ip_80_2_1  = (ip_80_1_0 * ((t61 * t50) + (t55 * t47)));
    double  ip_80_2_2  = (ip_80_1_0 * ((t61 * t49) + (t55 * t46)));
    double  ip_80_2_3  = (ip_80_1_0 * ((t62 * t50) + (t56 * t47)));
    double  ip_81_2_0  = (ip_80_1_0 * ((t56 * t46) + (t62 * t49)));
    double  ip_81_2_1  = (ip_80_1_0 * ((t55 * t46) + (t61 * t49)));
    double  ip_81_2_2  = (ip_80_1_0 * ((t55 * t47) + (t61 * t50)));
    double  ip_81_2_3  = (ip_80_1_0 * ((t56 * t47) + (t62 * t50)));
    double  ip_83_1_0  = (ip_43_0_9 * ((t61 * t53) + (t55 * t60)));
    double  ip_83_1_1  = (ip_43_0_9 * ((t62 * t53) + (t56 * t60)));
    double  ip_84_1_0  = (ip_43_0_9 * ((t55 * t60) + (t61 * t53)));
    double  ip_84_1_1  = (ip_43_0_9 * ((t56 * t60) + (t62 * t53)));
    double  ip_85_0_0  = (t95 * 0.5);
    double  ip_86_1_0  = (0.5 * ip_85_0_0);
    double  ip_86_2_0  = (ip_86_1_0 * ((t63 * t40) + (t58 * t36)));
    double  ip_86_2_1  = (ip_86_1_0 * ((t64 * t40) + (t59 * t36)));
    double  ip_86_2_2  = (ip_86_1_0 * ((t64 * t41) + (t59 * t38)));
    double  ip_86_2_3  = (ip_86_1_0 * ((t63 * t41) + (t58 * t38)));
    double  ip_87_2_0  = (ip_86_1_0 * ((t58 * t36) + (t63 * t40)));
    double  ip_87_2_1  = (ip_86_1_0 * ((t59 * t36) + (t64 * t40)));
    double  ip_87_2_2  = (ip_86_1_0 * ((t59 * t38) + (t64 * t41)));
    double  ip_87_2_3  = (ip_86_1_0 * ((t58 * t38) + (t63 * t41)));

    for (int  k  = 0; k < 8; k += 1)
    {
      t132[k] = ip_85_0_0 * ((t34[facet[0]][ip][k] * c_85_0_1) + (t32[facet[0]][ip][k] * c_85_0_0) + (t33[facet[0]][ip][k] * c_85_0_2) + (t31[facet[0]][ip][k] * c_85_0_3));
      t137[k] = (t34[facet[0]][ip][k] * ip_86_2_1) + (t32[facet[0]][ip][k] * ip_86_2_0) + (t33[facet[0]][ip][k] * ip_86_2_2) + (t31[facet[0]][ip][k] * ip_86_2_3);
      t138[k] = (t34[facet[0]][ip][k] * ip_87_2_1) + (t32[facet[0]][ip][k] * ip_87_2_0) + (t33[facet[0]][ip][k] * ip_87_2_2) + (t31[facet[0]][ip][k] * ip_87_2_3);
      t140[k] = ip_85_0_0 * ((t34[facet[0]][ip][k] * c_88_0_1) + (t32[facet[0]][ip][k] * c_88_0_0) + (t33[facet[0]][ip][k] * c_88_0_2) + (t31[facet[0]][ip][k] * c_88_0_3));
      t141[k] = (t30[facet[0]][ip][k] * t59) + (t29[facet[0]][ip][k] * t58);
      t144[k] = (t30[facet[0]][ip][k] * t64) + (t29[facet[0]][ip][k] * t63);
      t147[k] = (t30[facet[0]][ip][k] * ip_77_1_1) + (t29[facet[0]][ip][k] * ip_77_1_0);

    }
    double  ip_35_0_0  = ((t63 * t93) + (t58 * t92));
    double  ip_35_0_1  = ((t64 * t93) + (t59 * t92));
    double  ip_41_0_0  = (t55 * t92);
    double  ip_41_0_1  = (t56 * t92);
    double  ip_41_0_2  = (t61 * t93);
    double  ip_41_0_3  = (t62 * t93);
    double  ip_43_0_0  = (w_2[0] * ip_35_0_0);
    double  ip_43_0_1  = (w_2[0] * ip_35_0_1);
    double  ip_43_0_2  = (0.5 * w_7[0]);
    double  ip_43_0_3  = (-1 * w_7[0]);
    double  ip_43_0_4  = (-1 * t79);
    double  ip_43_0_5  = (w_7[0] * w_6[0]);
    double  ip_43_0_6  = (-1 * -1);
    double  ip_43_0_7  = (w_6[0] * t79);
    double  ip_43_0_8  = (t96 * 0.5);
    double  ip_43_0_9  = (0.5 * t99);
    double  ip_43_0_10  = (t99 * t28);
    double  ip_43_1_0  = (w_6[0] * ip_43_0_4);
    double  ip_43_1_1  = (-1 * ip_43_0_6);
    double  ip_43_1_2  = (ip_43_0_5 * ip_43_0_4);
    double  ip_43_1_3  = (t44 * ip_43_0_10);
    double  ip_43_1_4  = (w_7[0] * ip_43_0_7);
    double  ip_43_1_5  = (t45 * ip_43_0_10);
    double  ip_43_1_6  = (ip_43_0_1 * ip_43_0_6);
    double  ip_43_1_7  = (ip_43_0_0 * ip_43_0_6);
    double  ip_43_1_8  = (t60 * ip_43_0_8);
    double  ip_43_1_9  = (ip_43_0_2 * ip_43_0_7);
    double  ip_43_1_10  = (t53 * ip_43_0_8);
    double  ip_43_2_0  = (ip_43_0_9 * ip_43_1_4);
    double  ip_43_2_1  = (ip_43_0_3 * ip_43_1_0);
    double  ip_43_3_0  = (ip_43_1_4 * ((t88 * t64 * ip_43_0_6) + (t89 * t64 * ip_43_0_6) + (ip_43_1_8 * ip_43_1_6)));
    double  ip_43_3_1  = (ip_43_1_4 * ((t88 * t58 * ip_43_0_6) + (t89 * t58 * ip_43_0_6) + (ip_43_1_10 * ip_43_1_7)));
    double  ip_43_3_2  = (ip_43_1_4 * ((t88 * t63 * ip_43_0_6) + (t89 * t63 * ip_43_0_6) + (ip_43_1_8 * ip_43_1_7)));
    double  ip_43_3_3  = (ip_43_1_4 * ((t88 * t59 * ip_43_0_6) + (t89 * t59 * ip_43_0_6) + (ip_43_1_10 * ip_43_1_6)));
    double  ip_44_0_0  = (t97 * w_0[0]);
    double  ip_44_0_1  = (t53 * t58);
    double  ip_44_0_2  = (t53 * t59);
    double  ip_44_0_3  = (0.5 * t60);
    double  ip_44_0_6  = (t60 * t64);
    double  ip_44_0_7  = (0.5 * t53);
    double  ip_44_0_9  = (0.5 * t91);
    double  ip_44_0_10  = (0.5 * t90);
    double  ip_44_0_12  = (t96 * w_2[0]);
    double  ip_44_0_13  = (t60 * t63);
    double  ip_44_1_0  = (t64 * ip_44_0_9);
    double  ip_44_1_1  = (t58 * ip_44_0_10);
    double  ip_44_1_5  = (t62 * ip_43_0_6);
    double  ip_44_1_6  = (t56 * ip_43_0_6);
    double  ip_44_1_7  = (t59 * ip_44_0_9);
    double  ip_44_1_9  = (t59 * ip_44_0_10);
    double  ip_44_1_10  = (c_43_0_5 * ip_43_0_6);
    double  ip_44_1_11  = (t63 * ip_44_0_10);
    double  ip_44_1_12  = (0.5 * ip_43_0_6);
    double  ip_44_1_13  = (t64 * ip_44_0_10);
    double  ip_44_1_14  = (t45 * ip_43_0_6);
    double  ip_44_1_15  = (t58 * ip_44_0_9);
    double  ip_44_1_16  = (c_43_0_2 * ip_43_0_6);
    double  ip_44_1_17  = (t63 * ip_44_0_9);
    double  ip_44_1_18  = (t55 * ip_43_0_6);
    double  ip_44_1_19  = (t44 * ip_43_0_6);
    double  ip_44_1_20  = (t61 * ip_43_0_6);
    double  ip_44_2_0  = (ip_43_0_10 * ip_43_1_4);
    double  ip_44_2_3  = (ip_44_0_0 * ip_43_1_4);
    double  ip_44_2_4  = (ip_44_0_12 * ip_43_1_4);
    double  ip_44_3_0  = (ip_44_2_4 * ((t63 * ip_44_0_3 * ip_44_1_12) + (t58 * ip_44_0_7 * ip_44_1_12)));
    double  ip_44_3_1  = (ip_43_1_4 * ((ip_44_1_13 * ip_44_1_20) + (ip_44_1_9 * ip_44_1_18) + (ip_44_1_0 * ip_44_1_20) + (ip_44_1_7 * ip_44_1_18) + (t87 * t64 * t61 * ip_43_1_1) + (t87 * t59 * t55 * ip_43_1_1)));
    double  ip_44_3_2  = (ip_44_2_0 * ((t62 * ip_44_0_13 * ip_44_1_14) + (t56 * ip_44_0_1 * ip_44_1_19)));
    double  ip_44_3_3  = (ip_43_1_4 * ((ip_44_1_11 * ip_44_1_20) + (ip_44_1_1 * ip_44_1_18) + (ip_44_1_17 * ip_44_1_20) + (ip_44_1_15 * ip_44_1_18) + (t87 * t63 * t61 * ip_43_1_1) + (t87 * t58 * t55 * ip_43_1_1)));
    double  ip_44_3_4  = (ip_43_1_4 * ((ip_44_1_13 * ip_44_1_5) + (ip_44_1_9 * ip_44_1_6) + (ip_44_1_0 * ip_44_1_5) + (ip_44_1_7 * ip_44_1_6) + (t87 * t64 * t62 * ip_43_1_1) + (t87 * t59 * t56 * ip_43_1_1)));
    double  ip_44_3_5  = (ip_44_2_3 * ((t63 * t45 * ip_43_0_6) + (t58 * t44 * ip_43_0_6)));
    double  ip_44_3_6  = (ip_44_2_4 * ((t64 * ip_44_0_3 * ip_44_1_12) + (t59 * ip_44_0_7 * ip_44_1_12)));
    double  ip_44_3_7  = (ip_43_1_4 * ((ip_44_1_11 * ip_44_1_5) + (ip_44_1_1 * ip_44_1_6) + (ip_44_1_17 * ip_44_1_5) + (ip_44_1_15 * ip_44_1_6) + (t87 * t63 * t62 * ip_43_1_1) + (t87 * t58 * t56 * ip_43_1_1)));
    double  ip_44_3_8  = (ip_44_2_0 * ((t62 * ip_44_0_6 * ip_44_1_14) + (t56 * ip_44_0_2 * ip_44_1_19)));
    double  ip_44_3_9  = (ip_44_2_0 * ((t61 * ip_44_0_6 * ip_44_1_14) + (t55 * ip_44_0_2 * ip_44_1_19)));
    double  ip_44_3_10  = (ip_44_2_0 * ((t61 * ip_44_0_13 * ip_44_1_14) + (t55 * ip_44_0_1 * ip_44_1_19)));
    double  ip_44_3_11  = (ip_44_2_3 * ((t64 * t45 * ip_43_0_6) + (t59 * t44 * ip_43_0_6)));
    double  ip_45_0_1  = (t82 * t62);
    double  ip_45_0_4  = (t85 * t55);
    double  ip_45_0_5  = (t85 * t56);
    double  ip_45_0_6  = (t53 * t99);
    double  ip_45_0_10  = (t60 * t99);
    double  ip_45_0_11  = (t82 * t61);
    double  ip_45_1_0  = (t28 * ip_43_0_6);
    double  ip_45_1_4  = (ip_45_0_5 * ip_43_0_6);
    double  ip_45_1_6  = (t91 * ip_43_0_6);
    double  ip_45_1_7  = (ip_45_0_1 * ip_43_0_6);
    double  ip_45_1_8  = (ip_45_0_11 * ip_43_0_6);
    double  ip_45_1_10  = (ip_45_0_4 * ip_43_0_6);
    double  ip_45_1_11  = (t90 * ip_43_0_6);
    double  ip_45_2_0  = (ip_45_1_11 + ip_45_1_6);
    double  ip_45_3_0  = (t55 * w_7[0] * ip_43_0_7 * ip_45_2_0);
    double  ip_45_3_2  = (ip_43_1_4 * (ip_45_1_7 + ip_45_1_4 + (t62 * ip_45_0_10 * ip_45_1_0)));
    double  ip_45_3_3  = (ip_43_1_4 * (ip_45_1_7 + ip_45_1_4 + (t56 * ip_45_0_6 * ip_45_1_0)));
    double  ip_45_3_4  = (ip_43_1_4 * (ip_45_1_8 + ip_45_1_10 + (t61 * ip_45_0_10 * ip_45_1_0)));
    double  ip_45_3_5  = (ip_43_1_4 * (ip_45_1_8 + ip_45_1_10 + (t55 * ip_45_0_6 * ip_45_1_0)));
    double  ip_45_3_6  = (t62 * w_7[0] * ip_43_0_7 * ip_45_2_0);
    double  ip_45_3_7  = (t61 * w_7[0] * ip_43_0_7 * ip_45_2_0);
    double  ip_45_3_8  = (t56 * w_7[0] * ip_43_0_7 * ip_45_2_0);
    double  ip_0_0_0  = ((t63 * t45 * t97 * w_0[0] * -1 * w_7[0] * w_6[0] * -1) + (t58 * t44 * t97 * w_0[0] * -1 * w_7[0] * w_6[0] * -1));
    double  ip_0_0_1  = ((c_32_0_1 * 0.5 * t64 * t45 * t99 * -1 * -1 * w_7[0] * w_6[0] * -1) + (c_29_0_2 * 0.5 * t59 * t44 * t99 * -1 * -1 * w_7[0] * w_6[0] * -1));
    double  ip_0_0_2  = ((c_32_0_1 * 0.5 * t63 * t45 * t99 * -1 * -1 * w_7[0] * w_6[0] * -1) + (c_29_0_2 * 0.5 * t58 * t44 * t99 * -1 * -1 * w_7[0] * w_6[0] * -1));
    double  ip_0_0_3  = ((c_32_0_3 * 0.5 * t64 * t45 * t99 * -1 * -1 * w_7[0] * w_6[0] * -1) + (c_29_0_1 * 0.5 * t59 * t44 * t99 * -1 * -1 * w_7[0] * w_6[0] * -1));
    double  ip_0_0_4  = ((t63 * t63 * t45 * t82 * -1 * w_7[0] * w_6[0] * -1) + (t63 * 0.5 * t63 * t88 * -1 * w_7[0] * w_6[0] * -1) + (t58 * t63 * t45 * t85 * -1 * w_7[0] * w_6[0] * -1) + (t58 * 0.5 * t58 * t88 * -1 * w_7[0] * w_6[0] * -1) + (t63 * t58 * t44 * t82 * -1 * w_7[0] * w_6[0] * -1) + (t63 * 0.5 * t63 * t89 * -1 * w_7[0] * w_6[0] * -1) + (t58 * t58 * t44 * t85 * -1 * w_7[0] * w_6[0] * -1) + (t58 * 0.5 * t58 * t89 * -1 * w_7[0] * w_6[0] * -1) + (t63 * t63 * t87 * -1 * w_7[0] * w_6[0] * -1) + (t58 * t58 * t87 * -1 * w_7[0] * w_6[0] * -1) + (t63 * 0.5 * t60 * t96 * 0.5 * w_2[0] * ip_35_0_0 * -1 * w_7[0] * w_6[0] * -1) + (t58 * 0.5 * t53 * t96 * 0.5 * w_2[0] * ip_35_0_0 * -1 * w_7[0] * w_6[0] * -1) + (t63 * t45 * t63 * t45 * t99 * t28 * -1 * w_7[0] * w_6[0] * -1) + (t58 * t44 * t58 * t44 * t99 * t28 * -1 * w_7[0] * w_6[0] * -1));
    double  ip_0_0_5  = ((c_32_0_3 * 0.5 * t63 * t45 * t99 * -1 * -1 * w_7[0] * w_6[0] * -1) + (c_29_0_1 * 0.5 * t58 * t44 * t99 * -1 * -1 * w_7[0] * w_6[0] * -1));
    double  ip_0_0_6  = ((t64 * t45 * t97 * w_0[0] * -1 * w_7[0] * w_6[0] * -1) + (t59 * t44 * t97 * w_0[0] * -1 * w_7[0] * w_6[0] * -1));
    double  ip_0_0_7  = ((t63 * t64 * t45 * t82 * -1 * w_7[0] * w_6[0] * -1) + (t64 * 0.5 * t63 * t88 * -1 * w_7[0] * w_6[0] * -1) + (t58 * t64 * t45 * t85 * -1 * w_7[0] * w_6[0] * -1) + (t59 * 0.5 * t58 * t88 * -1 * w_7[0] * w_6[0] * -1) + (t63 * t59 * t44 * t82 * -1 * w_7[0] * w_6[0] * -1) + (t64 * 0.5 * t63 * t89 * -1 * w_7[0] * w_6[0] * -1) + (t58 * t59 * t44 * t85 * -1 * w_7[0] * w_6[0] * -1) + (t59 * 0.5 * t58 * t89 * -1 * w_7[0] * w_6[0] * -1) + (t63 * t64 * t87 * -1 * w_7[0] * w_6[0] * -1) + (t58 * t59 * t87 * -1 * w_7[0] * w_6[0] * -1) + (t64 * 0.5 * t60 * t96 * 0.5 * w_2[0] * ip_35_0_0 * -1 * w_7[0] * w_6[0] * -1) + (t59 * 0.5 * t53 * t96 * 0.5 * w_2[0] * ip_35_0_0 * -1 * w_7[0] * w_6[0] * -1) + (t63 * t45 * t64 * t45 * t99 * t28 * -1 * w_7[0] * w_6[0] * -1) + (t58 * t44 * t59 * t44 * t99 * t28 * -1 * w_7[0] * w_6[0] * -1));
    double  ip_0_0_8  = ((c_32_0_0 * 0.5 * t63 * t45 * t99 * -1 * -1 * w_7[0] * w_6[0] * -1) + (c_29_0_0 * 0.5 * t58 * t44 * t99 * -1 * -1 * w_7[0] * w_6[0] * -1));
    double  ip_0_0_9  = ((c_32_0_2 * 0.5 * t63 * t45 * t99 * -1 * -1 * w_7[0] * w_6[0] * -1) + (c_29_0_3 * 0.5 * t58 * t44 * t99 * -1 * -1 * w_7[0] * w_6[0] * -1));
    double  ip_0_0_10  = ((t64 * t63 * t45 * t82 * -1 * w_7[0] * w_6[0] * -1) + (t63 * 0.5 * t64 * t88 * -1 * w_7[0] * w_6[0] * -1) + (t59 * t63 * t45 * t85 * -1 * w_7[0] * w_6[0] * -1) + (t58 * 0.5 * t59 * t88 * -1 * w_7[0] * w_6[0] * -1) + (t64 * t58 * t44 * t82 * -1 * w_7[0] * w_6[0] * -1) + (t63 * 0.5 * t64 * t89 * -1 * w_7[0] * w_6[0] * -1) + (t59 * t58 * t44 * t85 * -1 * w_7[0] * w_6[0] * -1) + (t58 * 0.5 * t59 * t89 * -1 * w_7[0] * w_6[0] * -1) + (t64 * t63 * t87 * -1 * w_7[0] * w_6[0] * -1) + (t59 * t58 * t87 * -1 * w_7[0] * w_6[0] * -1) + (t63 * 0.5 * t60 * t96 * 0.5 * w_2[0] * ip_35_0_1 * -1 * w_7[0] * w_6[0] * -1) + (t58 * 0.5 * t53 * t96 * 0.5 * w_2[0] * ip_35_0_1 * -1 * w_7[0] * w_6[0] * -1) + (t64 * t45 * t63 * t45 * t99 * t28 * -1 * w_7[0] * w_6[0] * -1) + (t59 * t44 * t58 * t44 * t99 * t28 * -1 * w_7[0] * w_6[0] * -1));
    double  ip_0_0_11  = ((c_32_0_2 * 0.5 * t64 * t45 * t99 * -1 * -1 * w_7[0] * w_6[0] * -1) + (c_29_0_3 * 0.5 * t59 * t44 * t99 * -1 * -1 * w_7[0] * w_6[0] * -1));
    double  ip_0_0_12  = ((t64 * t64 * t45 * t82 * -1 * w_7[0] * w_6[0] * -1) + (t64 * 0.5 * t64 * t88 * -1 * w_7[0] * w_6[0] * -1) + (t59 * t64 * t45 * t85 * -1 * w_7[0] * w_6[0] * -1) + (t59 * 0.5 * t59 * t88 * -1 * w_7[0] * w_6[0] * -1) + (t64 * t59 * t44 * t82 * -1 * w_7[0] * w_6[0] * -1) + (t64 * 0.5 * t64 * t89 * -1 * w_7[0] * w_6[0] * -1) + (t59 * t59 * t44 * t85 * -1 * w_7[0] * w_6[0] * -1) + (t59 * 0.5 * t59 * t89 * -1 * w_7[0] * w_6[0] * -1) + (t64 * t64 * t87 * -1 * w_7[0] * w_6[0] * -1) + (t59 * t59 * t87 * -1 * w_7[0] * w_6[0] * -1) + (t64 * 0.5 * t60 * t96 * 0.5 * w_2[0] * ip_35_0_1 * -1 * w_7[0] * w_6[0] * -1) + (t59 * 0.5 * t53 * t96 * 0.5 * w_2[0] * ip_35_0_1 * -1 * w_7[0] * w_6[0] * -1) + (t64 * t45 * t64 * t45 * t99 * t28 * -1 * w_7[0] * w_6[0] * -1) + (t59 * t44 * t59 * t44 * t99 * t28 * -1 * w_7[0] * w_6[0] * -1));
    double  ip_0_0_13  = ((c_32_0_0 * 0.5 * t64 * t45 * t99 * -1 * -1 * w_7[0] * w_6[0] * -1) + (c_29_0_0 * 0.5 * t59 * t44 * t99 * -1 * -1 * w_7[0] * w_6[0] * -1));
    double  ip_k_0_1_0[8] ;
    double  ip_k_0_1_1[8] ;
    double  ip_k_0_1_2[8] ;
    double  ip_k_0_1_3[8] ;
    double  ip_k_0_1_4[8] ;
    double  ip_k_0_1_5[8] ;
    double  ip_k_0_1_6[8] ;
    double  ip_k_0_1_7[8] ;
    double  ip_k_0_1_8[8] ;
    double  ip_k_0_1_9[8] ;
    double  ip_k_0_1_10[8] ;
    double  ip_k_0_1_11[8] ;
    double  ip_k_0_1_12[8] ;
    double  ip_k_0_1_13[8] ;
    double  ip_148_0_0  = (ip_85_0_0 * t58);
    double  ip_149_0_0  = (ip_85_0_0 * t59);
    double  ip_150_0_0  = (ip_85_0_0 * t64);
    double  ip_152_0_0  = (ip_85_0_0 * t63);
    double  ip_k_0_2_0[8] ;
    double  ip_k_0_2_1[8] ;
    double  ip_k_0_2_2[8] ;
    double  ip_k_0_2_3[8] ;
    double  ip_k_0_2_4[8] ;
    double  ip_k_0_2_5[8] ;
    double  ip_k_0_2_6[8] ;
    double  ip_k_0_2_7[8] ;
    double  ip_k_0_2_8[8] ;
    double  ip_k_0_2_9[8] ;
    double  ip_k_0_3_0[8] ;
    double  ip_k_0_3_1[8] ;
    double  ip_96_0_0  = (-1 * (ip_41_0_3 + ip_41_0_1));
    double  ip_96_0_1  = (-1 * (ip_41_0_2 + ip_41_0_0));
    double  ip_129_0_0  = (c_128_0_3 * c_0_0_5);
    double  ip_129_0_1  = (c_30_0_3 * c_127_0_0);
    double  ip_129_0_2  = (c_128_0_0 * c_0_0_5);
    double  ip_129_0_3  = (c_30_0_0 * c_127_0_0);
    double  ip_129_0_4  = (c_128_0_1 * c_0_0_0);
    double  ip_129_0_5  = (c_128_0_2 * c_0_0_0);
    double  ip_129_0_6  = (c_30_0_2 * c_127_0_0);
    double  ip_129_0_7  = (c_128_0_4 * c_0_0_5);
    double  ip_129_0_8  = (c_0_0_1 * t79);
    double  ip_129_1_0  = (t79 * ((ip_78_1_0 * ip_129_0_4) + (ip_0_0_6 * c_42_0_1)));
    double  ip_129_1_1  = (t79 * ((ip_78_1_1 * ip_129_0_2) + (ip_77_1_0 * ip_129_0_6) + ip_0_0_8));
    double  ip_129_1_2  = (t79 * ((ip_78_1_0 * ip_129_0_7) + (ip_77_1_1 * ip_129_0_3) + ip_0_0_11));
    double  ip_129_1_3  = (t79 * ((ip_78_1_0 * ip_129_0_2) + (ip_77_1_1 * ip_129_0_6) + ip_0_0_13));
    double  ip_129_1_4  = (t79 * ((ip_78_1_0 * ip_129_0_5) + (ip_0_0_6 * c_42_0_0)));
    double  ip_129_1_5  = (t79 * ((ip_78_1_1 * ip_129_0_4) + (ip_0_0_0 * c_42_0_1)));
    double  ip_129_1_6  = (t79 * ((ip_78_1_0 * c_0_0_7) + (ip_77_1_1 * c_0_0_2) + ip_0_0_3));
    double  ip_129_1_7  = (t79 * ((ip_78_1_1 * ip_129_0_5) + (ip_0_0_0 * c_42_0_0)));
    double  ip_129_1_8  = (t79 * ((ip_78_1_0 * ip_129_0_0) + (ip_77_1_1 * ip_129_0_1) + ip_0_0_1));
    double  ip_129_1_9  = (t79 * ((ip_78_1_1 * ip_129_0_7) + (ip_77_1_0 * ip_129_0_3) + ip_0_0_9));
    double  ip_129_1_10  = (t79 * ((ip_78_1_1 * ip_129_0_0) + (ip_77_1_0 * ip_129_0_1) + ip_0_0_2));
    double  ip_129_1_11  = (t79 * ((ip_78_1_1 * c_0_0_7) + (ip_77_1_0 * c_0_0_2) + ip_0_0_5));
    double  ip_130_0_0  = (t61 * c_44_0_3);
    double  ip_130_0_1  = (ip_43_1_9 * ip_43_1_1);
    double  ip_130_0_2  = (t56 * c_44_0_1);
    double  ip_130_0_3  = (t62 * c_44_0_3);
    double  ip_130_0_4  = (t55 * c_44_0_1);
    double  ip_130_1_0  = ((ip_43_2_0 * ((c_44_1_7 * ip_44_1_10) + (c_44_1_14 * ip_44_1_16))) + (ip_130_0_1 * ((ip_78_1_0 * c_17_0_0) + (ip_77_1_1 * c_16_0_2))));
    double  ip_130_1_1  = ((ip_43_2_0 * ((c_44_1_1 * ip_44_1_10) + (c_44_1_15 * ip_44_1_16))) + (ip_130_0_1 * ((ip_78_1_1 * c_17_0_1) + (ip_77_1_0 * c_16_0_1))));
    double  ip_130_1_2  = (ip_44_3_3 + (ip_96_0_1 * ip_44_3_0) + (c_40_0_0 * ip_44_3_5) + ip_44_3_10 + (ip_43_2_1 * ((ip_78_1_1 * ip_130_0_4) + (ip_77_1_0 * ip_130_0_0))));
    double  ip_130_1_3  = (ip_44_3_1 + (ip_96_0_1 * ip_44_3_6) + (c_40_0_0 * ip_44_3_11) + ip_44_3_9 + (ip_43_2_1 * ((ip_78_1_0 * ip_130_0_4) + (ip_77_1_1 * ip_130_0_0))));
    double  ip_130_1_4  = ((ip_43_2_0 * ((c_44_1_0 * ip_44_1_10) + (c_44_1_5 * ip_44_1_16))) + (ip_130_0_1 * ((ip_78_1_0 * c_17_0_1) + (ip_77_1_1 * c_16_0_1))));
    double  ip_130_1_5  = ((ip_43_2_0 * ((c_44_1_2 * ip_44_1_10) + (c_44_1_3 * ip_44_1_16))) + (ip_130_0_1 * ((ip_78_1_1 * c_17_0_3) + (ip_77_1_0 * c_16_0_3))));
    double  ip_130_1_6  = ((ip_43_2_0 * ((c_44_1_11 * ip_44_1_10) + (c_44_1_10 * ip_44_1_16))) + (ip_130_0_1 * ((ip_78_1_1 * c_17_0_2) + (ip_77_1_0 * c_16_0_0))));
    double  ip_130_1_7  = ((ip_43_2_0 * ((c_44_1_8 * ip_44_1_10) + (c_44_1_4 * ip_44_1_16))) + (ip_130_0_1 * ((ip_78_1_0 * c_17_0_3) + (ip_77_1_1 * c_16_0_3))));
    double  ip_130_1_8  = ((ip_43_2_0 * ((c_44_1_12 * ip_44_1_10) + (c_44_1_13 * ip_44_1_16))) + (ip_130_0_1 * ((ip_78_1_1 * c_17_0_0) + (ip_77_1_0 * c_16_0_2))));
    double  ip_130_1_9  = (ip_44_3_7 + (ip_96_0_0 * ip_44_3_0) + (c_40_0_1 * ip_44_3_5) + ip_44_3_2 + (ip_43_2_1 * ((ip_78_1_1 * ip_130_0_2) + (ip_77_1_0 * ip_130_0_3))));
    double  ip_130_1_10  = (ip_44_3_4 + (ip_96_0_0 * ip_44_3_6) + (c_40_0_1 * ip_44_3_11) + ip_44_3_8 + (ip_43_2_1 * ((ip_78_1_0 * ip_130_0_2) + (ip_77_1_1 * ip_130_0_3))));
    double  ip_130_1_11  = ((ip_43_2_0 * ((c_44_1_6 * ip_44_1_10) + (c_44_1_9 * ip_44_1_16))) + (ip_130_0_1 * ((ip_78_1_0 * c_17_0_2) + (ip_77_1_1 * c_16_0_0))));
    double  ip_131_0_0  = (ip_43_1_9 * c_16_0_2);
    double  ip_131_0_1  = (ip_43_1_9 * c_16_0_3);
    double  ip_131_0_2  = (ip_43_1_9 * c_16_0_0);
    double  ip_131_0_3  = (c_45_1_1 * ip_43_2_1);
    double  ip_131_0_4  = (0.5 * ip_45_3_7);
    double  ip_131_0_6  = (t53 * ip_45_3_3);
    double  ip_131_0_7  = (c_44_0_0 * ip_43_2_1);
    double  ip_131_0_9  = (ip_43_2_0 * c_15_0_3);
    double  ip_131_0_10  = (ip_43_2_0 * c_15_0_2);
    double  ip_131_0_11  = (t55 * 0.5);
    double  ip_131_0_12  = (ip_43_2_0 * c_15_0_0);
    double  ip_131_0_13  = (c_44_0_0 * ip_43_1_2);
    double  ip_131_0_14  = (0.5 * ip_45_3_8);
    double  ip_131_0_15  = (ip_44_0_0 * t61);
    double  ip_131_0_17  = (ip_44_0_0 * t62);
    double  ip_131_0_18  = (0.5 * ip_45_3_0);
    double  ip_131_0_19  = (ip_43_1_9 * c_16_0_1);
    double  ip_131_0_20  = (0.5 * ip_45_3_6);
    double  ip_131_0_21  = (t56 * 0.5);
    double  ip_131_0_22  = (c_45_1_0 * ip_43_2_1);
    double  ip_131_0_23  = (c_44_0_3 * ip_43_2_1);
    double  ip_131_0_24  = (ip_43_2_0 * c_18_0_3);
    double  ip_131_0_25  = (ip_43_2_0 * c_18_0_0);
    double  ip_131_0_26  = (ip_43_2_0 * c_18_0_1);
    double  ip_131_0_27  = (ip_43_2_0 * c_18_0_2);
    double  ip_131_0_28  = (t96 * c_45_1_3);
    double  ip_131_0_29  = (t62 * 0.5);
    double  ip_131_0_30  = (c_45_1_4 * ip_43_2_1);
    double  ip_131_0_31  = (t60 * ip_45_3_2);
    double  ip_131_0_32  = (t60 * ip_45_3_4);
    double  ip_131_0_33  = (ip_43_2_0 * c_15_0_1);
    double  ip_131_0_35  = (c_44_0_4 * ip_43_2_1);
    double  ip_131_0_36  = (c_45_1_2 * ip_43_2_1);
    double  ip_131_0_37  = (ip_44_0_0 * t55);
    double  ip_131_0_38  = (ip_44_0_0 * t56);
    double  ip_131_0_39  = (c_44_0_1 * ip_43_2_1);
    double  ip_131_0_40  = (t53 * ip_45_3_5);
    double  ip_131_0_42  = (ip_43_1_9 * c_17_0_3);
    double  ip_131_0_43  = (ip_43_1_9 * c_17_0_2);
    double  ip_131_0_44  = (ip_43_1_9 * c_17_0_1);
    double  ip_131_0_45  = (ip_43_1_9 * c_17_0_0);
    double  ip_131_0_46  = (c_44_0_4 * ip_43_1_2);
    double  ip_131_0_47  = (t61 * 0.5);
    double  ip_131_1_0  = (t56 * ip_131_0_7);
    double  ip_131_1_1  = (t62 * ip_131_0_35);
    double  ip_131_1_2  = (t53 * ip_43_2_1);
    double  ip_131_1_3  = (t55 * ip_131_0_7);
    double  ip_131_1_4  = (ip_131_0_11 * ip_131_0_13);
    double  ip_131_1_5  = (t87 * ip_131_0_22);
    double  ip_131_1_6  = (t55 * ip_131_0_35);
    double  ip_131_1_7  = (t60 * ip_131_0_27);
    double  ip_131_1_8  = (t60 * ip_131_0_26);
    double  ip_131_1_9  = (t60 * ip_131_0_25);
    double  ip_131_1_10  = (ip_131_0_29 * ip_131_0_46);
    double  ip_131_1_11  = (ip_131_0_47 * ip_131_0_46);
    double  ip_131_1_12  = (t61 * ip_131_0_7);
    double  ip_131_1_13  = (ip_96_0_0 * ip_131_0_28);
    double  ip_131_1_14  = (t87 * ip_131_0_36);
    double  ip_131_1_15  = (t87 * ip_131_0_30);
    double  ip_131_1_16  = (t56 * ip_131_0_35);
    double  ip_131_1_17  = (t60 * ip_131_0_24);
    double  ip_131_1_18  = (t53 * ip_131_0_10);
    double  ip_131_1_19  = (ip_131_0_21 * ip_131_0_13);
    double  ip_131_1_20  = (t61 * ip_131_0_35);
    double  ip_131_1_21  = (t53 * ip_131_0_12);
    double  ip_131_1_22  = (t53 * ip_131_0_33);
    double  ip_131_1_23  = (t60 * ip_43_2_1);
    double  ip_131_1_24  = (t53 * ip_131_0_9);
    double  ip_131_1_25  = (t62 * ip_131_0_7);
    double  ip_131_1_26  = (t87 * ip_131_0_3);
    double  ip_131_1_27  = (ip_96_0_1 * ip_131_0_28);
    double  ip_131_2_0  = ((t61 * ip_131_0_32) + (t61 * ip_131_0_4) + (t55 * ip_131_0_18) + (t55 * ip_131_0_40) + (c_45_1_1 * ip_131_1_26) + (c_45_1_2 * ip_131_1_14) + (ip_84_1_0 * t55 * ip_131_0_39) + (ip_83_1_0 * t61 * ip_131_0_23) + (ip_131_1_27 * ip_131_1_11) + (ip_131_1_27 * ip_131_1_4) + (c_40_0_0 * ip_131_0_15 * ip_131_1_23) + (c_40_0_0 * ip_131_0_37 * ip_131_1_2));
    double  ip_131_2_1  = ((t62 * ip_131_0_32) + (t62 * ip_131_0_4) + (t56 * ip_131_0_18) + (t56 * ip_131_0_40) + (c_45_1_0 * ip_131_1_26) + (c_45_1_4 * ip_131_1_14) + (ip_84_1_1 * t55 * ip_131_0_39) + (ip_83_1_1 * t61 * ip_131_0_23) + (ip_131_1_27 * ip_131_1_10) + (ip_131_1_27 * ip_131_1_19) + (c_40_0_0 * ip_131_0_17 * ip_131_1_23) + (c_40_0_0 * ip_131_0_38 * ip_131_1_2));
    double  ip_131_2_2  = ((t62 * ip_131_0_31) + (t62 * ip_131_0_20) + (t56 * ip_131_0_14) + (t56 * ip_131_0_6) + (c_45_1_0 * ip_131_1_5) + (c_45_1_4 * ip_131_1_15) + (ip_84_1_1 * t56 * ip_131_0_39) + (ip_83_1_1 * t62 * ip_131_0_23) + (ip_131_1_13 * ip_131_1_10) + (ip_131_1_13 * ip_131_1_19) + (c_40_0_1 * ip_131_0_17 * ip_131_1_23) + (c_40_0_1 * ip_131_0_38 * ip_131_1_2));
    double  ip_131_2_3  = ((t61 * ip_131_0_31) + (t61 * ip_131_0_20) + (t55 * ip_131_0_14) + (t55 * ip_131_0_6) + (c_45_1_1 * ip_131_1_5) + (c_45_1_2 * ip_131_1_15) + (ip_84_1_0 * t56 * ip_131_0_39) + (ip_83_1_0 * t62 * ip_131_0_23) + (ip_131_1_13 * ip_131_1_11) + (ip_131_1_13 * ip_131_1_4) + (c_40_0_1 * ip_131_0_15 * ip_131_1_23) + (c_40_0_1 * ip_131_0_37 * ip_131_1_2));
    double  ip_46_0_0  = ((t61 * 0.5 * ip_43_3_0) + (t55 * 0.5 * ip_43_3_3) + (t61 * -1 * t87 * c_43_1_2 * ip_43_1_2) + (t55 * -1 * t87 * c_43_1_1 * ip_43_1_2) + (t61 * t60 * c_42_0_0 * t97 * c_43_0_1 * ip_43_1_2) + (t61 * t60 * t64 * ip_43_1_5 * ip_43_2_1) + (t55 * t53 * c_42_0_0 * t97 * c_43_0_1 * ip_43_1_2) + (t55 * t53 * t59 * ip_43_1_3 * ip_43_2_1) + (ip_84_1_0 * t59 * c_43_0_0 * ip_43_2_1) + (ip_83_1_0 * t64 * c_43_0_3 * ip_43_2_1));
    double  ip_46_0_1  = ((t62 * t60 * c_32_0_0 * ip_43_1_1 * ip_43_2_0) + (t56 * t53 * c_29_0_0 * ip_43_1_1 * ip_43_2_0) + (ip_84_1_1 * c_31_0_0 * ip_43_1_1 * ip_43_1_9) + (ip_83_1_1 * c_30_0_2 * ip_43_1_1 * ip_43_1_9));
    double  ip_46_0_2  = ((t62 * 0.5 * ip_43_3_0) + (t56 * 0.5 * ip_43_3_3) + (t62 * -1 * t87 * c_43_1_2 * ip_43_1_2) + (t56 * -1 * t87 * c_43_1_1 * ip_43_1_2) + (t62 * t60 * c_42_0_0 * t97 * c_43_0_1 * ip_43_1_2) + (t62 * t60 * t64 * ip_43_1_5 * ip_43_2_1) + (t56 * t53 * c_42_0_0 * t97 * c_43_0_1 * ip_43_1_2) + (t56 * t53 * t59 * ip_43_1_3 * ip_43_2_1) + (ip_84_1_1 * t59 * c_43_0_0 * ip_43_2_1) + (ip_83_1_1 * t64 * c_43_0_3 * ip_43_2_1));
    double  ip_46_0_3  = ((c_82_0_1 * ip_79_0_0 * t64 * c_43_0_5 * ip_43_2_1) + (ip_81_2_0 * t59 * c_43_0_5 * ip_43_2_1) + (ip_80_2_0 * t64 * c_43_0_2 * ip_43_2_1) + (c_79_0_3 * ip_79_0_0 * t59 * c_43_0_2 * ip_43_2_1));
    double  ip_46_0_4  = ((t62 * 0.5 * ip_43_3_2) + (t56 * 0.5 * ip_43_3_1) + (t62 * -1 * t87 * c_43_1_3 * ip_43_1_2) + (t56 * -1 * t87 * c_43_1_0 * ip_43_1_2) + (t62 * t60 * c_42_0_1 * t97 * c_43_0_1 * ip_43_1_2) + (t62 * t60 * t63 * ip_43_1_5 * ip_43_2_1) + (t56 * t53 * c_42_0_1 * t97 * c_43_0_1 * ip_43_1_2) + (t56 * t53 * t58 * ip_43_1_3 * ip_43_2_1) + (ip_84_1_1 * t58 * c_43_0_0 * ip_43_2_1) + (ip_83_1_1 * t63 * c_43_0_3 * ip_43_2_1));
    double  ip_46_0_5  = ((t62 * t60 * c_32_0_3 * ip_43_1_1 * ip_43_2_0) + (t56 * t53 * c_29_0_1 * ip_43_1_1 * ip_43_2_0) + (ip_84_1_1 * c_31_0_1 * ip_43_1_1 * ip_43_1_9) + (ip_83_1_1 * c_30_0_1 * ip_43_1_1 * ip_43_1_9));
    double  ip_46_0_6  = ((c_82_0_1 * ip_79_0_0 * t63 * c_43_0_5 * ip_43_2_1) + (ip_81_2_0 * t58 * c_43_0_5 * ip_43_2_1) + (ip_80_2_0 * t63 * c_43_0_2 * ip_43_2_1) + (c_79_0_3 * ip_79_0_0 * t58 * c_43_0_2 * ip_43_2_1));
    double  ip_46_0_7  = ((t61 * t60 * c_32_0_3 * ip_43_1_1 * ip_43_2_0) + (t55 * t53 * c_29_0_1 * ip_43_1_1 * ip_43_2_0) + (ip_84_1_0 * c_31_0_1 * ip_43_1_1 * ip_43_1_9) + (ip_83_1_0 * c_30_0_1 * ip_43_1_1 * ip_43_1_9));
    double  ip_46_0_8  = ((c_82_0_0 * ip_79_0_0 * t64 * c_43_0_5 * ip_43_2_1) + (ip_81_2_3 * t59 * c_43_0_5 * ip_43_2_1) + (ip_80_2_3 * t64 * c_43_0_2 * ip_43_2_1) + (c_79_0_1 * ip_79_0_0 * t59 * c_43_0_2 * ip_43_2_1));
    double  ip_46_0_9  = ((c_82_0_2 * ip_79_0_0 * t63 * c_43_0_5 * ip_43_2_1) + (ip_81_2_1 * t58 * c_43_0_5 * ip_43_2_1) + (ip_80_2_2 * t63 * c_43_0_2 * ip_43_2_1) + (c_79_0_0 * ip_79_0_0 * t58 * c_43_0_2 * ip_43_2_1));
    double  ip_46_0_10  = ((t61 * 0.5 * ip_43_3_2) + (t55 * 0.5 * ip_43_3_1) + (t61 * -1 * t87 * c_43_1_3 * ip_43_1_2) + (t55 * -1 * t87 * c_43_1_0 * ip_43_1_2) + (t61 * t60 * c_42_0_1 * t97 * c_43_0_1 * ip_43_1_2) + (t61 * t60 * t63 * ip_43_1_5 * ip_43_2_1) + (t55 * t53 * c_42_0_1 * t97 * c_43_0_1 * ip_43_1_2) + (t55 * t53 * t58 * ip_43_1_3 * ip_43_2_1) + (ip_84_1_0 * t58 * c_43_0_0 * ip_43_2_1) + (ip_83_1_0 * t63 * c_43_0_3 * ip_43_2_1));
    double  ip_46_0_11  = ((t62 * t60 * c_32_0_1 * ip_43_1_1 * ip_43_2_0) + (t56 * t53 * c_29_0_2 * ip_43_1_1 * ip_43_2_0) + (ip_84_1_1 * c_31_0_3 * ip_43_1_1 * ip_43_1_9) + (ip_83_1_1 * c_30_0_3 * ip_43_1_1 * ip_43_1_9));
    double  ip_46_0_12  = ((c_82_0_3 * ip_79_0_0 * t64 * c_43_0_5 * ip_43_2_1) + (ip_81_2_2 * t59 * c_43_0_5 * ip_43_2_1) + (ip_80_2_1 * t64 * c_43_0_2 * ip_43_2_1) + (c_79_0_2 * ip_79_0_0 * t59 * c_43_0_2 * ip_43_2_1));
    double  ip_46_0_13  = ((c_82_0_3 * ip_79_0_0 * t63 * c_43_0_5 * ip_43_2_1) + (ip_81_2_2 * t58 * c_43_0_5 * ip_43_2_1) + (ip_80_2_1 * t63 * c_43_0_2 * ip_43_2_1) + (c_79_0_2 * ip_79_0_0 * t58 * c_43_0_2 * ip_43_2_1));
    double  ip_46_0_14  = ((c_82_0_2 * ip_79_0_0 * t64 * c_43_0_5 * ip_43_2_1) + (ip_81_2_1 * t59 * c_43_0_5 * ip_43_2_1) + (ip_80_2_2 * t64 * c_43_0_2 * ip_43_2_1) + (c_79_0_0 * ip_79_0_0 * t59 * c_43_0_2 * ip_43_2_1));
    double  ip_46_0_15  = ((t61 * t60 * c_32_0_0 * ip_43_1_1 * ip_43_2_0) + (t55 * t53 * c_29_0_0 * ip_43_1_1 * ip_43_2_0) + (ip_84_1_0 * c_31_0_0 * ip_43_1_1 * ip_43_1_9) + (ip_83_1_0 * c_30_0_2 * ip_43_1_1 * ip_43_1_9));
    double  ip_46_0_16  = ((t61 * t60 * c_32_0_2 * ip_43_1_1 * ip_43_2_0) + (t55 * t53 * c_29_0_3 * ip_43_1_1 * ip_43_2_0) + (ip_84_1_0 * c_31_0_2 * ip_43_1_1 * ip_43_1_9) + (ip_83_1_0 * c_30_0_0 * ip_43_1_1 * ip_43_1_9));
    double  ip_46_0_17  = ((c_82_0_0 * ip_79_0_0 * t63 * c_43_0_5 * ip_43_2_1) + (ip_81_2_3 * t58 * c_43_0_5 * ip_43_2_1) + (ip_80_2_3 * t63 * c_43_0_2 * ip_43_2_1) + (c_79_0_1 * ip_79_0_0 * t58 * c_43_0_2 * ip_43_2_1));
    double  ip_46_0_18  = ((t62 * t60 * c_32_0_2 * ip_43_1_1 * ip_43_2_0) + (t56 * t53 * c_29_0_3 * ip_43_1_1 * ip_43_2_0) + (ip_84_1_1 * c_31_0_2 * ip_43_1_1 * ip_43_1_9) + (ip_83_1_1 * c_30_0_0 * ip_43_1_1 * ip_43_1_9));
    double  ip_46_0_19  = ((t61 * t60 * c_32_0_1 * ip_43_1_1 * ip_43_2_0) + (t55 * t53 * c_29_0_2 * ip_43_1_1 * ip_43_2_0) + (ip_84_1_0 * c_31_0_3 * ip_43_1_1 * ip_43_1_9) + (ip_83_1_0 * c_30_0_3 * ip_43_1_1 * ip_43_1_9));
    double  ip_j_46_1_0[8] ;
    double  ip_j_46_1_1[8] ;
    double  ip_k_46_1_0[8] ;
    double  ip_k_46_1_1[8] ;
    double  ip_171_0_0  = (c_0_0_4 * ip_129_0_8);
    double  ip_171_0_1  = (c_0_0_3 * ip_129_0_8);
    double  ip_171_0_2  = (c_0_0_6 * ip_129_0_8);
    double  ip_171_1_0  = ((ip_0_0_12 * t79) + ip_129_1_4);
    double  ip_171_1_1  = (ip_129_1_0 + (ip_0_0_7 * t79));
    double  ip_171_1_2  = ((ip_0_0_10 * t79) + ip_129_1_7);
    double  ip_171_1_3  = (ip_129_1_5 + (ip_0_0_4 * t79));
    double  ip_173_0_0  = ((ip_79_0_0 * ((c_82_0_0 * ip_131_1_20) + (c_79_0_1 * ip_131_1_3))) + (ip_81_2_3 * ip_131_1_6) + (ip_80_2_3 * ip_131_1_12));
    double  ip_173_0_1  = ((ip_79_0_0 * ((c_82_0_3 * ip_131_1_20) + (c_79_0_2 * ip_131_1_3))) + (ip_81_2_2 * ip_131_1_6) + (ip_80_2_1 * ip_131_1_12));
    double  ip_173_0_2  = ((ip_79_0_0 * ((c_82_0_2 * ip_131_1_20) + (c_79_0_0 * ip_131_1_3))) + (ip_81_2_1 * ip_131_1_6) + (ip_80_2_2 * ip_131_1_12));
    double  ip_173_0_3  = ((ip_79_0_0 * ((c_82_0_2 * ip_131_1_1) + (c_79_0_0 * ip_131_1_0))) + (ip_81_2_1 * ip_131_1_16) + (ip_80_2_2 * ip_131_1_25));
    double  ip_173_0_4  = ((ip_79_0_0 * ((c_82_0_3 * ip_131_1_1) + (c_79_0_2 * ip_131_1_0))) + (ip_81_2_2 * ip_131_1_16) + (ip_80_2_1 * ip_131_1_25));
    double  ip_173_0_5  = (ip_43_1_1 * ((t61 * ip_131_1_8) + (ip_84_1_0 * ip_131_0_44) + (ip_83_1_0 * ip_131_0_19) + (t55 * ip_131_1_18)));
    double  ip_173_0_6  = (ip_43_1_1 * ((t62 * ip_131_1_17) + (ip_84_1_1 * ip_131_0_42) + (ip_83_1_1 * ip_131_0_1) + (t56 * ip_131_1_22)));
    double  ip_173_0_7  = (ip_43_1_1 * ((t61 * ip_131_1_9) + (ip_84_1_0 * ip_131_0_45) + (ip_83_1_0 * ip_131_0_0) + (t55 * ip_131_1_24)));
    double  ip_173_0_8  = ((ip_79_0_0 * ((c_82_0_1 * ip_131_1_20) + (c_79_0_3 * ip_131_1_3))) + (ip_81_2_0 * ip_131_1_6) + (ip_80_2_0 * ip_131_1_12));
    double  ip_173_0_9  = ((ip_79_0_0 * ((c_82_0_0 * ip_131_1_1) + (c_79_0_1 * ip_131_1_0))) + (ip_81_2_3 * ip_131_1_16) + (ip_80_2_3 * ip_131_1_25));
    double  ip_173_0_10  = ((ip_79_0_0 * ((c_82_0_1 * ip_131_1_1) + (c_79_0_3 * ip_131_1_0))) + (ip_81_2_0 * ip_131_1_16) + (ip_80_2_0 * ip_131_1_25));
    double  ip_173_0_11  = (ip_43_1_1 * ((t62 * ip_131_1_8) + (ip_84_1_1 * ip_131_0_44) + (ip_83_1_1 * ip_131_0_19) + (t56 * ip_131_1_18)));
    double  ip_173_0_12  = (ip_43_1_1 * ((t61 * ip_131_1_7) + (ip_84_1_0 * ip_131_0_43) + (ip_83_1_0 * ip_131_0_2) + (t55 * ip_131_1_21)));
    double  ip_173_0_13  = (ip_43_1_1 * ((t62 * ip_131_1_7) + (ip_84_1_1 * ip_131_0_43) + (ip_83_1_1 * ip_131_0_2) + (t56 * ip_131_1_21)));
    double  ip_173_0_14  = (ip_43_1_1 * ((t62 * ip_131_1_9) + (ip_84_1_1 * ip_131_0_45) + (ip_83_1_1 * ip_131_0_0) + (t56 * ip_131_1_24)));
    double  ip_173_0_15  = (ip_43_1_1 * ((t61 * ip_131_1_17) + (ip_84_1_0 * ip_131_0_42) + (ip_83_1_0 * ip_131_0_1) + (t55 * ip_131_1_22)));
    double  ip_132_0_0  = ((ip_85_0_0 * c_130_1_10 * ip_43_2_1) + (ip_87_2_3 * c_130_0_6 * ip_43_2_1) + (ip_86_2_3 * c_130_0_3 * ip_43_2_1) + (ip_85_0_0 * c_130_1_9 * ip_43_2_1));
    double  ip_132_0_1  = ((ip_85_0_0 * c_130_1_14 * ip_43_2_1) + (ip_87_2_2 * c_130_0_0 * ip_43_2_1) + (ip_86_2_2 * c_130_0_4 * ip_43_2_1) + (ip_85_0_0 * c_130_1_6 * ip_43_2_1));
    double  ip_132_0_2  = ((ip_85_0_0 * c_130_1_1 * ip_43_2_1) + (ip_87_2_0 * c_130_0_6 * ip_43_2_1) + (ip_86_2_0 * c_130_0_3 * ip_43_2_1) + (ip_85_0_0 * c_130_1_5 * ip_43_2_1));
    double  ip_132_0_3  = ((ip_85_0_0 * c_130_1_2 * ip_43_2_1) + (ip_87_2_0 * c_130_0_0 * ip_43_2_1) + (ip_86_2_0 * c_130_0_4 * ip_43_2_1) + (ip_85_0_0 * c_130_1_0 * ip_43_2_1));
    double  ip_132_0_4  = ((ip_85_0_0 * c_130_1_3 * ip_43_2_1) + (ip_87_2_1 * c_130_0_6 * ip_43_2_1) + (ip_86_2_1 * c_130_0_3 * ip_43_2_1) + (ip_85_0_0 * c_130_1_13 * ip_43_2_1));
    double  ip_132_0_5  = ((ip_85_0_0 * c_130_1_11 * ip_43_2_1) + (ip_87_2_2 * c_130_0_6 * ip_43_2_1) + (ip_86_2_2 * c_130_0_3 * ip_43_2_1) + (ip_85_0_0 * c_130_1_8 * ip_43_2_1));
    double  ip_132_0_6  = ((ip_85_0_0 * c_130_1_15 * ip_43_2_1) + (ip_87_2_3 * c_130_0_0 * ip_43_2_1) + (ip_86_2_3 * c_130_0_4 * ip_43_2_1) + (ip_85_0_0 * c_130_1_7 * ip_43_2_1));
    double  ip_132_0_7  = ((ip_85_0_0 * c_130_1_4 * ip_43_2_1) + (ip_87_2_1 * c_130_0_0 * ip_43_2_1) + (ip_86_2_1 * c_130_0_4 * ip_43_2_1) + (ip_85_0_0 * c_130_1_12 * ip_43_2_1));
    double  ip_k_132_0_0[8] ;

    for (int  k  = 0; k < 8; k += 1)
    {
      ip_k_132_0_0[k] = (t30[facet[0]][ip][k] * ip_130_1_10) + (t29[facet[0]][ip][k] * ip_130_1_9);

    }
    double  ip_j_132_0_0[8] ;
    double  ip_j_132_0_1[8] ;
    double  ip_k_132_1_0[8] ;
    double  ip_k_132_1_1[8] ;
    double  ip_209_0_0  = (t63 * ip_171_0_0);
    double  ip_209_0_1  = (t64 * ip_171_0_0);
    double  ip_209_1_0  = ((ip_171_0_1 * ((ip_86_2_0 * t63) + (ip_148_0_0 * c_85_0_0))) + (ip_171_0_2 * ((ip_87_2_0 * t58) + (ip_152_0_0 * c_88_0_0))));
    double  ip_209_1_1  = ((ip_171_0_1 * ((ip_86_2_1 * t63) + (ip_148_0_0 * c_85_0_1))) + (ip_171_0_2 * ((ip_87_2_1 * t58) + (ip_152_0_0 * c_88_0_1))));
    double  ip_209_1_2  = ((ip_171_0_1 * ((ip_86_2_1 * t64) + (ip_149_0_0 * c_85_0_1))) + (ip_171_0_2 * ((ip_87_2_1 * t59) + (ip_150_0_0 * c_88_0_1))));
    double  ip_209_1_3  = ((ip_77_1_0 * ip_209_0_1) + ip_171_1_2);
    double  ip_209_1_4  = (ip_171_1_3 + (ip_77_1_0 * ip_209_0_0));
    double  ip_209_1_5  = ((ip_171_0_1 * ((ip_86_2_0 * t64) + (ip_149_0_0 * c_85_0_0))) + (ip_171_0_2 * ((ip_87_2_0 * t59) + (ip_150_0_0 * c_88_0_0))));
    double  ip_209_1_6  = ((ip_171_0_1 * ((ip_86_2_2 * t63) + (ip_148_0_0 * c_85_0_2))) + (ip_171_0_2 * ((ip_87_2_2 * t58) + (ip_152_0_0 * c_88_0_2))));
    double  ip_209_1_7  = ((ip_171_0_1 * ((ip_86_2_2 * t64) + (ip_149_0_0 * c_85_0_2))) + (ip_171_0_2 * ((ip_87_2_2 * t59) + (ip_150_0_0 * c_88_0_2))));
    double  ip_209_1_8  = ((ip_171_0_1 * ((ip_86_2_3 * t64) + (ip_149_0_0 * c_85_0_3))) + (ip_171_0_2 * ((ip_87_2_3 * t59) + (ip_150_0_0 * c_88_0_3))));
    double  ip_209_1_9  = ((ip_171_0_1 * ((ip_86_2_3 * t63) + (ip_148_0_0 * c_85_0_3))) + (ip_171_0_2 * ((ip_87_2_3 * t58) + (ip_152_0_0 * c_88_0_3))));
    double  ip_209_1_10  = (ip_171_1_1 + (ip_77_1_1 * ip_209_0_0));
    double  ip_209_1_11  = (ip_171_1_0 + (ip_77_1_1 * ip_209_0_1));
    double  ip_j_174_0_0[8] ;
    double  ip_j_174_0_1[8] ;
    double  ip_k_174_0_0[8] ;
    double  ip_k_174_0_1[8] ;

    for (int  k  = 0; k < 8; k += 1)
    {
      ip_j_174_0_0[k] = (t34[facet[1]][ip][k] * ip_173_0_7) + (t31[facet[1]][ip][k] * ip_173_0_15) + (t33[facet[1]][ip][k] * ip_173_0_12) + (t32[facet[1]][ip][k] * ip_173_0_5);
      ip_j_174_0_1[k] = (t30[facet[1]][ip][k] * ip_131_2_2) + (t29[facet[1]][ip][k] * ip_131_2_1) + (t31[facet[1]][ip][k] * ip_173_0_6) + (t34[facet[1]][ip][k] * ip_173_0_14) + (t33[facet[1]][ip][k] * ip_173_0_13) + (t32[facet[1]][ip][k] * ip_173_0_11);
      ip_k_174_0_0[k] = (t29[facet[1]][ip][k] * ip_131_2_0) + (t34[facet[1]][ip][k] * ip_173_0_8) + (t31[facet[1]][ip][k] * ip_173_0_1) + (t32[facet[1]][ip][k] * ip_173_0_2) + (t33[facet[1]][ip][k] * ip_173_0_0);
      ip_k_174_0_1[k] = (t29[facet[1]][ip][k] * ip_131_2_3) + (t34[facet[1]][ip][k] * ip_173_0_10) + (t31[facet[1]][ip][k] * ip_173_0_4) + (t32[facet[1]][ip][k] * ip_173_0_3) + (t33[facet[1]][ip][k] * ip_173_0_9);

    }

    for (int  j  = 0; j < 8; j += 1)
    {
      double  t156  = (t53 * ((t30[facet[1]][ip][j] * t62) + (t29[facet[1]][ip][j] * t61)));
      double  t158  = (t60 * ((t30[facet[1]][ip][j] * t56) + (t29[facet[1]][ip][j] * t55)));
      double  t167  = (t60 * ((t30[facet[1]][ip][j] * t62) + (t29[facet[1]][ip][j] * t61)));
      double  t168  = (t53 * ((t30[facet[1]][ip][j] * t56) + (t29[facet[1]][ip][j] * t55)));
      double  t170  = (-1 * ((t30[facet[1]][ip][j] * t62) + (t29[facet[1]][ip][j] * t61)));
      double  t171  = (-1 * ((t30[facet[1]][ip][j] * t56) + (t29[facet[1]][ip][j] * t55)));
      double  t173  = (t91 * ((t30[facet[1]][ip][j] * t56) + (t29[facet[1]][ip][j] * t55)));
      double  t174  = (t91 * ((t30[facet[1]][ip][j] * t62) + (t29[facet[1]][ip][j] * t61)));
      double  t175  = (t90 * ((t30[facet[1]][ip][j] * t56) + (t29[facet[1]][ip][j] * t55)));
      double  t176  = (t90 * ((t30[facet[1]][ip][j] * t62) + (t29[facet[1]][ip][j] * t61)));
      double  t189  = (t45 * ((t30[facet[0]][ip][j] * t64) + (t29[facet[0]][ip][j] * t63)));
      double  t190  = (t44 * ((t30[facet[0]][ip][j] * t59) + (t29[facet[0]][ip][j] * t58)));
      double  t192  = ((t30[facet[0]][ip][j] * ip_35_0_1) + (t29[facet[0]][ip][j] * ip_35_0_0));
      double  t193  = (t89 * ((t30[facet[0]][ip][j] * t59) + (t29[facet[0]][ip][j] * t58)));
      double  t196  = (t88 * ((t30[facet[0]][ip][j] * t64) + (t29[facet[0]][ip][j] * t63)));
      double  ip_j_0_1_0 ;
      double  ip_j_0_1_1 ;
      double  ip_j_0_1_2 ;
      double  ip_j_0_1_3 ;
      double  ip_j_0_1_4 ;
      double  ip_j_0_1_5 ;
      double  ip_j_0_1_6 ;
      double  ip_j_0_1_7 ;
      double  ip_j_0_1_8 ;
      double  ip_j_0_1_10 ;
      double  ip_j_0_1_9  = ((ip_0_0_0 * ((t30[facet[0]][ip][j] * c_42_0_0) + (t29[facet[0]][ip][j] * c_42_0_1))) + (t32[facet[0]][ip][j] * ip_0_0_2) + (t33[facet[0]][ip][j] * ip_0_0_8) + (t34[facet[0]][ip][j] * ip_0_0_9) + (t31[facet[0]][ip][j] * ip_0_0_5));
      double  ip_j_0_1_11  = ((ip_0_0_6 * ((t30[facet[0]][ip][j] * c_42_0_0) + (t29[facet[0]][ip][j] * c_42_0_1))) + (t32[facet[0]][ip][j] * ip_0_0_1) + (t33[facet[0]][ip][j] * ip_0_0_13) + (t34[facet[0]][ip][j] * ip_0_0_11) + (t31[facet[0]][ip][j] * ip_0_0_3));
      double  ip_j_0_2_0 ;
      double  ip_j_0_2_1 ;
      double  ip_j_0_2_2 ;
      double  ip_j_0_2_3 ;
      double  ip_j_0_2_4 ;
      double  ip_j_0_2_5 ;
      double  ip_j_0_2_6 ;
      double  ip_j_0_2_7 ;
      double  ip_j_0_3_0 ;
      double  ip_j_0_3_1 ;

      for (int  k  = 0; k < 8; k += 1)
      {
        A[0][j][0][k] += (t31[facet[0]][ip][j] * ((t29[facet[0]][ip][k] * ip_129_1_11) + (t30[facet[0]][ip][k] * ip_129_1_6))) + (t32[facet[0]][ip][j] * ((t30[facet[0]][ip][k] * ip_129_1_8) + (t29[facet[0]][ip][k] * ip_129_1_10))) + (t33[facet[0]][ip][j] * ((t30[facet[0]][ip][k] * ip_129_1_3) + (t29[facet[0]][ip][k] * ip_129_1_1))) + (t29[facet[0]][ip][j] * ((t30[facet[0]][ip][k] * ip_209_1_10) + (t29[facet[0]][ip][k] * ip_209_1_4) + (t34[facet[0]][ip][k] * ip_209_1_1) + (t32[facet[0]][ip][k] * ip_209_1_0) + (t33[facet[0]][ip][k] * ip_209_1_6) + (t31[facet[0]][ip][k] * ip_209_1_9))) + (t30[facet[0]][ip][j] * ((t30[facet[0]][ip][k] * ip_209_1_11) + (t29[facet[0]][ip][k] * ip_209_1_3) + (t34[facet[0]][ip][k] * ip_209_1_2) + (t32[facet[0]][ip][k] * ip_209_1_5) + (t33[facet[0]][ip][k] * ip_209_1_7) + (t31[facet[0]][ip][k] * ip_209_1_8))) + (t34[facet[0]][ip][j] * ((t30[facet[0]][ip][k] * ip_129_1_2) + (t29[facet[0]][ip][k] * ip_129_1_9)));
        A[0][j][1][k] += (t33[facet[1]][ip][k] * ((t30[facet[0]][ip][j] * ip_46_0_8) + (t29[facet[0]][ip][j] * ip_46_0_17))) + (t34[facet[1]][ip][k] * ((t29[facet[0]][ip][j] * ip_46_0_6) + (t30[facet[0]][ip][j] * ip_46_0_3))) + (t32[facet[1]][ip][k] * ((t29[facet[0]][ip][j] * ip_46_0_9) + (t30[facet[0]][ip][j] * ip_46_0_14))) + (t31[facet[1]][ip][k] * ((t29[facet[0]][ip][j] * ip_46_0_13) + (t30[facet[0]][ip][j] * ip_46_0_12))) + (t30[facet[1]][ip][k] * ((t30[facet[0]][ip][j] * ip_46_0_2) + (t29[facet[0]][ip][j] * ip_46_0_4) + (t33[facet[0]][ip][j] * ip_46_0_1) + (t32[facet[0]][ip][j] * ip_46_0_11) + (t34[facet[0]][ip][j] * ip_46_0_18) + (t31[facet[0]][ip][j] * ip_46_0_5))) + (t29[facet[1]][ip][k] * ((t29[facet[0]][ip][j] * ip_46_0_10) + (t30[facet[0]][ip][j] * ip_46_0_0) + (t34[facet[0]][ip][j] * ip_46_0_16) + (t33[facet[0]][ip][j] * ip_46_0_15) + (t32[facet[0]][ip][j] * ip_46_0_19) + (t31[facet[0]][ip][j] * ip_46_0_7)));
        A[1][j][0][k] += (t29[facet[1]][ip][j] * ((t33[facet[0]][ip][k] * ip_132_0_5) + (t32[facet[0]][ip][k] * ip_132_0_2) + (t31[facet[0]][ip][k] * ip_132_0_0) + (t34[facet[0]][ip][k] * ip_132_0_4))) + (t30[facet[0]][ip][k] * ((t29[facet[1]][ip][j] * ip_130_1_3) + (t31[facet[1]][ip][j] * ip_130_1_7) + (t34[facet[1]][ip][j] * ip_130_1_0) + (t33[facet[1]][ip][j] * ip_130_1_11) + (t32[facet[1]][ip][j] * ip_130_1_4))) + (t29[facet[0]][ip][k] * ((t29[facet[1]][ip][j] * ip_130_1_2) + (t31[facet[1]][ip][j] * ip_130_1_5) + (t34[facet[1]][ip][j] * ip_130_1_8) + (t33[facet[1]][ip][j] * ip_130_1_6) + (t32[facet[1]][ip][j] * ip_130_1_1))) + (t30[facet[1]][ip][j] * (ip_k_132_0_0[k] + (t34[facet[0]][ip][k] * ip_132_0_7) + (t32[facet[0]][ip][k] * ip_132_0_3) + (t31[facet[0]][ip][k] * ip_132_0_6) + (t33[facet[0]][ip][k] * ip_132_0_1)));
        A[1][j][1][k] += (t29[facet[1]][ip][k] * ip_j_174_0_0[j]) + (t30[facet[1]][ip][j] * ip_k_174_0_1[k]) + (t29[facet[1]][ip][j] * ip_k_174_0_0[k]) + (t30[facet[1]][ip][k] * ip_j_174_0_1[j]);

      }

    }

  }

}
            #undef OP2_STRIDE



        void wrap_form00_interior_facet_integral_otherwise(int start, int end,
                      Mat arg0_0_, int *arg0_0_map0_0, int *arg0_0_map1_0, double *arg1_0, int *arg1_0_map0_0, double *arg2_0, double *arg3_0, int *arg3_0_map0_0, double *arg4_0, double *arg5_0, int *arg5_0_map0_0, double *arg6_0, double *arg7_0, double *arg8_0, double *arg8_1, int *arg8_0_map0_0, int *arg8_0_map1_0, unsigned int *arg9_0
                      ) {
  Mat arg0_0_0 = arg0_0_;
  double *arg1_0_vec[12];
    double *arg3_0_vec[6];
    double *arg5_0_vec[6];
    double *arg8_0_vec[44];
  for ( int n = start; n < end; n++ ) {
    int i = n;
    arg1_0_vec[0] = arg1_0 + (arg1_0_map0_0[i * 6 + 0])* 2;
    arg1_0_vec[1] = arg1_0 + (arg1_0_map0_0[i * 6 + 1])* 2;
    arg1_0_vec[2] = arg1_0 + (arg1_0_map0_0[i * 6 + 2])* 2;
    arg1_0_vec[3] = arg1_0 + (arg1_0_map0_0[i * 6 + 3])* 2;
    arg1_0_vec[4] = arg1_0 + (arg1_0_map0_0[i * 6 + 4])* 2;
    arg1_0_vec[5] = arg1_0 + (arg1_0_map0_0[i * 6 + 5])* 2;
    arg1_0_vec[6] = arg1_0 + (arg1_0_map0_0[i * 6 + 0])* 2 + 1;
    arg1_0_vec[7] = arg1_0 + (arg1_0_map0_0[i * 6 + 1])* 2 + 1;
    arg1_0_vec[8] = arg1_0 + (arg1_0_map0_0[i * 6 + 2])* 2 + 1;
    arg1_0_vec[9] = arg1_0 + (arg1_0_map0_0[i * 6 + 3])* 2 + 1;
    arg1_0_vec[10] = arg1_0 + (arg1_0_map0_0[i * 6 + 4])* 2 + 1;
    arg1_0_vec[11] = arg1_0 + (arg1_0_map0_0[i * 6 + 5])* 2 + 1;
    arg3_0_vec[0] = arg3_0 + (arg3_0_map0_0[i * 6 + 0])* 1;
    arg3_0_vec[1] = arg3_0 + (arg3_0_map0_0[i * 6 + 1])* 1;
    arg3_0_vec[2] = arg3_0 + (arg3_0_map0_0[i * 6 + 2])* 1;
    arg3_0_vec[3] = arg3_0 + (arg3_0_map0_0[i * 6 + 3])* 1;
    arg3_0_vec[4] = arg3_0 + (arg3_0_map0_0[i * 6 + 4])* 1;
    arg3_0_vec[5] = arg3_0 + (arg3_0_map0_0[i * 6 + 5])* 1;
    arg5_0_vec[0] = arg5_0 + (arg5_0_map0_0[i * 6 + 0])* 1;
    arg5_0_vec[1] = arg5_0 + (arg5_0_map0_0[i * 6 + 1])* 1;
    arg5_0_vec[2] = arg5_0 + (arg5_0_map0_0[i * 6 + 2])* 1;
    arg5_0_vec[3] = arg5_0 + (arg5_0_map0_0[i * 6 + 3])* 1;
    arg5_0_vec[4] = arg5_0 + (arg5_0_map0_0[i * 6 + 4])* 1;
    arg5_0_vec[5] = arg5_0 + (arg5_0_map0_0[i * 6 + 5])* 1;
    arg8_0_vec[0] = arg8_0 + (arg8_0_map0_0[i * 16 + 0])* 1;
    arg8_0_vec[1] = arg8_0 + (arg8_0_map0_0[i * 16 + 1])* 1;
    arg8_0_vec[2] = arg8_0 + (arg8_0_map0_0[i * 16 + 2])* 1;
    arg8_0_vec[3] = arg8_0 + (arg8_0_map0_0[i * 16 + 3])* 1;
    arg8_0_vec[4] = arg8_0 + (arg8_0_map0_0[i * 16 + 4])* 1;
    arg8_0_vec[5] = arg8_0 + (arg8_0_map0_0[i * 16 + 5])* 1;
    arg8_0_vec[6] = arg8_0 + (arg8_0_map0_0[i * 16 + 6])* 1;
    arg8_0_vec[7] = arg8_0 + (arg8_0_map0_0[i * 16 + 7])* 1;
    arg8_0_vec[8] = arg8_0 + (arg8_0_map0_0[i * 16 + 8])* 1;
    arg8_0_vec[9] = arg8_0 + (arg8_0_map0_0[i * 16 + 9])* 1;
    arg8_0_vec[10] = arg8_0 + (arg8_0_map0_0[i * 16 + 10])* 1;
    arg8_0_vec[11] = arg8_0 + (arg8_0_map0_0[i * 16 + 11])* 1;
    arg8_0_vec[12] = arg8_0 + (arg8_0_map0_0[i * 16 + 12])* 1;
    arg8_0_vec[13] = arg8_0 + (arg8_0_map0_0[i * 16 + 13])* 1;
    arg8_0_vec[14] = arg8_0 + (arg8_0_map0_0[i * 16 + 14])* 1;
    arg8_0_vec[15] = arg8_0 + (arg8_0_map0_0[i * 16 + 15])* 1;
    arg8_0_vec[16] = arg8_1 + (arg8_0_map1_0[i * 6 + 0])* 1;
    arg8_0_vec[17] = arg8_1 + (arg8_0_map1_0[i * 6 + 1])* 1;
    arg8_0_vec[18] = arg8_1 + (arg8_0_map1_0[i * 6 + 2])* 1;
    arg8_0_vec[19] = arg8_1 + (arg8_0_map1_0[i * 6 + 3])* 1;
    arg8_0_vec[20] = arg8_1 + (arg8_0_map1_0[i * 6 + 4])* 1;
    arg8_0_vec[21] = arg8_1 + (arg8_0_map1_0[i * 6 + 5])* 1;
    double buffer_arg0_0[16][16] __attribute__((aligned(32))) = {{0.0}};
    form00_interior_facet_integral_otherwise(buffer_arg0_0, arg1_0_vec, arg2_0, arg3_0_vec, arg4_0, arg5_0_vec, arg6_0, arg7_0, arg8_0_vec, arg9_0 + (i * 2));
    MatSetValuesLocal(arg0_0_0, 16, arg0_0_map0_0 + i * 16,
                                             16, arg0_0_map1_0 + i * 16,
                                             (const PetscScalar *)buffer_arg0_0,
                                             ADD_VALUES);;
  }
}


As you can see, the undeclared variable is declared, just after first use.

@wence-
Copy link
Contributor Author

wence- commented May 11, 2016

On some machines, with the same test I get:

$ py.test test_steady_state_basin_mms.py::test_steady_state_basin_convergence[mimetic-Setup9] -x -v -s 
============================= test session starts ==============================
platform linux2 -- Python 2.7.9, pytest-2.9.1, py-1.4.31, pluggy-0.3.1 -- /data/lmitche1/fd-install-tests/firedrake/bin/python
cachedir: ../../.cache
benchmark: 3.0.0 (defaults: timer=time.time disable_gc=False min_rounds=5 min_time=5.00us max_time=1.00s calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /data/lmitche1/models/thetis, inifile: 
plugins: xdist-1.14, benchmark-3.0.0
--------------------------------------------------------------------------
Petsc Development GIT revision: v3.4.2-12173-g511e85b  GIT Date: 2016-04-07 00:39:56 -0500
       The PETSc Team
    [email protected]
 http://www.mcs.anl.gov/petsc/
See docs/changes/index.html for recent updates.
See docs/faq.html for problems.
See docs/manualpages/index.html for help. 
Libraries linked from /data/lmitche1/fd-install-tests/firedrake/lib/python2.7/site-packages/petsc/lib
--------------------------------------------------------------------------
collected 10 items 

test_steady_state_basin_mms.py::test_steady_state_basin_convergence[mimetic-Setup9] --- running <lambda> refinement 1
COFFEE finished in 0.00145006 seconds (flops: 0 -> 0)
compute_form_data finished in 0.00993705 seconds.
compile_integral finished in 0.0198941 seconds.
TSFC finished in 0.0298669 seconds.
COFFEE finished in 0.0231369 seconds (flops: 98 -> 98)
COFFEE finished in 0.002002 seconds (flops: 0 -> 0)
compute_form_data finished in 0.0135269 seconds.
compile_integral finished in 0.0398579 seconds.
TSFC finished in 0.053437 seconds.
COFFEE finished in 0.0141799 seconds (flops: 230 -> 188)
COFFEE finished in 0.00119805 seconds (flops: 0 -> 0)
COFFEE finished in 0.00316811 seconds (flops: 0 -> 0)
compute_form_data finished in 0.0117259 seconds.
compile_integral finished in 0.0185978 seconds.
TSFC finished in 0.0303719 seconds.
COFFEE finished in 0.00263381 seconds (flops: 27 -> 27)
compute_form_data finished in 0.0132201 seconds.
compile_integral finished in 0.014539 seconds.
TSFC finished in 0.027812 seconds.
COFFEE finished in 0.00217104 seconds (flops: 27 -> 27)
compute_form_data finished in 0.0104401 seconds.
compile_integral finished in 0.0141661 seconds.
TSFC finished in 0.0246542 seconds.
COFFEE finished in 0.00216007 seconds (flops: 27 -> 27)
compute_form_data finished in 0.0131311 seconds.
compile_integral finished in 0.0146799 seconds.
TSFC finished in 0.0278649 seconds.
COFFEE finished in 0.00219202 seconds (flops: 27 -> 27)
COFFEE finished in 0.00143695 seconds (flops: 0 -> 0)
compute_form_data finished in 0.00905895 seconds.
compile_integral finished in 0.25022 seconds.
TSFC finished in 0.259316 seconds.
COFFEE finished in 0.0227871 seconds (flops: 16914 -> 16914)
compute_form_data finished in 0.00957894 seconds.
compile_integral finished in 0.544253 seconds.
TSFC finished in 0.55388 seconds.
COFFEE finished in 0.0160379 seconds (flops: 4089 -> 3014)
COFFEE finished in 0.0015111 seconds (flops: 0 -> 0)
compute_form_data finished in 0.00926304 seconds.
compile_integral finished in 0.021394 seconds.
TSFC finished in 0.03069 seconds.
COFFEE finished in 0.0235901 seconds (flops: 317570 -> 95306)
COFFEE finished in 0.00106716 seconds (flops: 0 -> 0)
compute_form_data finished in 0.0165708 seconds.
compile_integral finished in 1.25396 seconds.
TSFC finished in 1.27059 seconds.
COFFEE finished in 0.0238671 seconds (flops: 29282 -> 11786)
COFFEE finished in 0.00100112 seconds (flops: 0 -> 0)
COFFEE finished in 0.00192595 seconds (flops: 0 -> 0)
compute_form_data finished in 0.0170221 seconds.
compile_integral finished in 0.0818632 seconds.
TSFC finished in 0.098928 seconds.
COFFEE finished in 0.041795 seconds (flops: 2521 -> 2521)
compute_form_data finished in 0.0142229 seconds.
compile_integral finished in 0.0933859 seconds.
TSFC finished in 0.107646 seconds.
COFFEE finished in 0.0364301 seconds (flops: 1748 -> 978)
FAILED

=================================== FAILURES ===================================
_____________ test_steady_state_basin_convergence[mimetic-Setup9] ______________

setup_function = <function <lambda> at 0x7f4345840230>

    def test_steady_state_basin_convergence(setup_function):
>       run_convergence(setup_function, [1, 2, 4, 6], 1, save_plot=False)

test_steady_state_basin_mms.py:626: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test_steady_state_basin_mms.py:553: in run_convergence
    l2_err.append(run(setup, r, order, do_export=do_export, **kwargs))
test_steady_state_basin_mms.py:459: in run
    source_uv.project(sdict['res_uv_expr'])
../../../../fd-install-tests/firedrake/local/lib/python2.7/site-packages/firedrake/function.py:276: in project
    return projection.project(b, self, *args, **kwargs)
../../../../fd-install-tests/firedrake/local/lib/python2.7/site-packages/firedrake/projection.py:101: in project
    form_compiler_parameters=form_compiler_parameters)
../../../../fd-install-tests/firedrake/local/lib/python2.7/site-packages/firedrake/solving.py:118: in solve
    _solve_varproblem(*args, **kwargs)
../../../../fd-install-tests/firedrake/local/lib/python2.7/site-packages/firedrake/solving.py:145: in _solve_varproblem
    solver.solve()
../../../../fd-install-tests/firedrake/local/lib/python2.7/site-packages/firedrake/variational_solver.py:187: in solve
    solving_utils.check_snes_convergence(self.snes)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

snes = <petsc4py.PETSc.SNES object at 0x7f434182c290>

    def check_snes_convergence(snes):
        r = snes.getConvergedReason()
        try:
            reason = SNESReasons[r]
            inner = False
        except KeyError:
            r = snes.getKSP().getConvergedReason()
            try:
                inner = True
                reason = KSPReasons[r]
            except KeyError:
                reason = 'unknown reason (petsc4py enum incomplete?)'
        if r < 0:
            if inner:
                msg = "Inner linear solve failed to converge after %d iterations with reason: %s" % \
                      (snes.getKSP().getIterationNumber(), reason)
            else:
                msg = reason
            raise RuntimeError("""Nonlinear solve failed to converge after %d nonlinear iterations.
    Reason:
>      %s""" % (snes.getIterationNumber(), msg))
E           RuntimeError: Nonlinear solve failed to converge after 0 nonlinear iterations.
E           Reason:
E              Inner linear solve failed to converge after 0 iterations with reason: DIVERGED_NANORINF

../../../../fd-install-tests/firedrake/local/lib/python2.7/site-packages/firedrake/solving_utils.py:62: RuntimeError

@miklos1
Copy link
Contributor

miklos1 commented May 11, 2016

Um, non-deterministic code generation? or why is the failure mode different on different machines?

@wence-
Copy link
Contributor Author

wence- commented May 11, 2016

Who knows.

@wence-
Copy link
Contributor Author

wence- commented May 11, 2016

Steps to reproduce:

firedrake-install
. firedrake/bin/activate
git clone [email protected]:thetisproject/thetis
pip install -e thetis
pip install scipy
pip install colorama
cd thetis/test/swe2d
firedrake-clean
py.test test_steady_state_basin_mms.py::test_steady_state_basin_convergence[mimetic-Setup9] -x -v -s

@wence-
Copy link
Contributor Author

wence- commented May 11, 2016

The diverged nan case is a problem in thetis.

@wence-
Copy link
Contributor Author

wence- commented May 11, 2016

See thetisproject/thetis#43 for that half.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants