1#ifndef VIENNASHE_SHE_HARMONICS_COUPLING_HPP 
    2#define VIENNASHE_SHE_HARMONICS_COUPLING_HPP 
   50            GammaIntegrand_x(
int n, 
int m, 
int n1, 
int m1) : Y_theta(n, m), Y_phi(n, m), Y_nm(n1, m1) {}
 
   58                return  (  Y_theta(theta, phi) * cos(theta) * cos(phi) * sin(theta)
 
   59                          - Y_phi(theta, phi) * sin(phi)
 
   77            GammaIntegrand_y(
int n, 
int m, 
int n1, 
int m1) : Y_theta(n, m), Y_phi(n, m), Y_nm(n1, m1) {}
 
   85                return  (  Y_theta(theta, phi) * cos(theta) * sin(phi) * sin(theta)
 
   86                          + Y_phi(theta, phi) * cos(phi)
 
  109                return ( Y_theta(theta, phi) * (-1.0) * sin(theta)
 
  111                      ) * Y_nm(theta, phi) * sin(theta);
 
  133            vIntegrand_x(
int n, 
int m, 
int n1, 
int m1) : Y_nm(n, m), Y_n1m1(n1, m1) {}
 
  139                return Y_nm(theta, phi) * sin(theta) * cos(phi)
 
  140                      * Y_n1m1(theta, phi) * sin(theta);
 
  156            vIntegrand_y(
int n, 
int m, 
int n1, 
int m1) : Y_nm(n, m), Y_n1m1(n1, m1) {}
 
  163                return Y_nm(theta, phi) * sin(theta) * sin(phi)
 
  164                      * Y_n1m1(theta, phi) * sin(theta);
 
  180            vIntegrand_z(
int n, 
int m, 
int n1, 
int m1) : Y_nm(n, m), Y_n1m1(n1, m1) {}
 
  189                return Y_nm(theta, phi) * cos(theta)
 
  190                      * Y_n1m1(theta, phi) * sin(theta);
 
  215    template <
typename IntegrationRule, 
typename MatrixType>
 
  217                                     MatrixType & b_x, MatrixType & b_y, MatrixType & b_z, 
int L_max)
 
  219      IntegrationRule integration_rule;
 
  221      for (
int l=0; l<=L_max; ++l)
 
  223        for (
int m=-l; m<=l; ++m)
 
  225          std::size_t rowindex = std::size_t(l*l + l + m);
 
  227          for (
int lprime=0; lprime<=L_max; ++lprime)
 
  229            if (abs(l - lprime) != 1)
 
  232            for (
int mprime=-lprime; mprime<=lprime; ++mprime)
 
  234                if ( std::abs(std::abs(m) - std::abs(mprime)) > 1 )
 
  255                std::size_t colindex = std::size_t(lprime * lprime + lprime + mprime);
 
  257                if ( fabs(result_a_x) > 1e-8)
 
  258                    a_x(rowindex, colindex) += result_a_x;
 
  259                if ( fabs(result_a_y) > 1e-8)
 
  260                    a_y(rowindex, colindex) += result_a_y;
 
  261                if ( fabs(result_a_z) > 1e-8)
 
  262                    a_z(rowindex, colindex) += result_a_z;
 
  264                if ( fabs(result_b_x) > 1e-8)
 
  265                    b_x(rowindex, colindex) += result_b_x;
 
  266                if ( fabs(result_b_y) > 1e-8)
 
  267                    b_y(rowindex, colindex) += result_b_y;
 
  268                if ( fabs(result_b_z) > 1e-8)
 
  269                    b_z(rowindex, colindex) += result_b_z;
 
  281    template <
typename MatrixType>
 
  283                                  MatrixType & b_x, MatrixType & b_y, MatrixType & b_z)
 
  286      a_x(0, 3) = -0.577350274322;
 
  287      a_x(3, 0) = -0.577350274322;
 
  290      a_y(0, 1) = 0.577350274322;
 
  291      a_y(1, 0) = 0.577350274322;
 
  294      a_z(0, 2) = 0.577350274182;
 
  295      a_z(2, 0) = 0.577350274182;
 
  297      b_x(3, 0) = -1.1547005485;
 
  300      b_y(1, 0) = 1.1547005485;
 
  303      b_z(2, 0) = 1.15470054864;
 
  308    template <
typename MatrixType>
 
  310                                  MatrixType & b_x, MatrixType & b_y, MatrixType & b_z)
 
  313      a_x(0, 3) = -0.577350274322;
 
  314      a_x(1, 4) = -0.447213599471;
 
  315      a_x(2, 7) = -0.447213599475;
 
  316      a_x(3, 0) = -0.577350274322; a_x(3, 6) = 0.258198892042; a_x(3, 8) = -0.447213599475;
 
  317      a_x(4, 1) = -0.447213599471; a_x(4, 9) = -0.462910054061; a_x(4, 11) = 0.119522862001;
 
  318      a_x(5, 10) = -0.377964476363;
 
  319      a_x(6, 3) = 0.258198892042; a_x(6, 13) = -0.414039339204;
 
  320      a_x(7, 2) = -0.447213599475; a_x(7, 12) = 0.292770024449; a_x(7, 14) = -0.377964476363;
 
  321      a_x(8, 3) = -0.447213599475; a_x(8, 13) = 0.119522861999; a_x(8, 15) = -0.462910053927;
 
  322      a_x(9, 4) = -0.462910054061;
 
  323      a_x(10, 5) = -0.377964476363;
 
  324      a_x(11, 4) = 0.119522862001;
 
  325      a_x(12, 7) = 0.292770024449;
 
  326      a_x(13, 6) = -0.414039339204; a_x(13, 8) = 0.119522861999;
 
  327      a_x(14, 7) = -0.377964476363;
 
  328      a_x(15, 8) = -0.462910053927;
 
  331      a_y(0, 1) = 0.577350274322;
 
  332      a_y(1, 0) = 0.577350274322; a_y(1, 6) = -0.258198892042; a_y(1, 8) = -0.447213599475;
 
  333      a_y(2, 5) = 0.447213599475;
 
  334      a_y(3, 4) = 0.447213599471;
 
  335      a_y(4, 3) = 0.447213599471; a_y(4, 13) = -0.119522862001; a_y(4, 15) = -0.462910053934;
 
  336      a_y(5, 2) = 0.447213599475; a_y(5, 12) = -0.292770024449; a_y(5, 14) = -0.377964476363;
 
  337      a_y(6, 1) = -0.258198892042; a_y(6, 11) = 0.414039339204;
 
  338      a_y(7, 10) = 0.377964476363;
 
  339      a_y(8, 1) = -0.447213599475; a_y(8, 9) = 0.462910053954; a_y(8, 11) = 0.119522861999;
 
  340      a_y(9, 8) = 0.462910053954;
 
  341      a_y(10, 7) = 0.377964476363;
 
  342      a_y(11, 6) = 0.414039339204; a_y(11, 8) = 0.119522861999;
 
  343      a_y(12, 5) = -0.292770024449;
 
  344      a_y(13, 4) = -0.119522862001;
 
  345      a_y(14, 5) = -0.377964476363;
 
  346      a_y(15, 4) = -0.462910053934;
 
  349      a_z(0, 2) = 0.577350274182;
 
  350      a_z(1, 5) = 0.447213599475;
 
  351      a_z(2, 0) = 0.577350274182; a_z(2, 6) = 0.516397783969;
 
  352      a_z(3, 7) = 0.447213599475;
 
  353      a_z(4, 10) = 0.377964476363;
 
  354      a_z(5, 1) = 0.447213599475; a_z(5, 11) = 0.478091447944;
 
  355      a_z(6, 2) = 0.516397783969; a_z(6, 12) = 0.507092557216;
 
  356      a_z(7, 3) = 0.447213599475; a_z(7, 13) = 0.478091447944;
 
  357      a_z(8, 14) = 0.377964476363;
 
  358      a_z(10, 4) = 0.377964476363;
 
  359      a_z(11, 5) = 0.478091447944;
 
  360      a_z(12, 6) = 0.507092557216;
 
  361      a_z(13, 7) = 0.478091447944;
 
  362      a_z(14, 8) = 0.377964476363;
 
  364      b_x(1, 4) = 0.447213599471;
 
  365      b_x(2, 7) = 0.447213599475;
 
  366      b_x(3, 0) = -1.1547005485; b_x(3, 6) = -0.258198891965; b_x(3, 8) = 0.447213599474;
 
  367      b_x(4, 1) = -1.34164079826; b_x(4, 9) = 0.925820107925; b_x(4, 11) = -0.239045723982;
 
  368      b_x(5, 10) = 0.755928952726;
 
  369      b_x(6, 3) = 0.774596676127; b_x(6, 13) = 0.828078678503;
 
  370      b_x(7, 2) = -1.34164079829; b_x(7, 12) = -0.585540048795; b_x(7, 14) = 0.75592895272;
 
  371      b_x(8, 3) = -1.3416407983; b_x(8, 13) = -0.239045723992; b_x(8, 15) = 0.925820108002;
 
  372      b_x(9, 4) = -1.85164021599;
 
  373      b_x(10, 5) = -1.51185790544;
 
  374      b_x(11, 4) = 0.478091447971;
 
  375      b_x(12, 7) = 1.17108009785;
 
  376      b_x(13, 6) = -1.65615735678; b_x(13, 8) = 0.47809144797;
 
  377      b_x(14, 7) = -1.51185790548;
 
  378      b_x(15, 8) = -1.85164021591;
 
  381      b_y(1, 0) = 1.1547005485; b_y(1, 6) = 0.258198891965; b_y(1, 8) = 0.447213599474;
 
  382      b_y(2, 5) = -0.447213599475;
 
  383      b_y(3, 4) = -0.447213599471;
 
  384      b_y(4, 3) = 1.34164079826; b_y(4, 13) = 0.239045723982; b_y(4, 15) = 0.925820107925;
 
  385      b_y(5, 2) = 1.34164079829; b_y(5, 12) = 0.585540048795; b_y(5, 14) = 0.75592895272;
 
  386      b_y(6, 1) = -0.774596676127; b_y(6, 11) = -0.828078678503;
 
  387      b_y(7, 10) = -0.755928952726;
 
  388      b_y(8, 1) = -1.3416407983; b_y(8, 9) = -0.925820108002; b_y(8, 11) = -0.239045723992;
 
  389      b_y(9, 8) = 1.85164021591;
 
  390      b_y(10, 7) = 1.51185790544;
 
  391      b_y(11, 6) = 1.65615735678; b_y(11, 8) = 0.47809144797;
 
  392      b_y(12, 5) = -1.17108009785;
 
  393      b_y(13, 4) = -0.478091447971;
 
  394      b_y(14, 5) = -1.51185790548;
 
  395      b_y(15, 4) = -1.85164021599;
 
  398      b_z(1, 5) = -0.447213599475;
 
  399      b_z(2, 0) = 1.15470054864; b_z(2, 6) = -0.516397784084;
 
  400      b_z(3, 7) = -0.447213599475;
 
  401      b_z(4, 10) = -0.755928952726;
 
  402      b_z(5, 1) = 1.34164079843; b_z(5, 11) = -0.956182895941;
 
  403      b_z(6, 2) = 1.54919335225; b_z(6, 12) = -1.01418511456;
 
  404      b_z(7, 3) = 1.34164079843; b_z(7, 13) = -0.956182895941;
 
  405      b_z(8, 14) = -0.755928952727;
 
  406      b_z(10, 4) = 1.51185790549;
 
  407      b_z(11, 5) = 1.91236579194;
 
  408      b_z(12, 6) = 2.02837022898;
 
  409      b_z(13, 7) = 1.91236579194;
 
  410      b_z(14, 8) = 1.51185790549;
 
  416    template <
typename MatrixType>
 
  418                                  MatrixType & b_x, MatrixType & b_y, MatrixType & b_z)
 
  421      a_x(0, 3) = -0.577350274322;
 
  422      a_x(1, 4) = -0.447213599471;
 
  423      a_x(2, 7) = -0.447213599475;
 
  424      a_x(3, 0) = -0.577350274322; a_x(3, 6) = 0.258198892042; a_x(3, 8) = -0.447213599475;
 
  425      a_x(4, 1) = -0.447213599471; a_x(4, 9) = -0.462910054061; a_x(4, 11) = 0.119522862001;
 
  426      a_x(5, 10) = -0.377964476363;
 
  427      a_x(6, 3) = 0.258198892042; a_x(6, 13) = -0.414039339204;
 
  428      a_x(7, 2) = -0.447213599475; a_x(7, 12) = 0.292770024449; a_x(7, 14) = -0.377964476363;
 
  429      a_x(8, 3) = -0.447213599475; a_x(8, 13) = 0.119522861999; a_x(8, 15) = -0.462910053927;
 
  430      a_x(9, 4) = -0.462910054061; a_x(9, 16) = -0.471404524879; a_x(9, 18) = 0.0890870813757;
 
  431      a_x(10, 5) = -0.377964476363; a_x(10, 17) = -0.408248294088; a_x(10, 19) = 0.154303351337;
 
  432      a_x(11, 4) = 0.119522862001; a_x(11, 18) = -0.345032782728;
 
  433      a_x(12, 7) = 0.292770024449; a_x(12, 21) = -0.398409539974;
 
  434      a_x(13, 6) = -0.414039339204; a_x(13, 8) = 0.119522861999; a_x(13, 20) = 0.308606702662; a_x(13, 22) = -0.345032782729;
 
  435      a_x(14, 7) = -0.377964476363; a_x(14, 21) = 0.154303351336; a_x(14, 23) = -0.408248293989;
 
  436      a_x(15, 8) = -0.462910053927; a_x(15, 22) = 0.0890870814449; a_x(15, 24) = -0.471404525067;
 
  437      a_x(16, 9) = -0.471404524879; a_x(16, 25) = -0.476731298519; a_x(16, 27) = 0.0710669062326;
 
  438      a_x(17, 10) = -0.408248294088; a_x(17, 26) = -0.426401436379; a_x(17, 28) = 0.123091492033;
 
  439      a_x(18, 9) = 0.0890870813757; a_x(18, 11) = -0.345032782728; a_x(18, 27) = -0.37605071993; a_x(18, 29) = 0.174077657506;
 
  440      a_x(19, 10) = 0.154303351337; a_x(19, 28) = -0.325669476519;
 
  441      a_x(20, 13) = 0.308606702662; a_x(20, 31) = -0.389249475524;
 
  442      a_x(21, 12) = -0.398409539974; a_x(21, 14) = 0.154303351336; a_x(21, 30) = 0.31782086589; a_x(21, 32) = -0.32566947652;
 
  443      a_x(22, 13) = -0.345032782729; a_x(22, 15) = 0.0890870814449; a_x(22, 31) = 0.174077657503; a_x(22, 33) = -0.376050719813;
 
  444      a_x(23, 14) = -0.408248293989; a_x(23, 32) = 0.123091492076; a_x(23, 34) = -0.426401436565;
 
  445      a_x(24, 15) = -0.471404525067; a_x(24, 33) = 0.0710669060098; a_x(24, 35) = -0.476731298983;
 
  446      a_x(25, 16) = -0.476731298519;
 
  447      a_x(26, 17) = -0.426401436379;
 
  448      a_x(27, 16) = 0.0710669062326; a_x(27, 18) = -0.37605071993;
 
  449      a_x(28, 17) = 0.123091492033; a_x(28, 19) = -0.325669476519;
 
  450      a_x(29, 18) = 0.174077657506;
 
  451      a_x(30, 21) = 0.31782086589;
 
  452      a_x(31, 20) = -0.389249475524; a_x(31, 22) = 0.174077657503;
 
  453      a_x(32, 21) = -0.32566947652; a_x(32, 23) = 0.123091492076;
 
  454      a_x(33, 22) = -0.376050719813; a_x(33, 24) = 0.0710669060098;
 
  455      a_x(34, 23) = -0.426401436565;
 
  456      a_x(35, 24) = -0.476731298983;
 
  459      a_y(0, 1) = 0.577350274322;
 
  460      a_y(1, 0) = 0.577350274322; a_y(1, 6) = -0.258198892042; a_y(1, 8) = -0.447213599475;
 
  461      a_y(2, 5) = 0.447213599475;
 
  462      a_y(3, 4) = 0.447213599471;
 
  463      a_y(4, 3) = 0.447213599471; a_y(4, 13) = -0.119522862001; a_y(4, 15) = -0.462910053934;
 
  464      a_y(5, 2) = 0.447213599475; a_y(5, 12) = -0.292770024449; a_y(5, 14) = -0.377964476363;
 
  465      a_y(6, 1) = -0.258198892042; a_y(6, 11) = 0.414039339204;
 
  466      a_y(7, 10) = 0.377964476363;
 
  467      a_y(8, 1) = -0.447213599475; a_y(8, 9) = 0.462910053954; a_y(8, 11) = 0.119522861999;
 
  468      a_y(9, 8) = 0.462910053954; a_y(9, 22) = -0.089087081414; a_y(9, 24) = -0.471404525172;
 
  469      a_y(10, 7) = 0.377964476363; a_y(10, 21) = -0.154303351337; a_y(10, 23) = -0.408248293952;
 
  470      a_y(11, 6) = 0.414039339204; a_y(11, 8) = 0.119522861999; a_y(11, 20) = -0.308606702662; a_y(11, 22) = -0.345032782729;
 
  471      a_y(12, 5) = -0.292770024449; a_y(12, 19) = 0.398409539974;
 
  472      a_y(13, 4) = -0.119522862001; a_y(13, 18) = 0.345032782728;
 
  473      a_y(14, 5) = -0.377964476363; a_y(14, 17) = 0.408248294037; a_y(14, 19) = 0.154303351336;
 
  474      a_y(15, 4) = -0.462910053934; a_y(15, 16) = 0.471404524774; a_y(15, 18) = 0.0890870815161;
 
  475      a_y(16, 15) = 0.471404524774; a_y(16, 33) = -0.0710669065819; a_y(16, 35) = -0.476731298194;
 
  476      a_y(17, 14) = 0.408248294037; a_y(17, 32) = -0.123091492036; a_y(17, 34) = -0.426401436641;
 
  477      a_y(18, 13) = 0.345032782728; a_y(18, 15) = 0.0890870815161; a_y(18, 31) = -0.174077657506; a_y(18, 33) = -0.376050719829;
 
  478      a_y(19, 12) = 0.398409539974; a_y(19, 14) = 0.154303351336; a_y(19, 30) = -0.31782086589; a_y(19, 32) = -0.32566947652;
 
  479      a_y(20, 11) = -0.308606702662; a_y(20, 29) = 0.389249475524;
 
  480      a_y(21, 10) = -0.154303351337; a_y(21, 28) = 0.325669476519;
 
  481      a_y(22, 9) = -0.089087081414; a_y(22, 11) = -0.345032782729; a_y(22, 27) = 0.376050719866; a_y(22, 29) = 0.174077657503;
 
  482      a_y(23, 10) = -0.408248293952; a_y(23, 26) = 0.426401436051; a_y(23, 28) = 0.123091492144;
 
  483      a_y(24, 9) = -0.471404525172; a_y(24, 25) = 0.47673129898; a_y(24, 27) = 0.0710669059217;
 
  484      a_y(25, 24) = 0.47673129898;
 
  485      a_y(26, 23) = 0.426401436051;
 
  486      a_y(27, 22) = 0.376050719866; a_y(27, 24) = 0.0710669059217;
 
  487      a_y(28, 21) = 0.325669476519; a_y(28, 23) = 0.123091492144;
 
  488      a_y(29, 20) = 0.389249475524; a_y(29, 22) = 0.174077657503;
 
  489      a_y(30, 19) = -0.31782086589;
 
  490      a_y(31, 18) = -0.174077657506;
 
  491      a_y(32, 17) = -0.123091492036; a_y(32, 19) = -0.32566947652;
 
  492      a_y(33, 16) = -0.0710669065819; a_y(33, 18) = -0.376050719829;
 
  493      a_y(34, 17) = -0.426401436641;
 
  494      a_y(35, 16) = -0.476731298194;
 
  497      a_z(0, 2) = 0.577350274182;
 
  498      a_z(1, 5) = 0.447213599475;
 
  499      a_z(2, 0) = 0.577350274182; a_z(2, 6) = 0.516397783969;
 
  500      a_z(3, 7) = 0.447213599475;
 
  501      a_z(4, 10) = 0.377964476363;
 
  502      a_z(5, 1) = 0.447213599475; a_z(5, 11) = 0.478091447944;
 
  503      a_z(6, 2) = 0.516397783969; a_z(6, 12) = 0.507092557216;
 
  504      a_z(7, 3) = 0.447213599475; a_z(7, 13) = 0.478091447944;
 
  505      a_z(8, 14) = 0.377964476363;
 
  506      a_z(9, 17) = 0.333333336293;
 
  507      a_z(10, 4) = 0.377964476363; a_z(10, 18) = 0.436435784349;
 
  508      a_z(11, 5) = 0.478091447944; a_z(11, 19) = 0.487950040795;
 
  509      a_z(12, 6) = 0.507092557216; a_z(12, 20) = 0.503952635119;
 
  510      a_z(13, 7) = 0.478091447944; a_z(13, 21) = 0.487950040795;
 
  511      a_z(14, 8) = 0.377964476363; a_z(14, 22) = 0.436435784351;
 
  512      a_z(15, 23) = 0.333333336187;
 
  513      a_z(16, 26) = 0.301511346872;
 
  514      a_z(17, 9) = 0.333333336293; a_z(17, 27) = 0.40201512971;
 
  515      a_z(18, 10) = 0.436435784349; a_z(18, 28) = 0.460566190563;
 
  516      a_z(19, 11) = 0.487950040795; a_z(19, 29) = 0.492365968294;
 
  517      a_z(20, 12) = 0.503952635119; a_z(20, 30) = 0.502518912007;
 
  518      a_z(21, 13) = 0.487950040795; a_z(21, 31) = 0.492365968294;
 
  519      a_z(22, 14) = 0.436435784351; a_z(22, 32) = 0.460566190564;
 
  520      a_z(23, 15) = 0.333333336187; a_z(23, 33) = 0.402015129644;
 
  521      a_z(24, 34) = 0.301511347383;
 
  522      a_z(26, 16) = 0.301511346872;
 
  523      a_z(27, 17) = 0.40201512971;
 
  524      a_z(28, 18) = 0.460566190563;
 
  525      a_z(29, 19) = 0.492365968294;
 
  526      a_z(30, 20) = 0.502518912007;
 
  527      a_z(31, 21) = 0.492365968294;
 
  528      a_z(32, 22) = 0.460566190564;
 
  529      a_z(33, 23) = 0.402015129644;
 
  530      a_z(34, 24) = 0.301511347383;
 
  532      b_x(1, 4) = 0.447213599471;
 
  533      b_x(2, 7) = 0.447213599475;
 
  534      b_x(3, 0) = -1.1547005485; b_x(3, 6) = -0.258198891965; b_x(3, 8) = 0.447213599474;
 
  535      b_x(4, 1) = -1.34164079826; b_x(4, 9) = 0.925820107925; b_x(4, 11) = -0.239045723982;
 
  536      b_x(5, 10) = 0.755928952726;
 
  537      b_x(6, 3) = 0.774596676127; b_x(6, 13) = 0.828078678503;
 
  538      b_x(7, 2) = -1.34164079829; b_x(7, 12) = -0.585540048795; b_x(7, 14) = 0.75592895272;
 
  539      b_x(8, 3) = -1.3416407983; b_x(8, 13) = -0.239045723992; b_x(8, 15) = 0.925820108002;
 
  540      b_x(9, 4) = -1.85164021599; b_x(9, 16) = 1.41421357451; b_x(9, 18) = -0.267261244248;
 
  541      b_x(10, 5) = -1.51185790544; b_x(10, 17) = 1.22474488217; b_x(10, 19) = -0.462910053985;
 
  542      b_x(11, 4) = 0.478091447971; b_x(11, 18) = 1.03509834819;
 
  543      b_x(12, 7) = 1.17108009785; b_x(12, 21) = 1.19522861992;
 
  544      b_x(13, 6) = -1.65615735678; b_x(13, 8) = 0.47809144797; b_x(13, 20) = -0.925820107905; b_x(13, 22) = 1.03509834818;
 
  545      b_x(14, 7) = -1.51185790548; b_x(14, 21) = -0.462910054004; b_x(14, 23) = 1.2247448822;
 
  546      b_x(15, 8) = -1.85164021591; b_x(15, 22) = -0.267261244321; b_x(15, 24) = 1.41421357538;
 
  547      b_x(16, 9) = -2.35702262488; b_x(16, 25) = 1.90692519561; b_x(16, 27) = -0.284267624595;
 
  548      b_x(17, 10) = -2.04124147039; b_x(17, 26) = 1.70560574581; b_x(17, 28) = -0.49236596804;
 
  549      b_x(18, 9) = 0.445435407104; b_x(18, 11) = -1.72516391355; b_x(18, 27) = 1.50420287947; b_x(18, 29) = -0.696310629884;
 
  550      b_x(19, 10) = 0.771516756666; b_x(19, 28) = 1.3026779061;
 
  551      b_x(20, 13) = 1.54303351328; b_x(20, 31) = 1.55699790216;
 
  552      b_x(21, 12) = -1.99204769981; b_x(21, 14) = 0.771516756655; b_x(21, 30) = -1.27128346374; b_x(21, 32) = 1.30267790608;
 
  553      b_x(22, 13) = -1.7251639136; b_x(22, 15) = 0.445435407077; b_x(22, 31) = -0.696310629893; b_x(22, 33) = 1.5042028795;
 
  554      b_x(23, 14) = -2.04124147037; b_x(23, 32) = -0.492365968057; b_x(23, 34) = 1.7056057462;
 
  555      b_x(24, 15) = -2.35702262481; b_x(24, 33) = -0.2842676245; b_x(24, 35) = 1.90692519522;
 
  556      b_x(25, 16) = -2.86038779259;
 
  557      b_x(26, 17) = -2.55840861903;
 
  558      b_x(27, 16) = 0.426401436365; b_x(27, 18) = -2.25630431903;
 
  559      b_x(28, 17) = 0.73854895244; b_x(28, 19) = -1.95401685904;
 
  560      b_x(29, 18) = 1.04446594501;
 
  561      b_x(30, 21) = 1.90692519544;
 
  562      b_x(31, 20) = -2.33549685284; b_x(31, 22) = 1.04446594499;
 
  563      b_x(32, 21) = -1.95401685906; b_x(32, 23) = 0.738548952431;
 
  564      b_x(33, 22) = -2.256304319; b_x(33, 24) = 0.426401436636;
 
  565      b_x(34, 23) = -2.55840861898;
 
  566      b_x(35, 24) = -2.86038779322;
 
  569      b_y(1, 0) = 1.1547005485; b_y(1, 6) = 0.258198891965; b_y(1, 8) = 0.447213599474;
 
  570      b_y(2, 5) = -0.447213599475;
 
  571      b_y(3, 4) = -0.447213599471;
 
  572      b_y(4, 3) = 1.34164079826; b_y(4, 13) = 0.239045723982; b_y(4, 15) = 0.925820107925;
 
  573      b_y(5, 2) = 1.34164079829; b_y(5, 12) = 0.585540048795; b_y(5, 14) = 0.75592895272;
 
  574      b_y(6, 1) = -0.774596676127; b_y(6, 11) = -0.828078678503;
 
  575      b_y(7, 10) = -0.755928952726;
 
  576      b_y(8, 1) = -1.3416407983; b_y(8, 9) = -0.925820108002; b_y(8, 11) = -0.239045723992;
 
  577      b_y(9, 8) = 1.85164021591; b_y(9, 22) = 0.267261244321; b_y(9, 24) = 1.41421357451;
 
  578      b_y(10, 7) = 1.51185790544; b_y(10, 21) = 0.462910053985; b_y(10, 23) = 1.22474488217;
 
  579      b_y(11, 6) = 1.65615735678; b_y(11, 8) = 0.47809144797; b_y(11, 20) = 0.925820107905; b_y(11, 22) = 1.03509834818;
 
  580      b_y(12, 5) = -1.17108009785; b_y(12, 19) = -1.19522861992;
 
  581      b_y(13, 4) = -0.478091447971; b_y(13, 18) = -1.03509834819;
 
  582      b_y(14, 5) = -1.51185790548; b_y(14, 17) = -1.2247448822; b_y(14, 19) = -0.462910054004;
 
  583      b_y(15, 4) = -1.85164021599; b_y(15, 16) = -1.41421357538; b_y(15, 18) = -0.267261244248;
 
  584      b_y(16, 15) = 2.35702262482; b_y(16, 33) = 0.284267624501; b_y(16, 35) = 1.90692519561;
 
  585      b_y(17, 14) = 2.04124147037; b_y(17, 32) = 0.492365968057; b_y(17, 34) = 1.70560574579;
 
  586      b_y(18, 13) = 1.72516391355; b_y(18, 15) = 0.445435407104; b_y(18, 31) = 0.696310629884; b_y(18, 33) = 1.50420287947;
 
  587      b_y(19, 12) = 1.99204769981; b_y(19, 14) = 0.771516756655; b_y(19, 30) = 1.27128346374; b_y(19, 32) = 1.30267790608;
 
  588      b_y(20, 11) = -1.54303351328; b_y(20, 29) = -1.55699790216;
 
  589      b_y(21, 10) = -0.771516756666; b_y(21, 28) = -1.3026779061;
 
  590      b_y(22, 9) = -0.445435407077; b_y(22, 11) = -1.7251639136; b_y(22, 27) = -1.5042028795; b_y(22, 29) = -0.696310629893;
 
  591      b_y(23, 10) = -2.04124147039; b_y(23, 26) = -1.70560574621; b_y(23, 28) = -0.49236596804;
 
  592      b_y(24, 9) = -2.35702262487; b_y(24, 25) = -1.90692519522; b_y(24, 27) = -0.284267624594;
 
  593      b_y(25, 24) = 2.86038779322;
 
  594      b_y(26, 23) = 2.55840861898;
 
  595      b_y(27, 22) = 2.256304319; b_y(27, 24) = 0.426401436365;
 
  596      b_y(28, 21) = 1.95401685904; b_y(28, 23) = 0.73854895244;
 
  597      b_y(29, 20) = 2.33549685284; b_y(29, 22) = 1.04446594499;
 
  598      b_y(30, 19) = -1.90692519544;
 
  599      b_y(31, 18) = -1.04446594501;
 
  600      b_y(32, 17) = -0.738548952431; b_y(32, 19) = -1.95401685906;
 
  601      b_y(33, 16) = -0.426401436636; b_y(33, 18) = -2.25630431903;
 
  602      b_y(34, 17) = -2.55840861903;
 
  603      b_y(35, 16) = -2.86038779259;
 
  606      b_z(1, 5) = -0.447213599475;
 
  607      b_z(2, 0) = 1.15470054864; b_z(2, 6) = -0.516397784084;
 
  608      b_z(3, 7) = -0.447213599475;
 
  609      b_z(4, 10) = -0.755928952726;
 
  610      b_z(5, 1) = 1.34164079843; b_z(5, 11) = -0.956182895941;
 
  611      b_z(6, 2) = 1.54919335225; b_z(6, 12) = -1.01418511456;
 
  612      b_z(7, 3) = 1.34164079843; b_z(7, 13) = -0.956182895941;
 
  613      b_z(8, 14) = -0.755928952727;
 
  614      b_z(9, 17) = -1.00000000885;
 
  615      b_z(10, 4) = 1.51185790549; b_z(10, 18) = -1.30930735293;
 
  616      b_z(11, 5) = 1.91236579194; b_z(11, 19) = -1.46385012243;
 
  617      b_z(12, 6) = 2.02837022898; b_z(12, 20) = -1.51185790545;
 
  618      b_z(13, 7) = 1.91236579194; b_z(13, 21) = -1.46385012243;
 
  619      b_z(14, 8) = 1.51185790549; b_z(14, 22) = -1.30930735293;
 
  620      b_z(15, 23) = -1.00000000877;
 
  621      b_z(16, 26) = -1.20604538874;
 
  622      b_z(17, 9) = 1.66666668122; b_z(17, 27) = -1.60806051874;
 
  623      b_z(18, 10) = 2.18217892152; b_z(18, 28) = -1.84226476226;
 
  624      b_z(19, 11) = 2.439750204; b_z(19, 29) = -1.96946387309;
 
  625      b_z(20, 12) = 2.51976317572; b_z(20, 30) = -2.01007564828;
 
  626      b_z(21, 13) = 2.439750204; b_z(21, 31) = -1.96946387309;
 
  627      b_z(22, 14) = 2.18217892151; b_z(22, 32) = -1.84226476226;
 
  628      b_z(23, 15) = 1.6666666813; b_z(23, 33) = -1.60806051868;
 
  629      b_z(24, 34) = -1.20604538914;
 
  630      b_z(26, 16) = 1.80906808355;
 
  631      b_z(27, 17) = 2.41209077803;
 
  632      b_z(28, 18) = 2.7633971434;
 
  633      b_z(29, 19) = 2.95419580962;
 
  634      b_z(30, 20) = 3.01511347245;
 
  635      b_z(31, 21) = 2.95419580962;
 
  636      b_z(32, 22) = 2.7633971434;
 
  637      b_z(33, 23) = 2.4120907781;
 
  638      b_z(34, 24) = 1.80906808316;
 
  643    template <
typename MatrixType>
 
  645                                  MatrixType & b_x, MatrixType & b_y, MatrixType & b_z)
 
  648      a_x(0, 3) = -0.577350274322;
 
  649      a_x(1, 4) = -0.447213599471;
 
  650      a_x(2, 7) = -0.447213599475;
 
  651      a_x(3, 0) = -0.577350274322; a_x(3, 6) = 0.258198892042; a_x(3, 8) = -0.447213599475;
 
  652      a_x(4, 1) = -0.447213599471; a_x(4, 9) = -0.462910054061; a_x(4, 11) = 0.119522862001;
 
  653      a_x(5, 10) = -0.377964476363;
 
  654      a_x(6, 3) = 0.258198892042; a_x(6, 13) = -0.414039339204;
 
  655      a_x(7, 2) = -0.447213599475; a_x(7, 12) = 0.292770024449; a_x(7, 14) = -0.377964476363;
 
  656      a_x(8, 3) = -0.447213599475; a_x(8, 13) = 0.119522861999; a_x(8, 15) = -0.462910053927;
 
  657      a_x(9, 4) = -0.462910054061; a_x(9, 16) = -0.471404524879; a_x(9, 18) = 0.0890870813757;
 
  658      a_x(10, 5) = -0.377964476363; a_x(10, 17) = -0.408248294088; a_x(10, 19) = 0.154303351337;
 
  659      a_x(11, 4) = 0.119522862001; a_x(11, 18) = -0.345032782728;
 
  660      a_x(12, 7) = 0.292770024449; a_x(12, 21) = -0.398409539974;
 
  661      a_x(13, 6) = -0.414039339204; a_x(13, 8) = 0.119522861999; a_x(13, 20) = 0.308606702662; a_x(13, 22) = -0.345032782729;
 
  662      a_x(14, 7) = -0.377964476363; a_x(14, 21) = 0.154303351336; a_x(14, 23) = -0.408248293989;
 
  663      a_x(15, 8) = -0.462910053927; a_x(15, 22) = 0.0890870814449; a_x(15, 24) = -0.471404525067;
 
  664      a_x(16, 9) = -0.471404524879; a_x(16, 25) = -0.476731298519; a_x(16, 27) = 0.0710669062326;
 
  665      a_x(17, 10) = -0.408248294088; a_x(17, 26) = -0.426401436379; a_x(17, 28) = 0.123091492033;
 
  666      a_x(18, 9) = 0.0890870813757; a_x(18, 11) = -0.345032782728; a_x(18, 27) = -0.37605071993; a_x(18, 29) = 0.174077657506;
 
  667      a_x(19, 10) = 0.154303351337; a_x(19, 28) = -0.325669476519;
 
  668      a_x(20, 13) = 0.308606702662; a_x(20, 31) = -0.389249475524;
 
  669      a_x(21, 12) = -0.398409539974; a_x(21, 14) = 0.154303351336; a_x(21, 30) = 0.31782086589; a_x(21, 32) = -0.32566947652;
 
  670      a_x(22, 13) = -0.345032782729; a_x(22, 15) = 0.0890870814449; a_x(22, 31) = 0.174077657503; a_x(22, 33) = -0.376050719813;
 
  671      a_x(23, 14) = -0.408248293989; a_x(23, 32) = 0.123091492076; a_x(23, 34) = -0.426401436565;
 
  672      a_x(24, 15) = -0.471404525067; a_x(24, 33) = 0.0710669060098; a_x(24, 35) = -0.476731298983;
 
  673      a_x(25, 16) = -0.476731298519; a_x(25, 36) = -0.480384465779; a_x(25, 38) = 0.0591312403123;
 
  674      a_x(26, 17) = -0.426401436379; a_x(26, 37) = -0.438529013309; a_x(26, 39) = 0.102418312321;
 
  675      a_x(27, 16) = 0.0710669062326; a_x(27, 18) = -0.37605071993; a_x(27, 38) = -0.396664417398; a_x(27, 40) = 0.144841366145;
 
  676      a_x(28, 17) = 0.123091492033; a_x(28, 19) = -0.325669476519; a_x(28, 39) = -0.354787440773; a_x(28, 41) = 0.186989399666;
 
  677      a_x(29, 18) = 0.174077657506; a_x(29, 40) = -0.312893112166;
 
  678      a_x(30, 21) = 0.31782086589; a_x(30, 43) = -0.383214234418;
 
  679      a_x(31, 20) = -0.389249475524; a_x(31, 22) = 0.174077657503; a_x(31, 42) = 0.323875140698; a_x(31, 44) = -0.312893112167;
 
  680      a_x(32, 21) = -0.32566947652; a_x(32, 23) = 0.123091492076; a_x(32, 43) = 0.186989399665; a_x(32, 45) = -0.354787440674;
 
  681      a_x(33, 22) = -0.376050719813; a_x(33, 24) = 0.0710669060098; a_x(33, 44) = 0.144841366168; a_x(33, 46) = -0.396664417571;
 
  682      a_x(34, 23) = -0.426401436565; a_x(34, 45) = 0.10241831211; a_x(34, 47) = -0.438529013833;
 
  683      a_x(35, 24) = -0.476731298983; a_x(35, 46) = 0.0591312399518; a_x(35, 48) = -0.480384465513;
 
  684      a_x(36, 25) = -0.480384465779; a_x(36, 49) = -0.48304589605; a_x(36, 51) = 0.0506369686989;
 
  685      a_x(37, 26) = -0.438529013309; a_x(37, 50) = -0.447213599562; a_x(37, 52) = 0.0877058028558;
 
  686      a_x(38, 25) = 0.0591312403123; a_x(38, 27) = -0.396664417398; a_x(38, 51) = -0.411376678942; a_x(38, 53) = 0.124034735798;
 
  687      a_x(39, 26) = 0.102418312321; a_x(39, 28) = -0.354787440773; a_x(39, 52) = -0.375533811303; a_x(39, 54) = 0.16012815518;
 
  688      a_x(40, 27) = 0.144841366145; a_x(40, 29) = -0.312893112166; a_x(40, 53) = -0.339683113246; a_x(40, 55) = 0.196116136845;
 
  689      a_x(41, 28) = 0.186989399666; a_x(41, 54) = -0.303821812775;
 
  690      a_x(42, 31) = 0.323875140698; a_x(42, 57) = -0.378932376686;
 
  691      a_x(43, 30) = -0.383214234418; a_x(43, 32) = 0.186989399665; a_x(43, 56) = 0.328165064515; a_x(43, 58) = -0.303821812775;
 
  692      a_x(44, 31) = -0.312893112167; a_x(44, 33) = 0.144841366168; a_x(44, 57) = 0.196116136844; a_x(44, 59) = -0.339683113172;
 
  693      a_x(45, 32) = -0.354787440674; a_x(45, 34) = 0.10241831211; a_x(45, 58) = 0.160128155183; a_x(45, 60) = -0.375533811556;
 
  694      a_x(46, 33) = -0.396664417571; a_x(46, 35) = 0.0591312399518; a_x(46, 59) = 0.12403473559; a_x(46, 61) = -0.411376679426;
 
  695      a_x(47, 34) = -0.438529013833; a_x(47, 60) = 0.0877058025864; a_x(47, 62) = -0.447213599327;
 
  696      a_x(48, 35) = -0.480384465513; a_x(48, 61) = 0.0506369689423; a_x(48, 63) = -0.483045895216;
 
  697      a_x(49, 36) = -0.48304589605;
 
  698      a_x(50, 37) = -0.447213599562;
 
  699      a_x(51, 36) = 0.0506369686989; a_x(51, 38) = -0.411376678942;
 
  700      a_x(52, 37) = 0.0877058028558; a_x(52, 39) = -0.375533811303;
 
  701      a_x(53, 38) = 0.124034735798; a_x(53, 40) = -0.339683113246;
 
  702      a_x(54, 39) = 0.16012815518; a_x(54, 41) = -0.303821812775;
 
  703      a_x(55, 40) = 0.196116136845;
 
  704      a_x(56, 43) = 0.328165064515;
 
  705      a_x(57, 42) = -0.378932376686; a_x(57, 44) = 0.196116136844;
 
  706      a_x(58, 43) = -0.303821812775; a_x(58, 45) = 0.160128155183;
 
  707      a_x(59, 44) = -0.339683113172; a_x(59, 46) = 0.12403473559;
 
  708      a_x(60, 45) = -0.375533811556; a_x(60, 47) = 0.0877058025864;
 
  709      a_x(61, 46) = -0.411376679426; a_x(61, 48) = 0.0506369689423;
 
  710      a_x(62, 47) = -0.447213599327;
 
  711      a_x(63, 48) = -0.483045895216;
 
  714      a_y(0, 1) = 0.577350274322;
 
  715      a_y(1, 0) = 0.577350274322; a_y(1, 6) = -0.258198892042; a_y(1, 8) = -0.447213599475;
 
  716      a_y(2, 5) = 0.447213599475;
 
  717      a_y(3, 4) = 0.447213599471;
 
  718      a_y(4, 3) = 0.447213599471; a_y(4, 13) = -0.119522862001; a_y(4, 15) = -0.462910053934;
 
  719      a_y(5, 2) = 0.447213599475; a_y(5, 12) = -0.292770024449; a_y(5, 14) = -0.377964476363;
 
  720      a_y(6, 1) = -0.258198892042; a_y(6, 11) = 0.414039339204;
 
  721      a_y(7, 10) = 0.377964476363;
 
  722      a_y(8, 1) = -0.447213599475; a_y(8, 9) = 0.462910053954; a_y(8, 11) = 0.119522861999;
 
  723      a_y(9, 8) = 0.462910053954; a_y(9, 22) = -0.089087081414; a_y(9, 24) = -0.471404525172;
 
  724      a_y(10, 7) = 0.377964476363; a_y(10, 21) = -0.154303351337; a_y(10, 23) = -0.408248293952;
 
  725      a_y(11, 6) = 0.414039339204; a_y(11, 8) = 0.119522861999; a_y(11, 20) = -0.308606702662; a_y(11, 22) = -0.345032782729;
 
  726      a_y(12, 5) = -0.292770024449; a_y(12, 19) = 0.398409539974;
 
  727      a_y(13, 4) = -0.119522862001; a_y(13, 18) = 0.345032782728;
 
  728      a_y(14, 5) = -0.377964476363; a_y(14, 17) = 0.408248294037; a_y(14, 19) = 0.154303351336;
 
  729      a_y(15, 4) = -0.462910053934; a_y(15, 16) = 0.471404524774; a_y(15, 18) = 0.0890870815161;
 
  730      a_y(16, 15) = 0.471404524774; a_y(16, 33) = -0.0710669065819; a_y(16, 35) = -0.476731298194;
 
  731      a_y(17, 14) = 0.408248294037; a_y(17, 32) = -0.123091492036; a_y(17, 34) = -0.426401436641;
 
  732      a_y(18, 13) = 0.345032782728; a_y(18, 15) = 0.0890870815161; a_y(18, 31) = -0.174077657506; a_y(18, 33) = -0.376050719829;
 
  733      a_y(19, 12) = 0.398409539974; a_y(19, 14) = 0.154303351336; a_y(19, 30) = -0.31782086589; a_y(19, 32) = -0.32566947652;
 
  734      a_y(20, 11) = -0.308606702662; a_y(20, 29) = 0.389249475524;
 
  735      a_y(21, 10) = -0.154303351337; a_y(21, 28) = 0.325669476519;
 
  736      a_y(22, 9) = -0.089087081414; a_y(22, 11) = -0.345032782729; a_y(22, 27) = 0.376050719866; a_y(22, 29) = 0.174077657503;
 
  737      a_y(23, 10) = -0.408248293952; a_y(23, 26) = 0.426401436051; a_y(23, 28) = 0.123091492144;
 
  738      a_y(24, 9) = -0.471404525172; a_y(24, 25) = 0.47673129898; a_y(24, 27) = 0.0710669059217;
 
  739      a_y(25, 24) = 0.47673129898; a_y(25, 46) = -0.0591312399562; a_y(25, 48) = -0.480384465506;
 
  740      a_y(26, 23) = 0.426401436051; a_y(26, 45) = -0.102418312638; a_y(26, 47) = -0.438529013316;
 
  741      a_y(27, 22) = 0.376050719866; a_y(27, 24) = 0.0710669059217; a_y(27, 44) = -0.144841366123; a_y(27, 46) = -0.396664417609;
 
  742      a_y(28, 21) = 0.325669476519; a_y(28, 23) = 0.123091492144; a_y(28, 43) = -0.186989399666; a_y(28, 45) = -0.354787440658;
 
  743      a_y(29, 20) = 0.389249475524; a_y(29, 22) = 0.174077657503; a_y(29, 42) = -0.323875140698; a_y(29, 44) = -0.312893112167;
 
  744      a_y(30, 19) = -0.31782086589; a_y(30, 41) = 0.383214234418;
 
  745      a_y(31, 18) = -0.174077657506; a_y(31, 40) = 0.312893112166;
 
  746      a_y(32, 17) = -0.123091492036; a_y(32, 19) = -0.32566947652; a_y(32, 39) = 0.354787440729; a_y(32, 41) = 0.186989399665;
 
  747      a_y(33, 16) = -0.0710669065819; a_y(33, 18) = -0.376050719829; a_y(33, 38) = 0.396664417247; a_y(33, 40) = 0.144841366238;
 
  748      a_y(34, 17) = -0.426401436641; a_y(34, 37) = 0.438529013826; a_y(34, 39) = 0.102418311987;
 
  749      a_y(35, 16) = -0.476731298194; a_y(35, 36) = 0.480384465734; a_y(35, 38) = 0.0591312410571;
 
  750      a_y(36, 35) = 0.480384465734; a_y(36, 61) = -0.0506369687172; a_y(36, 63) = -0.483045895658;
 
  751      a_y(37, 34) = 0.438529013826; a_y(37, 60) = -0.0877058025896; a_y(37, 62) = -0.447213599321;
 
  752      a_y(38, 33) = 0.396664417247; a_y(38, 35) = 0.0591312410571; a_y(38, 59) = -0.124034735909; a_y(38, 61) = -0.41137667876;
 
  753      a_y(39, 32) = 0.354787440729; a_y(39, 34) = 0.102418311987; a_y(39, 58) = -0.160128155158; a_y(39, 60) = -0.375533811478;
 
  754      a_y(40, 31) = 0.312893112166; a_y(40, 33) = 0.144841366238; a_y(40, 57) = -0.196116136845; a_y(40, 59) = -0.339683113157;
 
  755      a_y(41, 30) = 0.383214234418; a_y(41, 32) = 0.186989399665; a_y(41, 56) = -0.328165064515; a_y(41, 58) = -0.303821812775;
 
  756      a_y(42, 29) = -0.323875140698; a_y(42, 55) = 0.378932376686;
 
  757      a_y(43, 28) = -0.186989399666; a_y(43, 54) = 0.303821812775;
 
  758      a_y(44, 27) = -0.144841366123; a_y(44, 29) = -0.312893112167; a_y(44, 53) = 0.339683113202; a_y(44, 55) = 0.196116136844;
 
  759      a_y(45, 26) = -0.102418312638; a_y(45, 28) = -0.354787440658; a_y(45, 52) = 0.375533811168; a_y(45, 54) = 0.160128155256;
 
  760      a_y(46, 25) = -0.0591312399562; a_y(46, 27) = -0.396664417609; a_y(46, 51) = 0.411376679356; a_y(46, 53) = 0.124034735468;
 
  761      a_y(47, 26) = -0.438529013316; a_y(47, 50) = 0.447213599539; a_y(47, 52) = 0.0877058028526;
 
  762      a_y(48, 25) = -0.480384465506; a_y(48, 49) = 0.483045895984; a_y(48, 51) = 0.0506369689687;
 
  763      a_y(49, 48) = 0.483045895984;
 
  764      a_y(50, 47) = 0.447213599539;
 
  765      a_y(51, 46) = 0.411376679356; a_y(51, 48) = 0.0506369689687;
 
  766      a_y(52, 45) = 0.375533811168; a_y(52, 47) = 0.0877058028526;
 
  767      a_y(53, 44) = 0.339683113202; a_y(53, 46) = 0.124034735468;
 
  768      a_y(54, 43) = 0.303821812775; a_y(54, 45) = 0.160128155256;
 
  769      a_y(55, 42) = 0.378932376686; a_y(55, 44) = 0.196116136844;
 
  770      a_y(56, 41) = -0.328165064515;
 
  771      a_y(57, 40) = -0.196116136845;
 
  772      a_y(58, 39) = -0.160128155158; a_y(58, 41) = -0.303821812775;
 
  773      a_y(59, 38) = -0.124034735909; a_y(59, 40) = -0.339683113157;
 
  774      a_y(60, 37) = -0.0877058025896; a_y(60, 39) = -0.375533811478;
 
  775      a_y(61, 36) = -0.0506369687172; a_y(61, 38) = -0.41137667876;
 
  776      a_y(62, 37) = -0.447213599321;
 
  777      a_y(63, 36) = -0.483045895658;
 
  780      a_z(0, 2) = 0.577350274182;
 
  781      a_z(1, 5) = 0.447213599475;
 
  782      a_z(2, 0) = 0.577350274182; a_z(2, 6) = 0.516397783969;
 
  783      a_z(3, 7) = 0.447213599475;
 
  784      a_z(4, 10) = 0.377964476363;
 
  785      a_z(5, 1) = 0.447213599475; a_z(5, 11) = 0.478091447944;
 
  786      a_z(6, 2) = 0.516397783969; a_z(6, 12) = 0.507092557216;
 
  787      a_z(7, 3) = 0.447213599475; a_z(7, 13) = 0.478091447944;
 
  788      a_z(8, 14) = 0.377964476363;
 
  789      a_z(9, 17) = 0.333333336293;
 
  790      a_z(10, 4) = 0.377964476363; a_z(10, 18) = 0.436435784349;
 
  791      a_z(11, 5) = 0.478091447944; a_z(11, 19) = 0.487950040795;
 
  792      a_z(12, 6) = 0.507092557216; a_z(12, 20) = 0.503952635119;
 
  793      a_z(13, 7) = 0.478091447944; a_z(13, 21) = 0.487950040795;
 
  794      a_z(14, 8) = 0.377964476363; a_z(14, 22) = 0.436435784351;
 
  795      a_z(15, 23) = 0.333333336187;
 
  796      a_z(16, 26) = 0.301511346872;
 
  797      a_z(17, 9) = 0.333333336293; a_z(17, 27) = 0.40201512971;
 
  798      a_z(18, 10) = 0.436435784349; a_z(18, 28) = 0.460566190563;
 
  799      a_z(19, 11) = 0.487950040795; a_z(19, 29) = 0.492365968294;
 
  800      a_z(20, 12) = 0.503952635119; a_z(20, 30) = 0.502518912007;
 
  801      a_z(21, 13) = 0.487950040795; a_z(21, 31) = 0.492365968294;
 
  802      a_z(22, 14) = 0.436435784351; a_z(22, 32) = 0.460566190564;
 
  803      a_z(23, 15) = 0.333333336187; a_z(23, 33) = 0.402015129644;
 
  804      a_z(24, 34) = 0.301511347383;
 
  805      a_z(25, 37) = 0.277350100591;
 
  806      a_z(26, 16) = 0.301511346872; a_z(26, 38) = 0.373978799085;
 
  807      a_z(27, 17) = 0.40201512971; a_z(27, 39) = 0.434524098534;
 
  808      a_z(28, 18) = 0.460566190563; a_z(28, 40) = 0.473049920992;
 
  809      a_z(29, 19) = 0.492365968294; a_z(29, 41) = 0.494727449299;
 
  810      a_z(30, 20) = 0.502518912007; a_z(30, 42) = 0.501745210371;
 
  811      a_z(31, 21) = 0.492365968294; a_z(31, 43) = 0.494727449299;
 
  812      a_z(32, 22) = 0.460566190564; a_z(32, 44) = 0.473049920992;
 
  813      a_z(33, 23) = 0.402015129644; a_z(33, 45) = 0.434524098444;
 
  814      a_z(34, 24) = 0.301511347383; a_z(34, 46) = 0.373978799368;
 
  815      a_z(35, 47) = 0.277350100595;
 
  816      a_z(36, 50) = 0.25819889214;
 
  817      a_z(37, 25) = 0.277350100591; a_z(37, 51) = 0.350823210839;
 
  818      a_z(38, 26) = 0.373978799085; a_z(38, 52) = 0.411376678995;
 
  819      a_z(39, 27) = 0.434524098534; a_z(39, 53) = 0.452910817664;
 
  820      a_z(40, 28) = 0.473049920992; a_z(40, 54) = 0.480384465625;
 
  821      a_z(41, 29) = 0.494727449299; a_z(41, 55) = 0.496138942673;
 
  822      a_z(42, 30) = 0.501745210371; a_z(42, 56) = 0.501280416117;
 
  823      a_z(43, 31) = 0.494727449299; a_z(43, 57) = 0.496138942673;
 
  824      a_z(44, 32) = 0.473049920992; a_z(44, 58) = 0.480384465625;
 
  825      a_z(45, 33) = 0.434524098444; a_z(45, 59) = 0.452910817603;
 
  826      a_z(46, 34) = 0.373978799368; a_z(46, 60) = 0.411376679304;
 
  827      a_z(47, 35) = 0.277350100595; a_z(47, 61) = 0.350823210843;
 
  828      a_z(48, 62) = 0.25819889185;
 
  829      a_z(50, 36) = 0.25819889214;
 
  830      a_z(51, 37) = 0.350823210839;
 
  831      a_z(52, 38) = 0.411376678995;
 
  832      a_z(53, 39) = 0.452910817664;
 
  833      a_z(54, 40) = 0.480384465625;
 
  834      a_z(55, 41) = 0.496138942673;
 
  835      a_z(56, 42) = 0.501280416117;
 
  836      a_z(57, 43) = 0.496138942673;
 
  837      a_z(58, 44) = 0.480384465625;
 
  838      a_z(59, 45) = 0.452910817603;
 
  839      a_z(60, 46) = 0.411376679304;
 
  840      a_z(61, 47) = 0.350823210843;
 
  841      a_z(62, 48) = 0.25819889185;
 
  843      b_x(1, 4) = 0.447213599471;
 
  844      b_x(2, 7) = 0.447213599475;
 
  845      b_x(3, 0) = -1.1547005485; b_x(3, 6) = -0.258198891965; b_x(3, 8) = 0.447213599474;
 
  846      b_x(4, 1) = -1.34164079826; b_x(4, 9) = 0.925820107925; b_x(4, 11) = -0.239045723982;
 
  847      b_x(5, 10) = 0.755928952726;
 
  848      b_x(6, 3) = 0.774596676127; b_x(6, 13) = 0.828078678503;
 
  849      b_x(7, 2) = -1.34164079829; b_x(7, 12) = -0.585540048795; b_x(7, 14) = 0.75592895272;
 
  850      b_x(8, 3) = -1.3416407983; b_x(8, 13) = -0.239045723992; b_x(8, 15) = 0.925820108002;
 
  851      b_x(9, 4) = -1.85164021599; b_x(9, 16) = 1.41421357451; b_x(9, 18) = -0.267261244248;
 
  852      b_x(10, 5) = -1.51185790544; b_x(10, 17) = 1.22474488217; b_x(10, 19) = -0.462910053985;
 
  853      b_x(11, 4) = 0.478091447971; b_x(11, 18) = 1.03509834819;
 
  854      b_x(12, 7) = 1.17108009785; b_x(12, 21) = 1.19522861992;
 
  855      b_x(13, 6) = -1.65615735678; b_x(13, 8) = 0.47809144797; b_x(13, 20) = -0.925820107905; b_x(13, 22) = 1.03509834818;
 
  856      b_x(14, 7) = -1.51185790548; b_x(14, 21) = -0.462910054004; b_x(14, 23) = 1.2247448822;
 
  857      b_x(15, 8) = -1.85164021591; b_x(15, 22) = -0.267261244321; b_x(15, 24) = 1.41421357538;
 
  858      b_x(16, 9) = -2.35702262488; b_x(16, 25) = 1.90692519561; b_x(16, 27) = -0.284267624595;
 
  859      b_x(17, 10) = -2.04124147039; b_x(17, 26) = 1.70560574581; b_x(17, 28) = -0.49236596804;
 
  860      b_x(18, 9) = 0.445435407104; b_x(18, 11) = -1.72516391355; b_x(18, 27) = 1.50420287947; b_x(18, 29) = -0.696310629884;
 
  861      b_x(19, 10) = 0.771516756666; b_x(19, 28) = 1.3026779061;
 
  862      b_x(20, 13) = 1.54303351328; b_x(20, 31) = 1.55699790216;
 
  863      b_x(21, 12) = -1.99204769981; b_x(21, 14) = 0.771516756655; b_x(21, 30) = -1.27128346374; b_x(21, 32) = 1.30267790608;
 
  864      b_x(22, 13) = -1.7251639136; b_x(22, 15) = 0.445435407077; b_x(22, 31) = -0.696310629893; b_x(22, 33) = 1.5042028795;
 
  865      b_x(23, 14) = -2.04124147037; b_x(23, 32) = -0.492365968057; b_x(23, 34) = 1.7056057462;
 
  866      b_x(24, 15) = -2.35702262481; b_x(24, 33) = -0.2842676245; b_x(24, 35) = 1.90692519522;
 
  867      b_x(25, 16) = -2.86038779259; b_x(25, 36) = 2.40192232838; b_x(25, 38) = -0.295656199902;
 
  868      b_x(26, 17) = -2.55840861903; b_x(26, 37) = 2.19264506806; b_x(26, 39) = -0.51209156107;
 
  869      b_x(27, 16) = 0.426401436365; b_x(27, 18) = -2.25630431903; b_x(27, 38) = 1.98332208753; b_x(27, 40) = -0.724206830804;
 
  870      b_x(28, 17) = 0.73854895244; b_x(28, 19) = -1.95401685904; b_x(28, 39) = 1.77393720372; b_x(28, 41) = -0.934946998301;
 
  871      b_x(29, 18) = 1.04446594501; b_x(29, 40) = 1.56446556083;
 
  872      b_x(30, 21) = 1.90692519544; b_x(30, 43) = 1.91607117205;
 
  873      b_x(31, 20) = -2.33549685284; b_x(31, 22) = 1.04446594499; b_x(31, 42) = -1.61937570326; b_x(31, 44) = 1.56446556081;
 
  874      b_x(32, 21) = -1.95401685906; b_x(32, 23) = 0.738548952431; b_x(32, 43) = -0.934946998309; b_x(32, 45) = 1.77393720373;
 
  875      b_x(33, 22) = -2.256304319; b_x(33, 24) = 0.426401436636; b_x(33, 44) = -0.724206830828; b_x(33, 46) = 1.98332208783;
 
  876      b_x(34, 23) = -2.55840861898; b_x(34, 45) = -0.512091561027; b_x(34, 47) = 2.19264506759;
 
  877      b_x(35, 24) = -2.86038779322; b_x(35, 46) = -0.295656200295; b_x(35, 48) = 2.40192232781;
 
  878      b_x(36, 25) = -3.36269125971; b_x(36, 49) = 2.8982753742; b_x(36, 51) = -0.303821812766;
 
  879      b_x(37, 26) = -3.06970309427; b_x(37, 50) = 2.68328159698; b_x(37, 52) = -0.526234816134;
 
  880      b_x(38, 25) = 0.413918681406; b_x(38, 27) = -2.77665092278; b_x(38, 51) = 2.46826007566; b_x(38, 53) = -0.744208414125;
 
  881      b_x(39, 26) = 0.71692818535; b_x(39, 28) = -2.48351208519; b_x(39, 52) = 2.25320286859; b_x(39, 54) = -0.96076893133;
 
  882      b_x(40, 27) = 1.01388956315; b_x(40, 29) = -2.19025178509; b_x(40, 53) = 2.03809867933; b_x(40, 55) = -1.17669682106;
 
  883      b_x(41, 28) = 1.30892579763; b_x(41, 54) = 1.82293087676;
 
  884      b_x(42, 31) = 2.26712598478; b_x(42, 57) = 2.27359426002;
 
  885      b_x(43, 30) = -2.68249964065; b_x(43, 32) = 1.30892579762; b_x(43, 56) = -1.96899038681; b_x(43, 58) = 1.82293087674;
 
  886      b_x(44, 31) = -2.19025178512; b_x(44, 33) = 1.01388956313; b_x(44, 57) = -1.17669682106; b_x(44, 59) = 2.03809867934;
 
  887      b_x(45, 32) = -2.48351208518; b_x(45, 34) = 0.716928185587; b_x(45, 58) = -0.960768931332; b_x(45, 60) = 2.25320286864;
 
  888      b_x(46, 33) = -2.77665092272; b_x(46, 35) = 0.413918680313; b_x(46, 59) = -0.744208414083; b_x(46, 61) = 2.46826007485;
 
  889      b_x(47, 34) = -3.0697030946; b_x(47, 60) = -0.526234816332; b_x(47, 62) = 2.68328159642;
 
  890      b_x(48, 35) = -3.36269125975; b_x(48, 61) = -0.303821812818; b_x(48, 63) = 2.89827537531;
 
  891      b_x(49, 36) = -3.8643671662;
 
  892      b_x(50, 37) = -3.57770879572;
 
  893      b_x(51, 36) = 0.405095750539; b_x(51, 38) = -3.29101343387;
 
  894      b_x(52, 37) = 0.701646422172; b_x(52, 39) = -3.00427049147;
 
  895      b_x(53, 38) = 0.992277885586; b_x(53, 40) = -2.71746490596;
 
  896      b_x(54, 39) = 1.28102524156; b_x(54, 41) = -2.43057450235;
 
  897      b_x(55, 40) = 1.56892909482;
 
  898      b_x(56, 43) = 2.6253205161;
 
  899      b_x(57, 42) = -3.03145901306; b_x(57, 44) = 1.5689290948;
 
  900      b_x(58, 43) = -2.43057450238; b_x(58, 45) = 1.28102524153;
 
  901      b_x(59, 44) = -2.71746490593; b_x(59, 46) = 0.992277885635;
 
  902      b_x(60, 45) = -3.00427049142; b_x(60, 47) = 0.701646421191;
 
  903      b_x(61, 46) = -3.29101343417; b_x(61, 48) = 0.405095750118;
 
  904      b_x(62, 47) = -3.57770879581;
 
  905      b_x(63, 48) = -3.86436716612;
 
  908      b_y(1, 0) = 1.1547005485; b_y(1, 6) = 0.258198891965; b_y(1, 8) = 0.447213599474;
 
  909      b_y(2, 5) = -0.447213599475;
 
  910      b_y(3, 4) = -0.447213599471;
 
  911      b_y(4, 3) = 1.34164079826; b_y(4, 13) = 0.239045723982; b_y(4, 15) = 0.925820107925;
 
  912      b_y(5, 2) = 1.34164079829; b_y(5, 12) = 0.585540048795; b_y(5, 14) = 0.75592895272;
 
  913      b_y(6, 1) = -0.774596676127; b_y(6, 11) = -0.828078678503;
 
  914      b_y(7, 10) = -0.755928952726;
 
  915      b_y(8, 1) = -1.3416407983; b_y(8, 9) = -0.925820108002; b_y(8, 11) = -0.239045723992;
 
  916      b_y(9, 8) = 1.85164021591; b_y(9, 22) = 0.267261244321; b_y(9, 24) = 1.41421357451;
 
  917      b_y(10, 7) = 1.51185790544; b_y(10, 21) = 0.462910053985; b_y(10, 23) = 1.22474488217;
 
  918      b_y(11, 6) = 1.65615735678; b_y(11, 8) = 0.47809144797; b_y(11, 20) = 0.925820107905; b_y(11, 22) = 1.03509834818;
 
  919      b_y(12, 5) = -1.17108009785; b_y(12, 19) = -1.19522861992;
 
  920      b_y(13, 4) = -0.478091447971; b_y(13, 18) = -1.03509834819;
 
  921      b_y(14, 5) = -1.51185790548; b_y(14, 17) = -1.2247448822; b_y(14, 19) = -0.462910054004;
 
  922      b_y(15, 4) = -1.85164021599; b_y(15, 16) = -1.41421357538; b_y(15, 18) = -0.267261244248;
 
  923      b_y(16, 15) = 2.35702262482; b_y(16, 33) = 0.284267624501; b_y(16, 35) = 1.90692519561;
 
  924      b_y(17, 14) = 2.04124147037; b_y(17, 32) = 0.492365968057; b_y(17, 34) = 1.70560574579;
 
  925      b_y(18, 13) = 1.72516391355; b_y(18, 15) = 0.445435407104; b_y(18, 31) = 0.696310629884; b_y(18, 33) = 1.50420287947;
 
  926      b_y(19, 12) = 1.99204769981; b_y(19, 14) = 0.771516756655; b_y(19, 30) = 1.27128346374; b_y(19, 32) = 1.30267790608;
 
  927      b_y(20, 11) = -1.54303351328; b_y(20, 29) = -1.55699790216;
 
  928      b_y(21, 10) = -0.771516756666; b_y(21, 28) = -1.3026779061;
 
  929      b_y(22, 9) = -0.445435407077; b_y(22, 11) = -1.7251639136; b_y(22, 27) = -1.5042028795; b_y(22, 29) = -0.696310629893;
 
  930      b_y(23, 10) = -2.04124147039; b_y(23, 26) = -1.70560574621; b_y(23, 28) = -0.49236596804;
 
  931      b_y(24, 9) = -2.35702262487; b_y(24, 25) = -1.90692519522; b_y(24, 27) = -0.284267624594;
 
  932      b_y(25, 24) = 2.86038779322; b_y(25, 46) = 0.295656200295; b_y(25, 48) = 2.40192232813;
 
  933      b_y(26, 23) = 2.55840861898; b_y(26, 45) = 0.51209156103; b_y(26, 47) = 2.19264506806;
 
  934      b_y(27, 22) = 2.256304319; b_y(27, 24) = 0.426401436365; b_y(27, 44) = 0.724206830828; b_y(27, 46) = 1.98332208752;
 
  935      b_y(28, 21) = 1.95401685904; b_y(28, 23) = 0.73854895244; b_y(28, 43) = 0.934946998301; b_y(28, 45) = 1.77393720372;
 
  936      b_y(29, 20) = 2.33549685284; b_y(29, 22) = 1.04446594499; b_y(29, 42) = 1.61937570326; b_y(29, 44) = 1.56446556081;
 
  937      b_y(30, 19) = -1.90692519544; b_y(30, 41) = -1.91607117205;
 
  938      b_y(31, 18) = -1.04446594501; b_y(31, 40) = -1.56446556083;
 
  939      b_y(32, 17) = -0.738548952431; b_y(32, 19) = -1.95401685906; b_y(32, 39) = -1.77393720373; b_y(32, 41) = -0.934946998309;
 
  940      b_y(33, 16) = -0.426401436636; b_y(33, 18) = -2.25630431903; b_y(33, 38) = -1.98332208784; b_y(33, 40) = -0.724206830804;
 
  941      b_y(34, 17) = -2.55840861903; b_y(34, 37) = -2.19264506759; b_y(34, 39) = -0.512091561067;
 
  942      b_y(35, 16) = -2.86038779259; b_y(35, 36) = -2.40192232849; b_y(35, 38) = -0.295656199902;
 
  943      b_y(36, 35) = 3.36269125971; b_y(36, 61) = 0.303821812771; b_y(36, 63) = 2.89827537356;
 
  944      b_y(37, 34) = 3.0697030946; b_y(37, 60) = 0.526234816332; b_y(37, 62) = 2.68328159675;
 
  945      b_y(38, 33) = 2.77665092273; b_y(38, 35) = 0.413918681406; b_y(38, 59) = 0.744208414089; b_y(38, 61) = 2.46826007566;
 
  946      b_y(39, 32) = 2.48351208518; b_y(39, 34) = 0.71692818535; b_y(39, 58) = 0.960768931332; b_y(39, 60) = 2.25320286857;
 
  947      b_y(40, 31) = 2.19025178509; b_y(40, 33) = 1.01388956315; b_y(40, 57) = 1.17669682106; b_y(40, 59) = 2.03809867933;
 
  948      b_y(41, 30) = 2.68249964065; b_y(41, 32) = 1.30892579762; b_y(41, 56) = 1.96899038681; b_y(41, 58) = 1.82293087674;
 
  949      b_y(42, 29) = -2.26712598478; b_y(42, 55) = -2.27359426002;
 
  950      b_y(43, 28) = -1.30892579763; b_y(43, 54) = -1.82293087676;
 
  951      b_y(44, 27) = -1.01388956313; b_y(44, 29) = -2.19025178512; b_y(44, 53) = -2.03809867934; b_y(44, 55) = -1.17669682106;
 
  952      b_y(45, 26) = -0.716928185587; b_y(45, 28) = -2.48351208519; b_y(45, 52) = -2.25320286865; b_y(45, 54) = -0.96076893133;
 
  953      b_y(46, 25) = -0.413918680313; b_y(46, 27) = -2.77665092277; b_y(46, 51) = -2.46826007538; b_y(46, 53) = -0.744208414119;
 
  954      b_y(47, 26) = -3.06970309427; b_y(47, 50) = -2.68328159707; b_y(47, 52) = -0.526234816134;
 
  955      b_y(48, 25) = -3.36269125974; b_y(48, 49) = -2.89827537571; b_y(48, 51) = -0.303821812814;
 
  956      b_y(49, 48) = 3.86436716609;
 
  957      b_y(50, 47) = 3.57770879573;
 
  958      b_y(51, 46) = 3.29101343417; b_y(51, 48) = 0.405095750369;
 
  959      b_y(52, 45) = 3.00427049142; b_y(52, 47) = 0.701646422172;
 
  960      b_y(53, 44) = 2.71746490593; b_y(53, 46) = 0.992277885581;
 
  961      b_y(54, 43) = 2.43057450235; b_y(54, 45) = 1.28102524156;
 
  962      b_y(55, 42) = 3.03145901306; b_y(55, 44) = 1.5689290948;
 
  963      b_y(56, 41) = -2.6253205161;
 
  964      b_y(57, 40) = -1.56892909482;
 
  965      b_y(58, 39) = -1.28102524153; b_y(58, 41) = -2.43057450238;
 
  966      b_y(59, 38) = -0.99227788564; b_y(59, 40) = -2.71746490596;
 
  967      b_y(60, 37) = -0.701646421191; b_y(60, 39) = -3.00427049146;
 
  968      b_y(61, 36) = -0.405095750625; b_y(61, 38) = -3.29101343387;
 
  969      b_y(62, 37) = -3.57770879581;
 
  970      b_y(63, 36) = -3.86436716621;
 
  973      b_z(1, 5) = -0.447213599475;
 
  974      b_z(2, 0) = 1.15470054864; b_z(2, 6) = -0.516397784084;
 
  975      b_z(3, 7) = -0.447213599475;
 
  976      b_z(4, 10) = -0.755928952726;
 
  977      b_z(5, 1) = 1.34164079843; b_z(5, 11) = -0.956182895941;
 
  978      b_z(6, 2) = 1.54919335225; b_z(6, 12) = -1.01418511456;
 
  979      b_z(7, 3) = 1.34164079843; b_z(7, 13) = -0.956182895941;
 
  980      b_z(8, 14) = -0.755928952727;
 
  981      b_z(9, 17) = -1.00000000885;
 
  982      b_z(10, 4) = 1.51185790549; b_z(10, 18) = -1.30930735293;
 
  983      b_z(11, 5) = 1.91236579194; b_z(11, 19) = -1.46385012243;
 
  984      b_z(12, 6) = 2.02837022898; b_z(12, 20) = -1.51185790545;
 
  985      b_z(13, 7) = 1.91236579194; b_z(13, 21) = -1.46385012243;
 
  986      b_z(14, 8) = 1.51185790549; b_z(14, 22) = -1.30930735293;
 
  987      b_z(15, 23) = -1.00000000877;
 
  988      b_z(16, 26) = -1.20604538874;
 
  989      b_z(17, 9) = 1.66666668122; b_z(17, 27) = -1.60806051874;
 
  990      b_z(18, 10) = 2.18217892152; b_z(18, 28) = -1.84226476226;
 
  991      b_z(19, 11) = 2.439750204; b_z(19, 29) = -1.96946387309;
 
  992      b_z(20, 12) = 2.51976317572; b_z(20, 30) = -2.01007564828;
 
  993      b_z(21, 13) = 2.439750204; b_z(21, 31) = -1.96946387309;
 
  994      b_z(22, 14) = 2.18217892151; b_z(22, 32) = -1.84226476226;
 
  995      b_z(23, 15) = 1.6666666813; b_z(23, 33) = -1.60806051868;
 
  996      b_z(24, 34) = -1.20604538914;
 
  997      b_z(25, 37) = -1.38675050297;
 
  998      b_z(26, 16) = 1.80906808355; b_z(26, 38) = -1.86989399642;
 
  999      b_z(27, 17) = 2.41209077803; b_z(27, 39) = -2.17262049246;
 
 1000      b_z(28, 18) = 2.7633971434; b_z(28, 40) = -2.36524960497;
 
 1001      b_z(29, 19) = 2.95419580962; b_z(29, 41) = -2.47363724662;
 
 1002      b_z(30, 20) = 3.01511347245; b_z(30, 42) = -2.50872605234;
 
 1003      b_z(31, 21) = 2.95419580962; b_z(31, 43) = -2.47363724662;
 
 1004      b_z(32, 22) = 2.7633971434; b_z(32, 44) = -2.36524960497;
 
 1005      b_z(33, 23) = 2.4120907781; b_z(33, 45) = -2.1726204924;
 
 1006      b_z(34, 24) = 1.80906808316; b_z(34, 46) = -1.86989399667;
 
 1007      b_z(35, 47) = -1.38675050297;
 
 1008      b_z(36, 50) = -1.54919335238;
 
 1009      b_z(37, 25) = 1.94145070405; b_z(37, 51) = -2.10493926505;
 
 1010      b_z(38, 26) = 2.6178515954; b_z(38, 52) = -2.46826007537;
 
 1011      b_z(39, 27) = 3.04166868941; b_z(39, 53) = -2.71746490591;
 
 1012      b_z(40, 28) = 3.31134944698; b_z(40, 54) = -2.88230679359;
 
 1013      b_z(41, 29) = 3.46309214521; b_z(41, 55) = -2.97683365609;
 
 1014      b_z(42, 30) = 3.51221647321; b_z(42, 56) = -3.00768249716;
 
 1015      b_z(43, 31) = 3.46309214521; b_z(43, 57) = -2.97683365609;
 
 1016      b_z(44, 32) = 3.31134944698; b_z(44, 58) = -2.88230679359;
 
 1017      b_z(45, 33) = 3.04166868947; b_z(45, 59) = -2.71746490587;
 
 1018      b_z(46, 34) = 2.61785159516; b_z(46, 60) = -2.46826007568;
 
 1019      b_z(47, 35) = 1.94145070404; b_z(47, 61) = -2.10493926505;
 
 1020      b_z(48, 62) = -1.54919335209;
 
 1021      b_z(50, 36) = 2.06559113621;
 
 1022      b_z(51, 37) = 2.80658568673;
 
 1023      b_z(52, 38) = 3.29101343424;
 
 1024      b_z(53, 39) = 3.62328654095;
 
 1025      b_z(54, 40) = 3.8430757251;
 
 1026      b_z(55, 41) = 3.96911154149;
 
 1027      b_z(56, 42) = 4.01024332969;
 
 1028      b_z(57, 43) = 3.96911154149;
 
 1029      b_z(58, 44) = 3.8430757251;
 
 1030      b_z(59, 45) = 3.62328654099;
 
 1031      b_z(60, 46) = 3.29101343394;
 
 1032      b_z(61, 47) = 2.80658568673;
 
 1033      b_z(62, 48) = 2.0655911365;
 
 1049    template <
typename MatrixType>
 
 1051                                MatrixType & b_x, MatrixType & b_y, MatrixType & b_z, 
int L_max)
 
 1056      else if (L_max == 3)
 
 1058      else if (L_max == 5)
 
 1060      else if (L_max == 7)
 
 1065        log::info<log_fill_coupling_matrices>() << 
"* fill_coupling_matrices(): Warning: No precomputed coupling matrices available," 
 1066                                                << 
" computing on-the-fly (might take a while)..." << std::endl;
 
 1068        fill_coupling_matrices_impl< IntegrationRule >(a_x, a_y, a_z,
 
Tag for an adaptive integration rule.
Derivative of a spherical harmonic with respect to phi.
Derivative of a spherical harmonic with respect to theta.
x-component of the Gamma coupling integral (cf. Dissertation Rupp)
double operator()(double theta, double phi) const
GammaIntegrand_x(int n, int m, int n1, int m1)
y-component of the Gamma coupling integral (cf. Dissertation Rupp)
GammaIntegrand_y(int n, int m, int n1, int m1)
double operator()(double theta, double phi) const
z-component of the Gamma coupling integral (cf. Dissertation Rupp)
double operator()(double theta, double phi) const
GammaIntegrand_z(int n, int m, int n1, int m1)
x-component of the velocity coupling integral \int Y_{l,m} e_r Y_{l',m'} \d \Omega (cf....
vIntegrand_x(int n, int m, int n1, int m1)
double operator()(double theta, double phi) const
y-component of the velocity coupling integral \int Y_{l,m} e_r Y_{l',m'} \d \Omega (cf....
vIntegrand_y(int n, int m, int n1, int m1)
double operator()(double theta, double phi) const
z-component of the velocity coupling integral \int Y_{l,m} e_r Y_{l',m'} \d \Omega (cf....
double operator()(double theta, double phi) const
vIntegrand_z(int n, int m, int n1, int m1)
Implementation of numerical integration routines.
A logging facility providing fine-grained control over logging in ViennaSHE.
Provides a number of fundamental math constants.
double integrate2D(double a1, double b1, double a2, double b2, T const &func2integrate, IntRuleTag)
Convenience overload for two-dimensional integration.
void fill_coupling_matrices(MatrixType &a_x, MatrixType &a_y, MatrixType &a_z, MatrixType &b_x, MatrixType &b_y, MatrixType &b_z, int L_max)
Public interface for filling coupling matrices.
void fill_coupling_matrices_3(MatrixType &a_x, MatrixType &a_y, MatrixType &a_z, MatrixType &b_x, MatrixType &b_y, MatrixType &b_z)
Precomputed coupling matrix up to third order.
void fill_coupling_matrices_1(MatrixType &a_x, MatrixType &a_y, MatrixType &a_z, MatrixType &b_x, MatrixType &b_y, MatrixType &b_z)
Precomputed coupling matrix up to first order.
void fill_coupling_matrices_7(MatrixType &a_x, MatrixType &a_y, MatrixType &a_z, MatrixType &b_x, MatrixType &b_y, MatrixType &b_z)
Precomputed coupling matrix up to seventh order.
void fill_coupling_matrices_impl(MatrixType &a_x, MatrixType &a_y, MatrixType &a_z, MatrixType &b_x, MatrixType &b_y, MatrixType &b_z, int L_max)
Assemble coupling coefficients a_{l,m}^{l',m'} and b_{l,m}^{l',m'} up to order l = L_max.
void fill_coupling_matrices_5(MatrixType &a_x, MatrixType &a_y, MatrixType &a_z, MatrixType &b_x, MatrixType &b_y, MatrixType &b_z)
Precomputed coupling matrix up to fifth order.
The main ViennaSHE namespace. All functionality resides inside this namespace.
Provides a number of fundamental constants. All constants in SI units.
Implementation of spherical harmonics plus helper functions.
static const double pi
Pi.
Defines the log keys used within the viennashe::she namespace.