Changeset 4417


Ignore:
Timestamp:
07/06/10 15:24:49 (15 years ago)
Author:
Mathieu Morlighem
Message:

Gauss Point clean up (to be continued)

Location:
issm/trunk/src/c/shared/Numerics
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/shared/Numerics/GaussPoints.cpp

    r3784 r4417  
    11/*  Gauss point structures and prototypes  */
    2 
    32
    43#include "./GaussPoints.h"
     
    109#include <float.h>
    1110
    12 /*=======1=========2=========3=========4=========5=========6=========7=========8
    13 
    14         GaussLegendre.c    Gauss-Legendre quadrature points.
    15 ={
    16         02/20/03    jes    Initial development.
    17         04/10/03    jes    Combination of leggauss and legrecur.
    18         04/11/05    jes    Addition of hard-coded values for lower degrees.
    19         04/25/05    jes    Addition of allocation.
    20 
    21         Input:
    22                 int      ngaus     number of Gauss points
    23 
    24         Output:
    25                 double** pxgaus    abscissas of Gauss points
    26                                                            (allocated below)
    27                 double** pxwgt     weights of Gauss points
    28                                                            (allocated below)
    29                 int                function return value
    30 
    31         The recurrence coefficients for Legendre polynomials on (-1,1)
    32         are defined (from the ORTHPOL subroutine RECUR with ipoly=1) as:
    33          
     11/*General Gauss points*/
     12/*FUNCTION GaussLegendre {{{1*/
     13void GaussLegendre( double** pxgaus, double** pxwgt, int ngaus){
     14        /* Gauss-Legendre quadrature points.
     15
     16                The recurrence coefficients for Legendre polynomials on (-1,1)
     17                are defined (from the ORTHPOL subroutine RECUR with ipoly=1) as:
     18
    3419                alpha(i)=0.
    3520                beta (i)=1./(4.-1./(i-1)^2))
    3621
    37         For degree p, the required number of Gauss-Legendre points is
    38         n>=(p+1)/2.
    39 
    40 =========1=========2=========3=========4=========5=========6=========7========*/
    41 void GaussLegendre( double** pxgaus, double** pxwgt, int ngaus ) {
    42        
     22                For degree p, the required number of Gauss-Legendre points is
     23                n>=(p+1)/2.*/
     24
     25        /*Intermediaries*/
    4326        int i;
    4427        double *alpha,*beta;
    4528
    46 /*  p= 1, npoint= 1  */
    47 
    48         static double wgt1[]={
    49                  2.000000000000000};
    50         static double xi1[]={
    51                  0.000000000000000};
    52 
    53 /*  p= 3, npoint= 2  */
    54 
    55         static double wgt2[]={
    56                  1.000000000000000, 1.000000000000000};
    57         static double xi2[]={
    58                 -0.577350269189626, 0.577350269189626};
    59 
    60 /*  p= 5, npoint= 3  */
    61 
    62         static double wgt3[]={
    63                  0.555555555555556, 0.888888888888889, 0.555555555555556};
    64         static double xi3[]={
    65                 -0.774596669241483, 0.000000000000000, 0.774596669241483};
    66 
    67 /*  p= 7, npoint= 4  */
    68 
    69         static double wgt4[]={
    70                  0.347854845137454, 0.652145154862546, 0.652145154862546,
    71                  0.347854845137454};
    72         static double xi4[]={
    73                 -0.861136311594053,-0.339981043584856, 0.339981043584856,
    74                  0.861136311594053};
     29        /*p= 1, npoint= 1*/
     30        static double wgt1[]={2.000000000000000};
     31        static double xi1[]={0.000000000000000};
     32
     33        /*p= 3, npoint= 2*/
     34        static double wgt2[]={1.000000000000000, 1.000000000000000};
     35        static double xi2[]={-0.577350269189626, 0.577350269189626};
     36
     37        /*p= 5, npoint= 3*/
     38        static double wgt3[]={0.555555555555556, 0.888888888888889, 0.555555555555556};
     39        static double xi3[]={-0.774596669241483, 0.000000000000000, 0.774596669241483};
     40
     41        /*p= 7, npoint= 4*/
     42        static double wgt4[]={0.347854845137454, 0.652145154862546, 0.652145154862546, 0.347854845137454};
     43        static double xi4[]={-0.861136311594053,-0.339981043584856, 0.339981043584856, 0.861136311594053};
    7544
    7645        static double* wgtp[MAX_LINE_GAUS_PTS]={wgt1 ,wgt2 ,wgt3 ,wgt4 };
     
    7847
    7948        static int np[MAX_LINE_GAUS_PTS]={sizeof(wgt1 )/sizeof(double),
    80                                                                           sizeof(wgt2 )/sizeof(double),
    81                                                                           sizeof(wgt3 )/sizeof(double),
    82                                                                           sizeof(wgt4 )/sizeof(double)};
    83 
    84 //      _printf_("Gauss-Legendre recurrence coefficients ngaus=%d\n",ngaus);
    85 
    86     *pxgaus = (double *) xmalloc(ngaus*sizeof(double));
    87     *pxwgt  = (double *) xmalloc(ngaus*sizeof(double));
    88 
    89 /*  check to see if Gauss points need to be calculated  */
    90 
     49                sizeof(wgt2 )/sizeof(double),
     50                sizeof(wgt3 )/sizeof(double),
     51                sizeof(wgt4 )/sizeof(double)};
     52
     53        //      _printf_("Gauss-Legendre recurrence coefficients ngaus=%d\n",ngaus);
     54        *pxgaus = (double *) xmalloc(ngaus*sizeof(double));
     55        *pxwgt  = (double *) xmalloc(ngaus*sizeof(double));
     56
     57        /*  check to see if Gauss points need to be calculated  */
    9158        if (ngaus <= MAX_LINE_GAUS_PTS) {
    9259
    93 /*  copy the points from the static arrays (noting that the pointers
    94         could be returned directly, but then the calling function would
    95         have to know to not free them)  */
     60                /*  copy the points from the static arrays (noting that the pointers
     61                         could be returned directly, but then the calling function would
     62                         have to know to not free them)  */
    9663
    9764                for (i=0; i<ngaus; i++) {
     
    10067                }
    10168        }
    102 
    10369        else {
    10470
    105 /*  calculate the Gauss points using recurrence relations  */
    106 
     71                /*  calculate the Gauss points using recurrence relations  */
    10772                alpha=(double *) xmalloc(ngaus*sizeof(double));
    10873                beta =(double *) xmalloc(ngaus*sizeof(double));
    10974
    110 /*  calculate the Legendre recurrence coefficients  */
    111 
     75                /*  calculate the Legendre recurrence coefficients  */
    11276                alpha[0]=0.;
    11377                beta [0]=2.;
     
    11882                }
    11983
    120 /*  calculate the Gauss points  */
    121 
     84                /*  calculate the Gauss points  */
    12285                GaussRecur(*pxgaus, *pxwgt, ngaus, alpha, beta );
    12386                xfree((void **)&beta );
    12487                xfree((void **)&alpha);
    12588        }
    126 
    127 }
    128 
    129 
    130 /*=======1=========2=========3=========4=========5=========6=========7=========8
    131 
    132         GaussLobatto.c    Gauss-Lobatto quadrature points.
    133 
    134         03/06/03    jes    Initial development.
    135         04/11/03    jes    Combination of leggauss, lobgauss, and legrecur.
    136         04/11/05    jes    Addition of hard-coded values for lower degrees.
    137         04/25/05    jes    Addition of allocation.
    138 
    139         Input:
    140                 int      ngaus     number of Gauss points
    141 
    142         Output:
    143                 double** pxgaus    abscissas of Gauss points
    144                                                            (allocated below)
    145                 double** pxwgt     weights of Gauss points
    146                                                            (allocated below)
    147                 int                function return value
    148 
    149         The recurrence coefficients for Legendre polynomials on (-1,1)
    150         are defined (from the ORTHPOL subroutine RECUR with ipoly=1) as:
    151 
    152                 alpha(i)=0.
    153                 beta (i)=1./(4.-1./(i-1)^2))
    154 
    155         and then modified for the Gauss-Lobatto quadrature rule on (-1,1)
    156         (from the ORTHPOL subroutine LOB).
    157 
    158         For degree p, the required number of Gauss-Lobatto points is
    159         n>=(p+1)/2+1 (one more than Gauss-Legendre).
    160 
    161 =========1=========2=========3=========4=========5=========6=========7========*/
    162 
     89}/*}}}1*/
     90/*FUNCTION GaussLobatto{{{1*/
    16391void GaussLobatto( double** pxgaus, double** pxwgt, int ngaus ) {
     92        /*Gauss-Lobatto quadrature points.
     93
     94          The recurrence coefficients for Legendre polynomials on (-1,1)
     95          are defined (from the ORTHPOL subroutine RECUR with ipoly=1) as:
     96
     97          alpha(i)=0.
     98          beta (i)=1./(4.-1./(i-1)^2))
     99
     100          and then modified for the Gauss-Lobatto quadrature rule on (-1,1)
     101          (from the ORTHPOL subroutine LOB).
     102
     103          For degree p, the required number of Gauss-Lobatto points is
     104          n>=(p+1)/2+1 (one more than Gauss-Legendre).*/
    164105
    165106        int i;
     
    168109        double p0l=0.,p0r=0.,p1l=1.,p1r=1.,pm1l,pm1r,det;
    169110
    170 /*  p= 1, npoint= 1 (Gauss-Legendre)  */
    171 
    172         static double wgt1[]={
    173                  2.000000000000000};
    174         static double xi1[]={
    175                  0.000000000000000};
    176 
    177 /*  p= 1, npoint= 2  */
    178 
    179         static double wgt2[]={
    180                  1.000000000000000, 1.000000000000000};
    181         static double xi2[]={
    182                 -1.000000000000000, 1.000000000000000};
    183 
    184 /*  p= 3, npoint= 3  */
    185 
    186         static double wgt3[]={
    187                  0.333333333333333, 1.333333333333333, 0.333333333333333};
    188         static double xi3[]={
    189                 -1.000000000000000, 0.000000000000000, 1.000000000000000};
    190 
    191 /*  p= 5, npoint= 4  */
    192 
    193         static double wgt4[]={
    194                  0.166666666666667, 0.833333333333333, 0.833333333333333,
    195                  0.166666666666667};
    196         static double xi4[]={
    197                 -1.000000000000000,-0.447213595499958, 0.447213595499958,
    198                  1.000000000000000};
    199 
    200 /*  p= 7, npoint= 5  */
    201 
    202         static double wgt5[]={
    203                  0.100000000000000, 0.544444444444444, 0.711111111111111,
    204                  0.544444444444444, 0.100000000000000};
    205         static double xi5[]={
    206                 -1.000000000000000,-0.654653670707977, 0.000000000000000,
    207                  0.654653670707977, 1.000000000000000};
     111        /*p= 1, npoint= 1 (Gauss-Legendre)*/
     112        static double wgt1[]={2.000000000000000};
     113        static double xi1[]={0.000000000000000};
     114
     115        /*p= 1, npoint= 2*/
     116        static double wgt2[]={1.000000000000000, 1.000000000000000};
     117        static double xi2[]={-1.000000000000000, 1.000000000000000};
     118
     119        /*p= 3, npoint= 3*/
     120        static double wgt3[]={0.333333333333333, 1.333333333333333, 0.333333333333333};
     121        static double xi3[]={-1.000000000000000, 0.000000000000000, 1.000000000000000};
     122
     123        /*p= 5, npoint= 4*/
     124        static double wgt4[]={0.166666666666667, 0.833333333333333, 0.833333333333333, 0.166666666666667};
     125        static double xi4[]={-1.000000000000000,-0.447213595499958, 0.447213595499958, 1.000000000000000};
     126
     127        /*p= 7, npoint= 5*/
     128        static double wgt5[]={0.100000000000000, 0.544444444444444, 0.711111111111111, 0.544444444444444, 0.100000000000000};
     129        static double xi5[]={-1.000000000000000,-0.654653670707977, 0.000000000000000, 0.654653670707977, 1.000000000000000};
    208130
    209131        static double* wgtp[MAX_LINE_GLOB_PTS]={wgt1 ,wgt2 ,wgt3 ,wgt4 ,wgt5 };
     
    211133
    212134        static int np[MAX_LINE_GLOB_PTS]={sizeof(wgt1 )/sizeof(double),
    213                                                                           sizeof(wgt2 )/sizeof(double),
    214                                                                           sizeof(wgt3 )/sizeof(double),
    215                                                                           sizeof(wgt4 )/sizeof(double),
    216                                                                           sizeof(wgt5 )/sizeof(double)};
    217 
    218 //      _printf_("Gauss-Lobatto recurrence coefficients ngaus=%d\n",ngaus);
    219 
    220     *pxgaus = (double *) xmalloc(ngaus*sizeof(double));
    221     *pxwgt  = (double *) xmalloc(ngaus*sizeof(double));
    222 
    223 /*  check to see if Gauss points need to be calculated  */
    224 
     135                sizeof(wgt2 )/sizeof(double),
     136                sizeof(wgt3 )/sizeof(double),
     137                sizeof(wgt4 )/sizeof(double),
     138                sizeof(wgt5 )/sizeof(double)};
     139
     140        //      _printf_("Gauss-Lobatto recurrence coefficients ngaus=%d\n",ngaus);
     141        *pxgaus = (double *) xmalloc(ngaus*sizeof(double));
     142        *pxwgt  = (double *) xmalloc(ngaus*sizeof(double));
     143
     144        /*  check to see if Gauss points need to be calculated  */
    225145        if (ngaus <= MAX_LINE_GLOB_PTS) {
    226146
    227 /*  copy the points from the static arrays (noting that the pointers
    228         could be returned directly, but then the calling function would
    229         have to know to not free them)  */
    230 
     147                /*  copy the points from the static arrays (noting that the pointers
     148                         could be returned directly, but then the calling function would
     149                         have to know to not free them)  */
    231150                for (i=0; i<ngaus; i++) {
    232151                        (*pxgaus)[i]=xip [ngaus-1][i];
     
    234153                }
    235154        }
    236 
    237155        else {
    238156
    239 /*  calculate the Gauss points using recurrence relations  */
    240 
     157                /*  calculate the Gauss points using recurrence relations  */
    241158                alpha=(double *) xmalloc(ngaus*sizeof(double));
    242159                beta =(double *) xmalloc(ngaus*sizeof(double));
    243160
    244 /*  calculate the Legendre recurrence coefficients  */
    245 
     161                /*  calculate the Legendre recurrence coefficients  */
    246162                alpha[0]=0.;
    247163                beta [0]=2.;
     
    252168                }
    253169
    254 /*  calculate the Gauss-Lobatto quadrature formula  */
    255 
     170                /*  calculate the Gauss-Lobatto quadrature formula  */
    256171                for (i=0; i<ngaus-1; i++) {
    257172                        pm1l=p0l;
     
    263178                }
    264179
    265 /*  Normalize system to prevent underflow:
    266                 [ p1l p0l ]{ a } = {left *p1l}
    267                 [ p1r p0r ]{ b }   {right*p1r}
    268         dividing by p1l in the first equation and p1r in the second.  */
    269 
    270 //              det=p1l*p0r-p1r*p0l;
     180                /*  Normalize system to prevent underflow:
     181                         [ p1l p0l ]{ a } = {left *p1l}
     182                         [ p1r p0r ]{ b }   {right*p1r}
     183                         dividing by p1l in the first equation and p1r in the second.  */
     184
     185                //              det=p1l*p0r-p1r*p0l;
    271186                det=p0r/p1r-p0l/p1l;
    272 //              alpha[ngaus-1]=(left*p1l*p0r-right*p1r*p0l)/det;
    273 //              beta [ngaus-1]=(right-left)*p1l*p1r/det;
     187                //              alpha[ngaus-1]=(left*p1l*p0r-right*p1r*p0l)/det;
     188                //              beta [ngaus-1]=(right-left)*p1l*p1r/det;
    274189                alpha[ngaus-1]=(left *(p0r/p1r)-right*(p0l/p1l))/det;
    275190                beta [ngaus-1]=(right          -left           )/det;
    276191
    277 /*  calculate the Gauss points  */
    278 
     192                /*  calculate the Gauss points  */
    279193                GaussRecur(*pxgaus, *pxwgt, ngaus, alpha, beta );
    280194                xfree((void **)&beta );
     
    282196        }
    283197
    284 }
    285 
    286 
    287 /*=======1=========2=========3=========4=========5=========6=========7=========8
    288 
    289         GaussRecur.c    Gauss quadrature points from recursion coefficients.
    290 
    291         02/20/03    jes    Initial development.
    292 
    293         Input:
    294                 int     n         number of Gauss points
    295                 double* alpha     first recursion coefficients
    296                 double* beta      second recursion coefficients
    297 
    298         Output:
    299                 double* zero      abscissas of Gauss points
    300                 double* weight    weights of Gauss points
    301                 int               function return value
    302 
    303         The routine uses the algorithm from the ORTHPOL routine GAUSS, which
    304         finds the eigenvalues of a tridiagonal matrix.
    305 
    306 =========1=========2=========3=========4=========5=========6=========7========*/
     198}/*}}}1*/
     199/*FUNCTION GaussRecur{{{1*/
    307200void GaussRecur( double* zero, double* weight, int n, double* alpha, double* beta ) {
     201        /*Gauss quadrature points from recursion coefficients.
     202         *
     203         *The routine uses the algorithm from the ORTHPOL routine GAUSS, which
     204         *finds the eigenvalues of a tridiagonal matrix.*/
     205
     206        /*Intermediaries*/
    308207        int i,j,k,l,m,ii,mml,iter;
    309208        double p,g,r,s,c,f,b;
    310209        double* work;
    311210
    312         if ( n == 1 ) {
     211        if (n==1){
    313212                zero[0]  =alpha[0];
    314213                weight[0]=beta[0];
    315                 return ;
     214                return;
    316215        }
    317216
    318         work=(double *) xmalloc(n*sizeof(double));
     217        work=(double*)xmalloc(n*sizeof(double));
    319218
    320219        zero[0]  =alpha[0];
    321220        weight[0]=1.;
    322221        work[n-1]=0.;
    323         for (i=1; i<=n-1; i++) {
     222        for (i=1; i<=n-1; i++){
    324223                zero[i]=alpha[i];
    325224                work[i-1]=sqrt(beta[i]);
     
    327226        }
    328227
    329         for (l=0; l<=n-1; l++) {
     228        for (l=0; l<=n-1; l++){
    330229                iter=0;
    331230                do {
    332231
    333 /*  Look for a small subdiagonal element.  */
    334 
     232                        /*  Look for a small subdiagonal element.  */
    335233                        for (m=l; m<=n-1; m++) {
    336234                                if (m == n-1) break;
    337235                                if (fabs(work[m])
    338                                         <= DBL_EPSILON*(fabs(zero[m])+fabs(zero[m+1])))
    339                                         break;
     236                                                        <= DBL_EPSILON*(fabs(zero[m])+fabs(zero[m+1])))
     237                                 break;
    340238                        }
    341239                        p=zero[l];
    342                         if (m == l) break;
     240                        if (m==l) break;
    343241                        ++iter;
    344242
    345 /*  Form shift.  */
    346 
     243                        /*  Form shift.  */
    347244                        g=(zero[l+1]-p)/(2.*work[l]);
    348245                        r=sqrt(g*g+1.);
    349 //                      g=zero[m]-p+work[l]/(g+FortranSign(r,g));
     246                        //                      g=zero[m]-p+work[l]/(g+FortranSign(r,g));
    350247                        g=zero[m]-p+work[l]/(g+(g>=0 ? fabs(r) : -fabs(r)));
    351248                        s=1.;
     
    354251                        mml=m-l;
    355252
    356 /*  For i=m-1 step -1 until l do ...  */
    357 
     253                        /*  For i=m-1 step -1 until l do ...  */
    358254                        for (ii=1; ii<=mml; ii++) {
    359255                                i=m-ii;
     
    380276                                g=c*r-b;
    381277
    382 /*  Form first component of vector.  */
    383 
     278                                /*  Form first component of vector.  */
    384279                                f=weight[i+1];
    385280                                weight[i+1]=s*weight[i]+c*f;
     
    396291        }
    397292
    398 /*  Order eigenvalues and eigenvectors.  */
    399 
     293        /*  Order eigenvalues and eigenvectors.  */
    400294        for (i=0;i<n-1;i++) {
    401295                k=i;
    402296                p=zero[i];
    403                 for (j=i+1;j<n;j++) {
    404                         if (zero[j] < p) {
     297                for (j=i+1;j<n;j++){
     298                        if (zero[j] < p){
    405299                                k=j;
    406300                                p=zero[j];
    407301                        }
    408302                }
    409                 if (k > i) {
     303                if (k > i){
    410304                        p=zero[i];
    411305                        zero[i]=zero[k];
     
    416310                }
    417311        }
    418         for (i=0;i<n;i++) {
     312        for (i=0;i<n;i++){
    419313                weight[i]=beta[0]*weight[i]*weight[i];
    420314        }
    421315
     316        /*Cleanup*/
    422317        xfree((void **)&work);
    423318
    424 }
    425 
    426 
    427 /*=======1=========2=========3=========4=========5=========6=========7=========8
    428 
    429         GaussQuad.c    Gauss quadrature points for the quadrilaterial.
    430 
    431         04/25/05    jes    Initial development (from FaceQuadIntegInit).
    432 
    433         Input:
    434                 int         nigaus    number of xi gauss points
    435                 int         njgaus    number of eta gauss points
    436 
    437         Output:
    438                 double**    pxgaus    abscissas of xi gauss points
    439                                                                   (allocated below)
    440                 double**    pxwgt     weights of xi gauss points
    441                                                                   (allocated below)
    442                 double**    pegaus    abscissas of eta gauss points
    443                                                                   (allocated below)
    444                 double**    pewgt     weights of eta gauss points
    445                                                                   (allocated below)
    446                 int                   function return value
    447 
    448 =========1=========2=========3=========4=========5=========6=========7========*/
     319}/*}}}1*/
     320
     321/*Element Gauss points*/
     322/*FUNCTION GaussQuad{{{1*/
    449323void GaussQuad( double** pxgaus, double** pxwgt, double** pegaus, double** pewgt, int nigaus, int njgaus ) {
    450 
    451 /*  get the gauss points using the product of two line rules  */
    452 
     324        /*Gauss quadrature points for the quadrilaterial.*/
     325
     326        /*get the gauss points using the product of two line rules  */
    453327        GaussLegendre(pxgaus, pxwgt, nigaus);
    454 
    455328        GaussLegendre(pegaus, pewgt, njgaus);
    456 }
    457 
    458 
    459 /*=======1=========2=========3=========4=========5=========6=========7=========8
    460 
    461         GaussTria.c    Gauss quadrature points for the triangle.
    462 
    463         08/13/03    jes    Initial development.
    464         04/25/05    jes    Combination of GaussTriaSym and GaussTriaColl.
    465 
    466         Input:
    467                 int         iord      order for the Gauss quadrature
    468 
    469         Output:
    470                 int*        pngaus    number of Gauss points
    471                 double**    pl1       first area coordinates of Gauss points
    472                                                                   (allocated below)
    473                 double**    pl2       second area coordinates of Gauss points
    474                                                                   (allocated below)
    475                 double**    pl3       third area coordinates of Gauss points
    476                                                                   (allocated below)
    477                 double**    pwgt      weights of Gauss points
    478                                                                   (allocated below)
    479                 int                   function return value
    480 
    481         Higher-order points from D.A. Dunavant, "High Degree Efficient
    482         Symmetrical Gaussian Quadrature Rules for the Triangle", IJNME,
    483         Vol. 21, pp. 1129-1148 (1985), as transcribed for Probe rules3.
    484 
    485 =========1=========2=========3=========4=========5=========6=========7========*/
     329}/*}}}1*/
     330/*FUNCTION GaussTria{{{1*/
    486331void GaussTria( int* pngaus, double** pl1, double** pl2, double** pl3, double** pwgt, int iord ) {
    487        
     332        /*Gauss quadrature points for the triangle.
     333
     334          Higher-order points from D.A. Dunavant, "High Degree Efficient
     335          Symmetrical Gaussian Quadrature Rules for the Triangle", IJNME,
     336          Vol. 21, pp. 1129-1148 (1985), as transcribed for Probe rules3.*/
     337
     338        /*Intermediaries*/
    488339        int i,j,ipt,nigaus;
    489340        double xi,eta;
    490341        double *xgaus=NULL,*xwgt=NULL,*egaus,*ewgt;
    491342
    492 /*  p= 1, npoint= 1  */
    493 
     343        /*Hardcoded Gauss points declaration*/
     344        /*p= 1, npoint= 1{{{2*/
    494345        static double wgt1[]={
    495                  1.732050807568877};
     346                1.732050807568877};
    496347        static double l11[]={
    497                  0.333333333333333};
     348                0.333333333333333};
    498349        static double l21[]={
    499                  0.333333333333333};
     350                0.333333333333333};
    500351        static double l31[]={
    501                  0.333333333333333};
    502 
    503 /*  p= 2, npoint= 3  */
    504 
     352                0.333333333333333};
     353        /*}}}2*/
     354        /*p= 2, npoint= 3  {{{2*/
    505355        static double wgt2[]={
    506                  0.577350269189625, 0.577350269189625, 0.577350269189625};
     356                0.577350269189625, 0.577350269189625, 0.577350269189625};
    507357        static double l12[]={
    508                  0.666666666666667, 0.166666666666667, 0.166666666666667};
     358                0.666666666666667, 0.166666666666667, 0.166666666666667};
    509359        static double l22[]={
    510                  0.166666666666667, 0.666666666666667, 0.166666666666667};
     360                0.166666666666667, 0.666666666666667, 0.166666666666667};
    511361        static double l32[]={
    512                  0.166666666666667, 0.166666666666667, 0.666666666666667};
    513 
    514 /*  p= 3, npoint= 4  */
    515 
     362                0.166666666666667, 0.166666666666667, 0.666666666666667};
     363        /*}}}2*/
     364        /*p= 3, npoint= 4  {{{2*/
    516365        static double wgt3[]={
    517366                -0.974278579257493, 0.902109795608790, 0.902109795608790,
    518                  0.902109795608790};
     367                0.902109795608790};
    519368        static double l13[]={
    520                  0.333333333333333, 0.600000000000000, 0.200000000000000,
    521                  0.200000000000000};
     369                0.333333333333333, 0.600000000000000, 0.200000000000000,
     370                0.200000000000000};
    522371        static double l23[]={
    523                  0.333333333333333, 0.200000000000000, 0.600000000000000,
    524                  0.200000000000000};
     372                0.333333333333333, 0.200000000000000, 0.600000000000000,
     373                0.200000000000000};
    525374        static double l33[]={
    526                  0.333333333333333, 0.200000000000000, 0.200000000000000,
    527                  0.600000000000000};
    528 
    529 /*  p= 4, npoint= 6  */
    530 
     375                0.333333333333333, 0.200000000000000, 0.200000000000000,
     376                0.600000000000000};
     377        /*}}}2*/
     378        /*p= 4, npoint= 6  {{{2*/
    531379        static double wgt4[]={
    532                  0.386908262797819, 0.386908262797819, 0.386908262797819,
    533                  0.190442006391807, 0.190442006391807, 0.190442006391807};
     380                0.386908262797819, 0.386908262797819, 0.386908262797819,
     381                0.190442006391807, 0.190442006391807, 0.190442006391807};
    534382        static double l14[]={
    535                  0.108103018168070, 0.445948490915965, 0.445948490915965,
    536                  0.816847572980459, 0.091576213509771, 0.091576213509771};
     383                0.108103018168070, 0.445948490915965, 0.445948490915965,
     384                0.816847572980459, 0.091576213509771, 0.091576213509771};
    537385        static double l24[]={
    538                  0.445948490915965, 0.108103018168070, 0.445948490915965,
    539                  0.091576213509771, 0.816847572980459, 0.091576213509771};
     386                0.445948490915965, 0.108103018168070, 0.445948490915965,
     387                0.091576213509771, 0.816847572980459, 0.091576213509771};
    540388        static double l34[]={
    541                  0.445948490915965, 0.445948490915965, 0.108103018168070,
    542                  0.091576213509771, 0.091576213509771, 0.816847572980459};
    543 
    544 /*  p= 5, npoint= 7  */
    545 
     389                0.445948490915965, 0.445948490915965, 0.108103018168070,
     390                0.091576213509771, 0.091576213509771, 0.816847572980459};
     391        /*}}}2*/
     392        /*p= 5, npoint= 7  {{{2*/
    546393        static double wgt5[]={
    547                  0.389711431702997, 0.229313399254729, 0.229313399254729,
    548                  0.229313399254729, 0.218133059367230, 0.218133059367230,
    549                  0.218133059367230};
     394                0.389711431702997, 0.229313399254729, 0.229313399254729,
     395                0.229313399254729, 0.218133059367230, 0.218133059367230,
     396                0.218133059367230};
    550397        static double l15[]={
    551                  0.333333333333333, 0.059715871789770, 0.470142064105115,
    552                  0.470142064105115, 0.797426985353087, 0.101286507323456,
    553                  0.101286507323456};
     398                0.333333333333333, 0.059715871789770, 0.470142064105115,
     399                0.470142064105115, 0.797426985353087, 0.101286507323456,
     400                0.101286507323456};
    554401        static double l25[]={
    555                  0.333333333333333, 0.470142064105115, 0.059715871789770,
    556                  0.470142064105115, 0.101286507323456, 0.797426985353087,
    557                  0.101286507323456};
     402                0.333333333333333, 0.470142064105115, 0.059715871789770,
     403                0.470142064105115, 0.101286507323456, 0.797426985353087,
     404                0.101286507323456};
    558405        static double l35[]={
    559                  0.333333333333333, 0.470142064105115, 0.470142064105115,
    560                  0.059715871789770, 0.101286507323456, 0.101286507323456,
    561                  0.797426985353087};
    562 
    563 /*  p= 6, npoint=12  */
    564 
     406                0.333333333333333, 0.470142064105115, 0.470142064105115,
     407                0.059715871789770, 0.101286507323456, 0.101286507323456,
     408                0.797426985353087};
     409        /*}}}2*/
     410        /*p= 6, npoint=12  {{{2*/
    565411        static double wgt6[]={
    566                  0.202279763184836, 0.202279763184836, 0.202279763184836,
    567                  0.088065961139281, 0.088065961139281, 0.088065961139281,
    568                  0.143502272432755, 0.143502272432755, 0.143502272432755,
    569                  0.143502272432755, 0.143502272432755, 0.143502272432755};
     412                0.202279763184836, 0.202279763184836, 0.202279763184836,
     413                0.088065961139281, 0.088065961139281, 0.088065961139281,
     414                0.143502272432755, 0.143502272432755, 0.143502272432755,
     415                0.143502272432755, 0.143502272432755, 0.143502272432755};
    570416        static double l16[]={
    571                  0.501426509658179, 0.249286745170910, 0.249286745170910,
    572                  0.873821971016996, 0.063089014491502, 0.063089014491502,
    573                  0.053145049844817, 0.053145049844817, 0.310352451033784,
    574                  0.636502499121399, 0.310352451033784, 0.636502499121399};
     417                0.501426509658179, 0.249286745170910, 0.249286745170910,
     418                0.873821971016996, 0.063089014491502, 0.063089014491502,
     419                0.053145049844817, 0.053145049844817, 0.310352451033784,
     420                0.636502499121399, 0.310352451033784, 0.636502499121399};
    575421        static double l26[]={
    576                  0.249286745170910, 0.501426509658179, 0.249286745170910,
    577                  0.063089014491502, 0.873821971016996, 0.063089014491502,
    578                  0.310352451033784, 0.636502499121399, 0.053145049844817,
    579                  0.053145049844817, 0.636502499121399, 0.310352451033784};
     422                0.249286745170910, 0.501426509658179, 0.249286745170910,
     423                0.063089014491502, 0.873821971016996, 0.063089014491502,
     424                0.310352451033784, 0.636502499121399, 0.053145049844817,
     425                0.053145049844817, 0.636502499121399, 0.310352451033784};
    580426        static double l36[]={
    581                  0.249286745170910, 0.249286745170910, 0.501426509658179,
    582                  0.063089014491502, 0.063089014491502, 0.873821971016996,
    583                  0.636502499121399, 0.310352451033784, 0.636502499121399,
    584                  0.310352451033784, 0.053145049844817, 0.053145049844817};
    585 
    586 /*  p= 7, npoint=13  */
    587 
     427                0.249286745170910, 0.249286745170910, 0.501426509658179,
     428                0.063089014491502, 0.063089014491502, 0.873821971016996,
     429                0.636502499121399, 0.310352451033784, 0.636502499121399,
     430                0.310352451033784, 0.053145049844817, 0.053145049844817};
     431        /*}}}2*/
     432        /*p= 7, npoint=13  {{{2*/
    588433        static double wgt7[]={
    589434                -0.259062916308362, 0.304174548458604, 0.304174548458604,
    590                  0.304174548458604, 0.092400122517855, 0.092400122517855,
    591                  0.092400122517855, 0.133564951824643, 0.133564951824643,
    592                  0.133564951824643, 0.133564951824643, 0.133564951824643,
    593                  0.133564951824643};
     435                0.304174548458604, 0.092400122517855, 0.092400122517855,
     436                0.092400122517855, 0.133564951824643, 0.133564951824643,
     437                0.133564951824643, 0.133564951824643, 0.133564951824643,
     438                0.133564951824643};
    594439        static double l17[]={
    595                  0.333333333333333, 0.479308067841920, 0.260345966079040,
    596                  0.260345966079040, 0.869739794195568, 0.065130102902216,
    597                  0.065130102902216, 0.048690315425316, 0.048690315425316,
    598                  0.312865496004874, 0.638444188569810, 0.312865496004874,
    599                  0.638444188569810};
     440                0.333333333333333, 0.479308067841920, 0.260345966079040,
     441                0.260345966079040, 0.869739794195568, 0.065130102902216,
     442                0.065130102902216, 0.048690315425316, 0.048690315425316,
     443                0.312865496004874, 0.638444188569810, 0.312865496004874,
     444                0.638444188569810};
    600445        static double l27[]={
    601                  0.333333333333333, 0.260345966079040, 0.479308067841920,
    602                  0.260345966079040, 0.065130102902216, 0.869739794195568,
    603                  0.065130102902216, 0.312865496004874, 0.638444188569810,
    604                  0.048690315425316, 0.048690315425316, 0.638444188569810,
    605                  0.312865496004874};
     446                0.333333333333333, 0.260345966079040, 0.479308067841920,
     447                0.260345966079040, 0.065130102902216, 0.869739794195568,
     448                0.065130102902216, 0.312865496004874, 0.638444188569810,
     449                0.048690315425316, 0.048690315425316, 0.638444188569810,
     450                0.312865496004874};
    606451        static double l37[]={
    607                  0.333333333333333, 0.260345966079040, 0.260345966079040,
    608                  0.479308067841920, 0.065130102902216, 0.065130102902216,
    609                  0.869739794195568, 0.638444188569810, 0.312865496004874,
    610                  0.638444188569810, 0.312865496004874, 0.048690315425316,
    611                  0.048690315425316};
    612 
    613 /*  p= 8, npoint=16  */
    614 
     452                0.333333333333333, 0.260345966079040, 0.260345966079040,
     453                0.479308067841920, 0.065130102902216, 0.065130102902216,
     454                0.869739794195568, 0.638444188569810, 0.312865496004874,
     455                0.638444188569810, 0.312865496004874, 0.048690315425316,
     456                0.048690315425316};
     457        /*}}}2*/
     458        /*p= 8, npoint=16  {{{2*/
    615459        static double wgt8[]={
    616                  0.249961964823104, 0.164703541925695, 0.164703541925695,
    617                  0.164703541925695, 0.178777729989794, 0.178777729989794,
    618                  0.178777729989794, 0.056219767020733, 0.056219767020733,
    619                  0.056219767020733, 0.047164287656184, 0.047164287656184,
    620                  0.047164287656184, 0.047164287656184, 0.047164287656184,
    621                  0.047164287656184};
     460                0.249961964823104, 0.164703541925695, 0.164703541925695,
     461                0.164703541925695, 0.178777729989794, 0.178777729989794,
     462                0.178777729989794, 0.056219767020733, 0.056219767020733,
     463                0.056219767020733, 0.047164287656184, 0.047164287656184,
     464                0.047164287656184, 0.047164287656184, 0.047164287656184,
     465                0.047164287656184};
    622466        static double l18[]={
    623                  0.333333333333333, 0.081414823414554, 0.459292588292723,
    624                  0.459292588292723, 0.658861384496480, 0.170569307751760,
    625                  0.170569307751760, 0.898905543365938, 0.050547228317031,
    626                  0.050547228317031, 0.008394777409958, 0.008394777409958,
    627                  0.263112829634638, 0.728492392955404, 0.263112829634638,
    628                  0.728492392955404};
     467                0.333333333333333, 0.081414823414554, 0.459292588292723,
     468                0.459292588292723, 0.658861384496480, 0.170569307751760,
     469                0.170569307751760, 0.898905543365938, 0.050547228317031,
     470                0.050547228317031, 0.008394777409958, 0.008394777409958,
     471                0.263112829634638, 0.728492392955404, 0.263112829634638,
     472                0.728492392955404};
    629473        static double l28[]={
    630                  0.333333333333333, 0.459292588292723, 0.081414823414554,
    631                  0.459292588292723, 0.170569307751760, 0.658861384496480,
    632                  0.170569307751760, 0.050547228317031, 0.898905543365938,
    633                  0.050547228317031, 0.263112829634638, 0.728492392955404,
    634                  0.008394777409958, 0.008394777409958, 0.728492392955404,
    635                  0.263112829634638};
     474                0.333333333333333, 0.459292588292723, 0.081414823414554,
     475                0.459292588292723, 0.170569307751760, 0.658861384496480,
     476                0.170569307751760, 0.050547228317031, 0.898905543365938,
     477                0.050547228317031, 0.263112829634638, 0.728492392955404,
     478                0.008394777409958, 0.008394777409958, 0.728492392955404,
     479                0.263112829634638};
    636480        static double l38[]={
    637                  0.333333333333333, 0.459292588292723, 0.459292588292723,
    638                  0.081414823414554, 0.170569307751760, 0.170569307751760,
    639                  0.658861384496480, 0.050547228317031, 0.050547228317031,
    640                  0.898905543365938, 0.728492392955404, 0.263112829634638,
    641                  0.728492392955404, 0.263112829634638, 0.008394777409958,
    642                  0.008394777409958};
    643 
    644 /*  p= 9, npoint=19  */
    645 
     481                0.333333333333333, 0.459292588292723, 0.459292588292723,
     482                0.081414823414554, 0.170569307751760, 0.170569307751760,
     483                0.658861384496480, 0.050547228317031, 0.050547228317031,
     484                0.898905543365938, 0.728492392955404, 0.263112829634638,
     485                0.728492392955404, 0.263112829634638, 0.008394777409958,
     486                0.008394777409958};
     487        /*}}}2*/
     488        /*p= 9, npoint=19  {{{2*/
    646489        static double wgt9[]={
    647                  0.168244134395468, 0.054273292833345, 0.054273292833345,
    648                  0.054273292833345, 0.134801255248419, 0.134801255248419,
    649                  0.134801255248419, 0.137953930529909, 0.137953930529909,
    650                  0.137953930529909, 0.044301833780383, 0.044301833780383,
    651                  0.044301833780383, 0.074969289332873, 0.074969289332873,
    652                  0.074969289332873, 0.074969289332873, 0.074969289332873,
    653                  0.074969289332873};
     490                0.168244134395468, 0.054273292833345, 0.054273292833345,
     491                0.054273292833345, 0.134801255248419, 0.134801255248419,
     492                0.134801255248419, 0.137953930529909, 0.137953930529909,
     493                0.137953930529909, 0.044301833780383, 0.044301833780383,
     494                0.044301833780383, 0.074969289332873, 0.074969289332873,
     495                0.074969289332873, 0.074969289332873, 0.074969289332873,
     496                0.074969289332873};
    654497        static double l19[]={
    655                  0.333333333333333, 0.020634961602525, 0.489682519198738,
    656                  0.489682519198738, 0.125820817014127, 0.437089591492937,
    657                  0.437089591492937, 0.623592928761935, 0.188203535619033,
    658                  0.188203535619033, 0.910540973211095, 0.044729513394453,
    659                  0.044729513394453, 0.036838412054736, 0.036838412054736,
    660                  0.221962989160766, 0.741198598784498, 0.221962989160766,
    661                  0.741198598784498};
     498                0.333333333333333, 0.020634961602525, 0.489682519198738,
     499                0.489682519198738, 0.125820817014127, 0.437089591492937,
     500                0.437089591492937, 0.623592928761935, 0.188203535619033,
     501                0.188203535619033, 0.910540973211095, 0.044729513394453,
     502                0.044729513394453, 0.036838412054736, 0.036838412054736,
     503                0.221962989160766, 0.741198598784498, 0.221962989160766,
     504                0.741198598784498};
    662505        static double l29[]={
    663                  0.333333333333333, 0.489682519198738, 0.020634961602525,
    664                  0.489682519198738, 0.437089591492937, 0.125820817014127,
    665                  0.437089591492937, 0.188203535619033, 0.623592928761935,
    666                  0.188203535619033, 0.044729513394453, 0.910540973211095,
    667                  0.044729513394453, 0.221962989160766, 0.741198598784498,
    668                  0.036838412054736, 0.036838412054736, 0.741198598784498,
    669                  0.221962989160766};
     506                0.333333333333333, 0.489682519198738, 0.020634961602525,
     507                0.489682519198738, 0.437089591492937, 0.125820817014127,
     508                0.437089591492937, 0.188203535619033, 0.623592928761935,
     509                0.188203535619033, 0.044729513394453, 0.910540973211095,
     510                0.044729513394453, 0.221962989160766, 0.741198598784498,
     511                0.036838412054736, 0.036838412054736, 0.741198598784498,
     512                0.221962989160766};
    670513        static double l39[]={
    671                  0.333333333333333, 0.489682519198738, 0.489682519198738,
    672                  0.020634961602525, 0.437089591492937, 0.437089591492937,
    673                  0.125820817014127, 0.188203535619033, 0.188203535619033,
    674                  0.623592928761935, 0.044729513394453, 0.044729513394453,
    675                  0.910540973211095, 0.741198598784498, 0.221962989160766,
    676                  0.741198598784498, 0.221962989160766, 0.036838412054736,
    677                  0.036838412054736};
    678 
    679 /*  p=10, npoint=25  */
    680 
     514                0.333333333333333, 0.489682519198738, 0.489682519198738,
     515                0.020634961602525, 0.437089591492937, 0.437089591492937,
     516                0.125820817014127, 0.188203535619033, 0.188203535619033,
     517                0.623592928761935, 0.044729513394453, 0.044729513394453,
     518                0.910540973211095, 0.741198598784498, 0.221962989160766,
     519                0.741198598784498, 0.221962989160766, 0.036838412054736,
     520                0.036838412054736};
     521        /*}}}2*/
     522        /*p=10, npoint=25  {{{2*/
    681523        static double wgt10[]={
    682                  0.157301373584232, 0.063611224790829, 0.063611224790829,
    683                  0.063611224790829, 0.078498377595183, 0.078498377595183,
    684                  0.078498377595183, 0.126020408629139, 0.126020408629139,
    685                  0.126020408629139, 0.126020408629139, 0.126020408629139,
    686                  0.126020408629139, 0.049064223302117, 0.049064223302117,
    687                  0.049064223302117, 0.049064223302117, 0.049064223302117,
    688                  0.049064223302117, 0.016318805873179, 0.016318805873179,
    689                  0.016318805873179, 0.016318805873179, 0.016318805873179,
    690                  0.016318805873179};
     524                0.157301373584232, 0.063611224790829, 0.063611224790829,
     525                0.063611224790829, 0.078498377595183, 0.078498377595183,
     526                0.078498377595183, 0.126020408629139, 0.126020408629139,
     527                0.126020408629139, 0.126020408629139, 0.126020408629139,
     528                0.126020408629139, 0.049064223302117, 0.049064223302117,
     529                0.049064223302117, 0.049064223302117, 0.049064223302117,
     530                0.049064223302117, 0.016318805873179, 0.016318805873179,
     531                0.016318805873179, 0.016318805873179, 0.016318805873179,
     532                0.016318805873179};
    691533        static double l110[]={
    692                  0.333333333333333, 0.028844733232685, 0.485577633383657,
    693                  0.485577633383657, 0.781036849029926, 0.109481575485037,
    694                  0.109481575485037, 0.141707219414880, 0.141707219414880,
    695                  0.307939838764121, 0.550352941820999, 0.307939838764121,
    696                  0.550352941820999, 0.025003534762686, 0.025003534762686,
    697                  0.246672560639903, 0.728323904597411, 0.246672560639903,
    698                  0.728323904597411, 0.009540815400299, 0.009540815400299,
    699                  0.066803251012200, 0.923655933587500, 0.066803251012200,
    700                  0.923655933587500};
     534                0.333333333333333, 0.028844733232685, 0.485577633383657,
     535                0.485577633383657, 0.781036849029926, 0.109481575485037,
     536                0.109481575485037, 0.141707219414880, 0.141707219414880,
     537                0.307939838764121, 0.550352941820999, 0.307939838764121,
     538                0.550352941820999, 0.025003534762686, 0.025003534762686,
     539                0.246672560639903, 0.728323904597411, 0.246672560639903,
     540                0.728323904597411, 0.009540815400299, 0.009540815400299,
     541                0.066803251012200, 0.923655933587500, 0.066803251012200,
     542                0.923655933587500};
    701543        static double l210[]={
    702                  0.333333333333333, 0.485577633383657, 0.028844733232685,
    703                  0.485577633383657, 0.109481575485037, 0.781036849029926,
    704                  0.109481575485037, 0.307939838764121, 0.550352941820999,
    705                  0.141707219414880, 0.141707219414880, 0.550352941820999,
    706                  0.307939838764121, 0.246672560639903, 0.728323904597411,
    707                  0.025003534762686, 0.025003534762686, 0.728323904597411,
    708                  0.246672560639903, 0.066803251012200, 0.923655933587500,
    709                  0.009540815400299, 0.009540815400299, 0.923655933587500,
    710                  0.066803251012200};
     544                0.333333333333333, 0.485577633383657, 0.028844733232685,
     545                0.485577633383657, 0.109481575485037, 0.781036849029926,
     546                0.109481575485037, 0.307939838764121, 0.550352941820999,
     547                0.141707219414880, 0.141707219414880, 0.550352941820999,
     548                0.307939838764121, 0.246672560639903, 0.728323904597411,
     549                0.025003534762686, 0.025003534762686, 0.728323904597411,
     550                0.246672560639903, 0.066803251012200, 0.923655933587500,
     551                0.009540815400299, 0.009540815400299, 0.923655933587500,
     552                0.066803251012200};
    711553        static double l310[]={
    712                  0.333333333333333, 0.485577633383657, 0.485577633383657,
    713                  0.028844733232685, 0.109481575485037, 0.109481575485037,
    714                  0.781036849029926, 0.550352941820999, 0.307939838764121,
    715                  0.550352941820999, 0.307939838764121, 0.141707219414880,
    716                  0.141707219414880, 0.728323904597411, 0.246672560639903,
    717                  0.728323904597411, 0.246672560639903, 0.025003534762686,
    718                  0.025003534762686, 0.923655933587500, 0.066803251012200,
    719                  0.923655933587500, 0.066803251012200, 0.009540815400299,
    720                  0.009540815400299};
    721 
    722 /*  p=11, npoint=27  */
    723 
     554                0.333333333333333, 0.485577633383657, 0.485577633383657,
     555                0.028844733232685, 0.109481575485037, 0.109481575485037,
     556                0.781036849029926, 0.550352941820999, 0.307939838764121,
     557                0.550352941820999, 0.307939838764121, 0.141707219414880,
     558                0.141707219414880, 0.728323904597411, 0.246672560639903,
     559                0.728323904597411, 0.246672560639903, 0.025003534762686,
     560                0.025003534762686, 0.923655933587500, 0.066803251012200,
     561                0.923655933587500, 0.066803251012200, 0.009540815400299,
     562                0.009540815400299};
     563        /*}}}2*/
     564        /*p=11, npoint=27  {{{2*/
    724565        static double wgt11[]={
    725                  0.001605622060698, 0.001605622060698, 0.001605622060698,
    726                  0.133626914252765, 0.133626914252765, 0.133626914252765,
    727                  0.102750410879760, 0.102750410879760, 0.102750410879760,
    728                  0.062673462600454, 0.062673462600454, 0.062673462600454,
    729                  0.023659348114362, 0.023659348114362, 0.023659348114362,
    730                  0.090650537039958, 0.090650537039958, 0.090650537039958,
    731                  0.090650537039958, 0.090650537039958, 0.090650537039958,
    732                  0.035866718600836, 0.035866718600836, 0.035866718600836,
    733                  0.035866718600836, 0.035866718600836, 0.035866718600836};
     566                0.001605622060698, 0.001605622060698, 0.001605622060698,
     567                0.133626914252765, 0.133626914252765, 0.133626914252765,
     568                0.102750410879760, 0.102750410879760, 0.102750410879760,
     569                0.062673462600454, 0.062673462600454, 0.062673462600454,
     570                0.023659348114362, 0.023659348114362, 0.023659348114362,
     571                0.090650537039958, 0.090650537039958, 0.090650537039958,
     572                0.090650537039958, 0.090650537039958, 0.090650537039958,
     573                0.035866718600836, 0.035866718600836, 0.035866718600836,
     574                0.035866718600836, 0.035866718600836, 0.035866718600836};
    734575        static double l111[]={
    735576                -0.069222096541517, 0.534611048270758, 0.534611048270758,
    736                  0.202061394068290, 0.398969302965855, 0.398969302965855,
    737                  0.593380199137435, 0.203309900431282, 0.203309900431282,
    738                  0.761298175434837, 0.119350912282581, 0.119350912282581,
    739                  0.935270103777448, 0.032364948111276, 0.032364948111276,
    740                  0.050178138310495, 0.050178138310495, 0.356620648261293,
    741                  0.593201213428213, 0.356620648261293, 0.593201213428213,
    742                  0.021022016536166, 0.021022016536166, 0.171488980304042,
    743                  0.807489003159792, 0.171488980304042, 0.807489003159792};
     577                0.202061394068290, 0.398969302965855, 0.398969302965855,
     578                0.593380199137435, 0.203309900431282, 0.203309900431282,
     579                0.761298175434837, 0.119350912282581, 0.119350912282581,
     580                0.935270103777448, 0.032364948111276, 0.032364948111276,
     581                0.050178138310495, 0.050178138310495, 0.356620648261293,
     582                0.593201213428213, 0.356620648261293, 0.593201213428213,
     583                0.021022016536166, 0.021022016536166, 0.171488980304042,
     584                0.807489003159792, 0.171488980304042, 0.807489003159792};
    744585        static double l211[]={
    745                  0.534611048270758,-0.069222096541517, 0.534611048270758,
    746                  0.398969302965855, 0.202061394068290, 0.398969302965855,
    747                  0.203309900431282, 0.593380199137435, 0.203309900431282,
    748                  0.119350912282581, 0.761298175434837, 0.119350912282581,
    749                  0.032364948111276, 0.935270103777448, 0.032364948111276,
    750                  0.356620648261293, 0.593201213428213, 0.050178138310495,
    751                  0.050178138310495, 0.593201213428213, 0.356620648261293,
    752                  0.171488980304042, 0.807489003159792, 0.021022016536166,
    753                  0.021022016536166, 0.807489003159792, 0.171488980304042};
     586                0.534611048270758,-0.069222096541517, 0.534611048270758,
     587                0.398969302965855, 0.202061394068290, 0.398969302965855,
     588                0.203309900431282, 0.593380199137435, 0.203309900431282,
     589                0.119350912282581, 0.761298175434837, 0.119350912282581,
     590                0.032364948111276, 0.935270103777448, 0.032364948111276,
     591                0.356620648261293, 0.593201213428213, 0.050178138310495,
     592                0.050178138310495, 0.593201213428213, 0.356620648261293,
     593                0.171488980304042, 0.807489003159792, 0.021022016536166,
     594                0.021022016536166, 0.807489003159792, 0.171488980304042};
    754595        static double l311[]={
    755                  0.534611048270758, 0.534611048270758,-0.069222096541517,
    756                  0.398969302965855, 0.398969302965855, 0.202061394068290,
    757                  0.203309900431282, 0.203309900431282, 0.593380199137435,
    758                  0.119350912282581, 0.119350912282581, 0.761298175434837,
    759                  0.032364948111276, 0.032364948111276, 0.935270103777448,
    760                  0.593201213428213, 0.356620648261293, 0.593201213428213,
    761                  0.356620648261293, 0.050178138310495, 0.050178138310495,
    762                  0.807489003159792, 0.171488980304042, 0.807489003159792,
    763                  0.171488980304042, 0.021022016536166, 0.021022016536166};
    764 
    765 /*  p=12, npoint=33  */
    766 
     596                0.534611048270758, 0.534611048270758,-0.069222096541517,
     597                0.398969302965855, 0.398969302965855, 0.202061394068290,
     598                0.203309900431282, 0.203309900431282, 0.593380199137435,
     599                0.119350912282581, 0.119350912282581, 0.761298175434837,
     600                0.032364948111276, 0.032364948111276, 0.935270103777448,
     601                0.593201213428213, 0.356620648261293, 0.593201213428213,
     602                0.356620648261293, 0.050178138310495, 0.050178138310495,
     603                0.807489003159792, 0.171488980304042, 0.807489003159792,
     604                0.171488980304042, 0.021022016536166, 0.021022016536166};
     605        /*}}}2*/
     606        /*p=12, npoint=33  {{{2*/
    767607        static double wgt12[]={
    768                  0.044567514407799, 0.044567514407799, 0.044567514407799,
    769                  0.075677707051848, 0.075677707051848, 0.075677707051848,
    770                  0.108873638018933, 0.108873638018933, 0.108873638018933,
    771                  0.060268635501892, 0.060268635501892, 0.060268635501892,
    772                  0.010680277434033, 0.010680277434033, 0.010680277434033,
    773                  0.069925589232074, 0.069925589232074, 0.069925589232074,
    774                  0.069925589232074, 0.069925589232074, 0.069925589232074,
    775                  0.038723067079683, 0.038723067079683, 0.038723067079683,
    776                  0.038723067079683, 0.038723067079683, 0.038723067079683,
    777                  0.029992592075802, 0.029992592075802, 0.029992592075802,
    778                  0.029992592075802, 0.029992592075802, 0.029992592075802};
     608                0.044567514407799, 0.044567514407799, 0.044567514407799,
     609                0.075677707051848, 0.075677707051848, 0.075677707051848,
     610                0.108873638018933, 0.108873638018933, 0.108873638018933,
     611                0.060268635501892, 0.060268635501892, 0.060268635501892,
     612                0.010680277434033, 0.010680277434033, 0.010680277434033,
     613                0.069925589232074, 0.069925589232074, 0.069925589232074,
     614                0.069925589232074, 0.069925589232074, 0.069925589232074,
     615                0.038723067079683, 0.038723067079683, 0.038723067079683,
     616                0.038723067079683, 0.038723067079683, 0.038723067079683,
     617                0.029992592075802, 0.029992592075802, 0.029992592075802,
     618                0.029992592075802, 0.029992592075802, 0.029992592075802};
    779619        static double l112[]={
    780                  0.023565220452390, 0.488217389773805, 0.488217389773805,
    781                  0.120551215411079, 0.439724392294460, 0.439724392294460,
    782                  0.457579229975768, 0.271210385012116, 0.271210385012116,
    783                  0.744847708916828, 0.127576145541586, 0.127576145541586,
    784                  0.957365299093579, 0.021317350453210, 0.021317350453210,
    785                  0.115343494534698, 0.115343494534698, 0.275713269685514,
    786                  0.608943235779788, 0.275713269685514, 0.608943235779788,
    787                  0.022838332222257, 0.022838332222257, 0.281325580989940,
    788                  0.695836086787803, 0.281325580989940, 0.695836086787803,
    789                  0.025734050548330, 0.025734050548330, 0.116251915907597,
    790                  0.858014033544073, 0.116251915907597, 0.858014033544073};
     620                0.023565220452390, 0.488217389773805, 0.488217389773805,
     621                0.120551215411079, 0.439724392294460, 0.439724392294460,
     622                0.457579229975768, 0.271210385012116, 0.271210385012116,
     623                0.744847708916828, 0.127576145541586, 0.127576145541586,
     624                0.957365299093579, 0.021317350453210, 0.021317350453210,
     625                0.115343494534698, 0.115343494534698, 0.275713269685514,
     626                0.608943235779788, 0.275713269685514, 0.608943235779788,
     627                0.022838332222257, 0.022838332222257, 0.281325580989940,
     628                0.695836086787803, 0.281325580989940, 0.695836086787803,
     629                0.025734050548330, 0.025734050548330, 0.116251915907597,
     630                0.858014033544073, 0.116251915907597, 0.858014033544073};
    791631        static double l212[]={
    792                  0.488217389773805, 0.023565220452390, 0.488217389773805,
    793                  0.439724392294460, 0.120551215411079, 0.439724392294460,
    794                  0.271210385012116, 0.457579229975768, 0.271210385012116,
    795                  0.127576145541586, 0.744847708916828, 0.127576145541586,
    796                  0.021317350453210, 0.957365299093579, 0.021317350453210,
    797                  0.275713269685514, 0.608943235779788, 0.115343494534698,
    798                  0.115343494534698, 0.608943235779788, 0.275713269685514,
    799                  0.281325580989940, 0.695836086787803, 0.022838332222257,
    800                  0.022838332222257, 0.695836086787803, 0.281325580989940,
    801                  0.116251915907597, 0.858014033544073, 0.025734050548330,
    802                  0.025734050548330, 0.858014033544073, 0.116251915907597};
     632                0.488217389773805, 0.023565220452390, 0.488217389773805,
     633                0.439724392294460, 0.120551215411079, 0.439724392294460,
     634                0.271210385012116, 0.457579229975768, 0.271210385012116,
     635                0.127576145541586, 0.744847708916828, 0.127576145541586,
     636                0.021317350453210, 0.957365299093579, 0.021317350453210,
     637                0.275713269685514, 0.608943235779788, 0.115343494534698,
     638                0.115343494534698, 0.608943235779788, 0.275713269685514,
     639                0.281325580989940, 0.695836086787803, 0.022838332222257,
     640                0.022838332222257, 0.695836086787803, 0.281325580989940,
     641                0.116251915907597, 0.858014033544073, 0.025734050548330,
     642                0.025734050548330, 0.858014033544073, 0.116251915907597};
    803643        static double l312[]={
    804                  0.488217389773805, 0.488217389773805, 0.023565220452390,
    805                  0.439724392294460, 0.439724392294460, 0.120551215411079,
    806                  0.271210385012116, 0.271210385012116, 0.457579229975768,
    807                  0.127576145541586, 0.127576145541586, 0.744847708916828,
    808                  0.021317350453210, 0.021317350453210, 0.957365299093579,
    809                  0.608943235779788, 0.275713269685514, 0.608943235779788,
    810                  0.275713269685514, 0.115343494534698, 0.115343494534698,
    811                  0.695836086787803, 0.281325580989940, 0.695836086787803,
    812                  0.281325580989940, 0.022838332222257, 0.022838332222257,
    813                  0.858014033544073, 0.116251915907597, 0.858014033544073,
    814                  0.116251915907597, 0.025734050548330, 0.025734050548330};
    815 
    816 /*  p=13, npoint=37  */
    817 
     644                0.488217389773805, 0.488217389773805, 0.023565220452390,
     645                0.439724392294460, 0.439724392294460, 0.120551215411079,
     646                0.271210385012116, 0.271210385012116, 0.457579229975768,
     647                0.127576145541586, 0.127576145541586, 0.744847708916828,
     648                0.021317350453210, 0.021317350453210, 0.957365299093579,
     649                0.608943235779788, 0.275713269685514, 0.608943235779788,
     650                0.275713269685514, 0.115343494534698, 0.115343494534698,
     651                0.695836086787803, 0.281325580989940, 0.695836086787803,
     652                0.281325580989940, 0.022838332222257, 0.022838332222257,
     653                0.858014033544073, 0.116251915907597, 0.858014033544073,
     654                0.116251915907597, 0.025734050548330, 0.025734050548330};
     655        /*}}}2*/
     656        /*  p=13, npoint=37  {{{2*/
    818657        static double wgt13[]={
    819                  0.090968907790622, 0.019537784619314, 0.019537784619314,
    820                  0.019537784619314, 0.054427130356344, 0.054427130356344,
    821                  0.054427130356344, 0.081531965976677, 0.081531965976677,
    822                  0.081531965976677, 0.082036138309652, 0.082036138309652,
    823                  0.082036138309652, 0.053983743853694, 0.053983743853694,
    824                  0.053983743853694, 0.013814441407066, 0.013814441407066,
    825                  0.013814441407066, 0.063823305703923, 0.063823305703923,
    826                  0.063823305703923, 0.063823305703923, 0.063823305703923,
    827                  0.063823305703923, 0.030140218568265, 0.030140218568265,
    828                  0.030140218568265, 0.030140218568265, 0.030140218568265,
    829                  0.030140218568265, 0.026884523429480, 0.026884523429480,
    830                  0.026884523429480, 0.026884523429480, 0.026884523429480,
    831                  0.026884523429480};
     658                0.090968907790622, 0.019537784619314, 0.019537784619314,
     659                0.019537784619314, 0.054427130356344, 0.054427130356344,
     660                0.054427130356344, 0.081531965976677, 0.081531965976677,
     661                0.081531965976677, 0.082036138309652, 0.082036138309652,
     662                0.082036138309652, 0.053983743853694, 0.053983743853694,
     663                0.053983743853694, 0.013814441407066, 0.013814441407066,
     664                0.013814441407066, 0.063823305703923, 0.063823305703923,
     665                0.063823305703923, 0.063823305703923, 0.063823305703923,
     666                0.063823305703923, 0.030140218568265, 0.030140218568265,
     667                0.030140218568265, 0.030140218568265, 0.030140218568265,
     668                0.030140218568265, 0.026884523429480, 0.026884523429480,
     669                0.026884523429480, 0.026884523429480, 0.026884523429480,
     670                0.026884523429480};
    832671        static double l113[]={
    833                  0.333333333333333, 0.009903630120591, 0.495048184939705,
    834                  0.495048184939705, 0.062566729780852, 0.468716635109574,
    835                  0.468716635109574, 0.170957326397447, 0.414521336801277,
    836                  0.414521336801277, 0.541200855914337, 0.229399572042831,
    837                  0.229399572042831, 0.771151009607340, 0.114424495196330,
    838                  0.114424495196330, 0.950377217273082, 0.024811391363459,
    839                  0.024811391363459, 0.094853828379579, 0.094853828379579,
    840                  0.268794997058761, 0.636351174561660, 0.268794997058761,
    841                  0.636351174561660, 0.018100773278807, 0.018100773278807,
    842                  0.291730066734288, 0.690169159986905, 0.291730066734288,
    843                  0.690169159986905, 0.022233076674090, 0.022233076674090,
    844                  0.126357385491669, 0.851409537834241, 0.126357385491669,
    845                  0.851409537834241};
     672                0.333333333333333, 0.009903630120591, 0.495048184939705,
     673                0.495048184939705, 0.062566729780852, 0.468716635109574,
     674                0.468716635109574, 0.170957326397447, 0.414521336801277,
     675                0.414521336801277, 0.541200855914337, 0.229399572042831,
     676                0.229399572042831, 0.771151009607340, 0.114424495196330,
     677                0.114424495196330, 0.950377217273082, 0.024811391363459,
     678                0.024811391363459, 0.094853828379579, 0.094853828379579,
     679                0.268794997058761, 0.636351174561660, 0.268794997058761,
     680                0.636351174561660, 0.018100773278807, 0.018100773278807,
     681                0.291730066734288, 0.690169159986905, 0.291730066734288,
     682                0.690169159986905, 0.022233076674090, 0.022233076674090,
     683                0.126357385491669, 0.851409537834241, 0.126357385491669,
     684                0.851409537834241};
    846685        static double l213[]={
    847                  0.333333333333333, 0.495048184939705, 0.009903630120591,
    848                  0.495048184939705, 0.468716635109574, 0.062566729780852,
    849                  0.468716635109574, 0.414521336801277, 0.170957326397447,
    850                  0.414521336801277, 0.229399572042831, 0.541200855914337,
    851                  0.229399572042831, 0.114424495196330, 0.771151009607340,
    852                  0.114424495196330, 0.024811391363459, 0.950377217273082,
    853                  0.024811391363459, 0.268794997058761, 0.636351174561660,
    854                  0.094853828379579, 0.094853828379579, 0.636351174561660,
    855                  0.268794997058761, 0.291730066734288, 0.690169159986905,
    856                  0.018100773278807, 0.018100773278807, 0.690169159986905,
    857                  0.291730066734288, 0.126357385491669, 0.851409537834241,
    858                  0.022233076674090, 0.022233076674090, 0.851409537834241,
    859                  0.126357385491669};
     686                0.333333333333333, 0.495048184939705, 0.009903630120591,
     687                0.495048184939705, 0.468716635109574, 0.062566729780852,
     688                0.468716635109574, 0.414521336801277, 0.170957326397447,
     689                0.414521336801277, 0.229399572042831, 0.541200855914337,
     690                0.229399572042831, 0.114424495196330, 0.771151009607340,
     691                0.114424495196330, 0.024811391363459, 0.950377217273082,
     692                0.024811391363459, 0.268794997058761, 0.636351174561660,
     693                0.094853828379579, 0.094853828379579, 0.636351174561660,
     694                0.268794997058761, 0.291730066734288, 0.690169159986905,
     695                0.018100773278807, 0.018100773278807, 0.690169159986905,
     696                0.291730066734288, 0.126357385491669, 0.851409537834241,
     697                0.022233076674090, 0.022233076674090, 0.851409537834241,
     698                0.126357385491669};
    860699        static double l313[]={
    861                  0.333333333333333, 0.495048184939705, 0.495048184939705,
    862                  0.009903630120591, 0.468716635109574, 0.468716635109574,
    863                  0.062566729780852, 0.414521336801277, 0.414521336801277,
    864                  0.170957326397447, 0.229399572042831, 0.229399572042831,
    865                  0.541200855914337, 0.114424495196330, 0.114424495196330,
    866                  0.771151009607340, 0.024811391363459, 0.024811391363459,
    867                  0.950377217273082, 0.636351174561660, 0.268794997058761,
    868                  0.636351174561660, 0.268794997058761, 0.094853828379579,
    869                  0.094853828379579, 0.690169159986905, 0.291730066734288,
    870                  0.690169159986905, 0.291730066734288, 0.018100773278807,
    871                  0.018100773278807, 0.851409537834241, 0.126357385491669,
    872                  0.851409537834241, 0.126357385491669, 0.022233076674090,
    873                  0.022233076674090};
    874 
    875 /*  p=14, npoint=42  */
    876 
     700                0.333333333333333, 0.495048184939705, 0.495048184939705,
     701                0.009903630120591, 0.468716635109574, 0.468716635109574,
     702                0.062566729780852, 0.414521336801277, 0.414521336801277,
     703                0.170957326397447, 0.229399572042831, 0.229399572042831,
     704                0.541200855914337, 0.114424495196330, 0.114424495196330,
     705                0.771151009607340, 0.024811391363459, 0.024811391363459,
     706                0.950377217273082, 0.636351174561660, 0.268794997058761,
     707                0.636351174561660, 0.268794997058761, 0.094853828379579,
     708                0.094853828379579, 0.690169159986905, 0.291730066734288,
     709                0.690169159986905, 0.291730066734288, 0.018100773278807,
     710                0.018100773278807, 0.851409537834241, 0.126357385491669,
     711                0.851409537834241, 0.126357385491669, 0.022233076674090,
     712                0.022233076674090};
     713        /*}}}2*/
     714        /*p=14, npoint=42{{{2*/
    877715        static double wgt14[]={
    878                  0.037903474783419, 0.037903474783419, 0.037903474783419,
    879                  0.056791094234956, 0.056791094234956, 0.056791094234956,
    880                  0.089675379523011, 0.089675379523011, 0.089675379523011,
    881                  0.073027745871103, 0.073027745871103, 0.073027745871103,
    882                  0.024999901169244, 0.024999901169244, 0.024999901169244,
    883                  0.008527585185524, 0.008527585185524, 0.008527585185524,
    884                  0.042722337771116, 0.042722337771116, 0.042722337771116,
    885                  0.042722337771116, 0.042722337771116, 0.042722337771116,
    886                  0.066807816407881, 0.066807816407881, 0.066807816407881,
    887                  0.066807816407881, 0.066807816407881, 0.066807816407881,
    888                  0.025004419126360, 0.025004419126360, 0.025004419126360,
    889                  0.025004419126360, 0.025004419126360, 0.025004419126360,
    890                  0.008677970905831, 0.008677970905831, 0.008677970905831,
    891                  0.008677970905831, 0.008677970905831, 0.008677970905831};
     716                0.037903474783419, 0.037903474783419, 0.037903474783419,
     717                0.056791094234956, 0.056791094234956, 0.056791094234956,
     718                0.089675379523011, 0.089675379523011, 0.089675379523011,
     719                0.073027745871103, 0.073027745871103, 0.073027745871103,
     720                0.024999901169244, 0.024999901169244, 0.024999901169244,
     721                0.008527585185524, 0.008527585185524, 0.008527585185524,
     722                0.042722337771116, 0.042722337771116, 0.042722337771116,
     723                0.042722337771116, 0.042722337771116, 0.042722337771116,
     724                0.066807816407881, 0.066807816407881, 0.066807816407881,
     725                0.066807816407881, 0.066807816407881, 0.066807816407881,
     726                0.025004419126360, 0.025004419126360, 0.025004419126360,
     727                0.025004419126360, 0.025004419126360, 0.025004419126360,
     728                0.008677970905831, 0.008677970905831, 0.008677970905831,
     729                0.008677970905831, 0.008677970905831, 0.008677970905831};
    892730        static double l114[]={
    893                  0.022072179275643, 0.488963910362179, 0.488963910362179,
    894                  0.164710561319092, 0.417644719340454, 0.417644719340454,
    895                  0.453044943382323, 0.273477528308839, 0.273477528308839,
    896                  0.645588935174913, 0.177205532412543, 0.177205532412543,
    897                  0.876400233818255, 0.061799883090873, 0.061799883090873,
    898                  0.961218077502598, 0.019390961248701, 0.019390961248701,
    899                  0.057124757403648, 0.057124757403648, 0.172266687821356,
    900                  0.770608554774996, 0.172266687821356, 0.770608554774996,
    901                  0.092916249356972, 0.092916249356972, 0.336861459796345,
    902                  0.570222290846683, 0.336861459796345, 0.570222290846683,
    903                  0.014646950055654, 0.014646950055654, 0.298372882136258,
    904                  0.686980167808088, 0.298372882136258, 0.686980167808088,
    905                  0.001268330932872, 0.001268330932872, 0.118974497696957,
    906                  0.879757171370171, 0.118974497696957, 0.879757171370171};
     731                0.022072179275643, 0.488963910362179, 0.488963910362179,
     732                0.164710561319092, 0.417644719340454, 0.417644719340454,
     733                0.453044943382323, 0.273477528308839, 0.273477528308839,
     734                0.645588935174913, 0.177205532412543, 0.177205532412543,
     735                0.876400233818255, 0.061799883090873, 0.061799883090873,
     736                0.961218077502598, 0.019390961248701, 0.019390961248701,
     737                0.057124757403648, 0.057124757403648, 0.172266687821356,
     738                0.770608554774996, 0.172266687821356, 0.770608554774996,
     739                0.092916249356972, 0.092916249356972, 0.336861459796345,
     740                0.570222290846683, 0.336861459796345, 0.570222290846683,
     741                0.014646950055654, 0.014646950055654, 0.298372882136258,
     742                0.686980167808088, 0.298372882136258, 0.686980167808088,
     743                0.001268330932872, 0.001268330932872, 0.118974497696957,
     744                0.879757171370171, 0.118974497696957, 0.879757171370171};
    907745        static double l214[]={
    908                  0.488963910362179, 0.022072179275643, 0.488963910362179,
    909                  0.417644719340454, 0.164710561319092, 0.417644719340454,
    910                  0.273477528308839, 0.453044943382323, 0.273477528308839,
    911                  0.177205532412543, 0.645588935174913, 0.177205532412543,
    912                  0.061799883090873, 0.876400233818255, 0.061799883090873,
    913                  0.019390961248701, 0.961218077502598, 0.019390961248701,
    914                  0.172266687821356, 0.770608554774996, 0.057124757403648,
    915                  0.057124757403648, 0.770608554774996, 0.172266687821356,
    916                  0.336861459796345, 0.570222290846683, 0.092916249356972,
    917                  0.092916249356972, 0.570222290846683, 0.336861459796345,
    918                  0.298372882136258, 0.686980167808088, 0.014646950055654,
    919                  0.014646950055654, 0.686980167808088, 0.298372882136258,
    920                  0.118974497696957, 0.879757171370171, 0.001268330932872,
    921                  0.001268330932872, 0.879757171370171, 0.118974497696957};
     746                0.488963910362179, 0.022072179275643, 0.488963910362179,
     747                0.417644719340454, 0.164710561319092, 0.417644719340454,
     748                0.273477528308839, 0.453044943382323, 0.273477528308839,
     749                0.177205532412543, 0.645588935174913, 0.177205532412543,
     750                0.061799883090873, 0.876400233818255, 0.061799883090873,
     751                0.019390961248701, 0.961218077502598, 0.019390961248701,
     752                0.172266687821356, 0.770608554774996, 0.057124757403648,
     753                0.057124757403648, 0.770608554774996, 0.172266687821356,
     754                0.336861459796345, 0.570222290846683, 0.092916249356972,
     755                0.092916249356972, 0.570222290846683, 0.336861459796345,
     756                0.298372882136258, 0.686980167808088, 0.014646950055654,
     757                0.014646950055654, 0.686980167808088, 0.298372882136258,
     758                0.118974497696957, 0.879757171370171, 0.001268330932872,
     759                0.001268330932872, 0.879757171370171, 0.118974497696957};
    922760        static double l314[]={
    923                  0.488963910362179, 0.488963910362179, 0.022072179275643,
    924                  0.417644719340454, 0.417644719340454, 0.164710561319092,
    925                  0.273477528308839, 0.273477528308839, 0.453044943382323,
    926                  0.177205532412543, 0.177205532412543, 0.645588935174913,
    927                  0.061799883090873, 0.061799883090873, 0.876400233818255,
    928                  0.019390961248701, 0.019390961248701, 0.961218077502598,
    929                  0.770608554774996, 0.172266687821356, 0.770608554774996,
    930                  0.172266687821356, 0.057124757403648, 0.057124757403648,
    931                  0.570222290846683, 0.336861459796345, 0.570222290846683,
    932                  0.336861459796345, 0.092916249356972, 0.092916249356972,
    933                  0.686980167808088, 0.298372882136258, 0.686980167808088,
    934                  0.298372882136258, 0.014646950055654, 0.014646950055654,
    935                  0.879757171370171, 0.118974497696957, 0.879757171370171,
    936                  0.118974497696957, 0.001268330932872, 0.001268330932872};
    937 
    938 /*  p=15, npoint=48  */
    939 
     761                0.488963910362179, 0.488963910362179, 0.022072179275643,
     762                0.417644719340454, 0.417644719340454, 0.164710561319092,
     763                0.273477528308839, 0.273477528308839, 0.453044943382323,
     764                0.177205532412543, 0.177205532412543, 0.645588935174913,
     765                0.061799883090873, 0.061799883090873, 0.876400233818255,
     766                0.019390961248701, 0.019390961248701, 0.961218077502598,
     767                0.770608554774996, 0.172266687821356, 0.770608554774996,
     768                0.172266687821356, 0.057124757403648, 0.057124757403648,
     769                0.570222290846683, 0.336861459796345, 0.570222290846683,
     770                0.336861459796345, 0.092916249356972, 0.092916249356972,
     771                0.686980167808088, 0.298372882136258, 0.686980167808088,
     772                0.298372882136258, 0.014646950055654, 0.014646950055654,
     773                0.879757171370171, 0.118974497696957, 0.879757171370171,
     774                0.118974497696957, 0.001268330932872, 0.001268330932872};
     775        /*}}}2*/
     776        /*p=15, npoint=48{{{2*/
    940777        static double wgt15[]={
    941                  0.003320126005206, 0.003320126005206, 0.003320126005206,
    942                  0.076641563419124, 0.076641563419124, 0.076641563419124,
    943                  0.088657703045151, 0.088657703045151, 0.088657703045151,
    944                  0.041028362044303, 0.041028362044303, 0.041028362044303,
    945                  0.023018566716310, 0.023018566716310, 0.023018566716310,
    946                  0.008225364846296, 0.008225364846296, 0.008225364846296,
    947                  0.066770684377964, 0.066770684377964, 0.066770684377964,
    948                  0.066770684377964, 0.066770684377964, 0.066770684377964,
    949                  0.047139173172681, 0.047139173172681, 0.047139173172681,
    950                  0.047139173172681, 0.047139173172681, 0.047139173172681,
    951                  0.003779468865339, 0.003779468865339, 0.003779468865339,
    952                  0.003779468865339, 0.003779468865339, 0.003779468865339,
    953                  0.037248306609289, 0.037248306609289, 0.037248306609289,
    954                  0.037248306609289, 0.037248306609289, 0.037248306609289,
    955                  0.013291658531346, 0.013291658531346, 0.013291658531346,
    956                  0.013291658531346, 0.013291658531346, 0.013291658531346};
     778                0.003320126005206, 0.003320126005206, 0.003320126005206,
     779                0.076641563419124, 0.076641563419124, 0.076641563419124,
     780                0.088657703045151, 0.088657703045151, 0.088657703045151,
     781                0.041028362044303, 0.041028362044303, 0.041028362044303,
     782                0.023018566716310, 0.023018566716310, 0.023018566716310,
     783                0.008225364846296, 0.008225364846296, 0.008225364846296,
     784                0.066770684377964, 0.066770684377964, 0.066770684377964,
     785                0.066770684377964, 0.066770684377964, 0.066770684377964,
     786                0.047139173172681, 0.047139173172681, 0.047139173172681,
     787                0.047139173172681, 0.047139173172681, 0.047139173172681,
     788                0.003779468865339, 0.003779468865339, 0.003779468865339,
     789                0.003779468865339, 0.003779468865339, 0.003779468865339,
     790                0.037248306609289, 0.037248306609289, 0.037248306609289,
     791                0.037248306609289, 0.037248306609289, 0.037248306609289,
     792                0.013291658531346, 0.013291658531346, 0.013291658531346,
     793                0.013291658531346, 0.013291658531346, 0.013291658531346};
    957794        static double l115[]={
    958795                -0.013945833716486, 0.506972916858243, 0.506972916858243,
    959                  0.137187291433955, 0.431406354283023, 0.431406354283023,
    960                  0.444612710305711, 0.277693644847144, 0.277693644847144,
    961                  0.747070217917492, 0.126464891041254, 0.126464891041254,
    962                  0.858383228050628, 0.070808385974686, 0.070808385974686,
    963                  0.962069659517853, 0.018965170241073, 0.018965170241073,
    964                  0.133734161966621, 0.133734161966621, 0.261311371140087,
    965                  0.604954466893291, 0.261311371140087, 0.604954466893291,
    966                  0.036366677396917, 0.036366677396917, 0.388046767090269,
    967                  0.575586555512814, 0.388046767090269, 0.575586555512814,
     796                0.137187291433955, 0.431406354283023, 0.431406354283023,
     797                0.444612710305711, 0.277693644847144, 0.277693644847144,
     798                0.747070217917492, 0.126464891041254, 0.126464891041254,
     799                0.858383228050628, 0.070808385974686, 0.070808385974686,
     800                0.962069659517853, 0.018965170241073, 0.018965170241073,
     801                0.133734161966621, 0.133734161966621, 0.261311371140087,
     802                0.604954466893291, 0.261311371140087, 0.604954466893291,
     803                0.036366677396917, 0.036366677396917, 0.388046767090269,
     804                0.575586555512814, 0.388046767090269, 0.575586555512814,
    968805                -0.010174883126571,-0.010174883126571, 0.285712220049916,
    969                  0.724462663076655, 0.285712220049916, 0.724462663076655,
    970                  0.036843869875878, 0.036843869875878, 0.215599664072284,
    971                  0.747556466051838, 0.215599664072284, 0.747556466051838,
    972                  0.012459809331199, 0.012459809331199, 0.103575616576386,
    973                  0.883964574092416, 0.103575616576386, 0.883964574092416};
     806                0.724462663076655, 0.285712220049916, 0.724462663076655,
     807                0.036843869875878, 0.036843869875878, 0.215599664072284,
     808                0.747556466051838, 0.215599664072284, 0.747556466051838,
     809                0.012459809331199, 0.012459809331199, 0.103575616576386,
     810                0.883964574092416, 0.103575616576386, 0.883964574092416};
    974811        static double l215[]={
    975                  0.506972916858243,-0.013945833716486, 0.506972916858243,
    976                  0.431406354283023, 0.137187291433955, 0.431406354283023,
    977                  0.277693644847144, 0.444612710305711, 0.277693644847144,
    978                  0.126464891041254, 0.747070217917492, 0.126464891041254,
    979                  0.070808385974686, 0.858383228050628, 0.070808385974686,
    980                  0.018965170241073, 0.962069659517853, 0.018965170241073,
    981                  0.261311371140087, 0.604954466893291, 0.133734161966621,
    982                  0.133734161966621, 0.604954466893291, 0.261311371140087,
    983                  0.388046767090269, 0.575586555512814, 0.036366677396917,
    984                  0.036366677396917, 0.575586555512814, 0.388046767090269,
    985                  0.285712220049916, 0.724462663076655,-0.010174883126571,
     812                0.506972916858243,-0.013945833716486, 0.506972916858243,
     813                0.431406354283023, 0.137187291433955, 0.431406354283023,
     814                0.277693644847144, 0.444612710305711, 0.277693644847144,
     815                0.126464891041254, 0.747070217917492, 0.126464891041254,
     816                0.070808385974686, 0.858383228050628, 0.070808385974686,
     817                0.018965170241073, 0.962069659517853, 0.018965170241073,
     818                0.261311371140087, 0.604954466893291, 0.133734161966621,
     819                0.133734161966621, 0.604954466893291, 0.261311371140087,
     820                0.388046767090269, 0.575586555512814, 0.036366677396917,
     821                0.036366677396917, 0.575586555512814, 0.388046767090269,
     822                0.285712220049916, 0.724462663076655,-0.010174883126571,
    986823                -0.010174883126571, 0.724462663076655, 0.285712220049916,
    987                  0.215599664072284, 0.747556466051838, 0.036843869875878,
    988                  0.036843869875878, 0.747556466051838, 0.215599664072284,
    989                  0.103575616576386, 0.883964574092416, 0.012459809331199,
    990                  0.012459809331199, 0.883964574092416, 0.103575616576386};
     824                0.215599664072284, 0.747556466051838, 0.036843869875878,
     825                0.036843869875878, 0.747556466051838, 0.215599664072284,
     826                0.103575616576386, 0.883964574092416, 0.012459809331199,
     827                0.012459809331199, 0.883964574092416, 0.103575616576386};
    991828        static double l315[]={
    992                  0.506972916858243, 0.506972916858243,-0.013945833716486,
    993                  0.431406354283023, 0.431406354283023, 0.137187291433955,
    994                  0.277693644847144, 0.277693644847144, 0.444612710305711,
    995                  0.126464891041254, 0.126464891041254, 0.747070217917492,
    996                  0.070808385974686, 0.070808385974686, 0.858383228050628,
    997                  0.018965170241073, 0.018965170241073, 0.962069659517853,
    998                  0.604954466893291, 0.261311371140087, 0.604954466893291,
    999                  0.261311371140087, 0.133734161966621, 0.133734161966621,
    1000                  0.575586555512814, 0.388046767090269, 0.575586555512814,
    1001                  0.388046767090269, 0.036366677396917, 0.036366677396917,
    1002                  0.724462663076655, 0.285712220049916, 0.724462663076655,
    1003                  0.285712220049916,-0.010174883126571,-0.010174883126571,
    1004                  0.747556466051838, 0.215599664072284, 0.747556466051838,
    1005                  0.215599664072284, 0.036843869875878, 0.036843869875878,
    1006                  0.883964574092416, 0.103575616576386, 0.883964574092416,
    1007                  0.103575616576386, 0.012459809331199, 0.012459809331199};
    1008 
    1009 /*  p=16, npoint=52  */
    1010 
     829                0.506972916858243, 0.506972916858243,-0.013945833716486,
     830                0.431406354283023, 0.431406354283023, 0.137187291433955,
     831                0.277693644847144, 0.277693644847144, 0.444612710305711,
     832                0.126464891041254, 0.126464891041254, 0.747070217917492,
     833                0.070808385974686, 0.070808385974686, 0.858383228050628,
     834                0.018965170241073, 0.018965170241073, 0.962069659517853,
     835                0.604954466893291, 0.261311371140087, 0.604954466893291,
     836                0.261311371140087, 0.133734161966621, 0.133734161966621,
     837                0.575586555512814, 0.388046767090269, 0.575586555512814,
     838                0.388046767090269, 0.036366677396917, 0.036366677396917,
     839                0.724462663076655, 0.285712220049916, 0.724462663076655,
     840                0.285712220049916,-0.010174883126571,-0.010174883126571,
     841                0.747556466051838, 0.215599664072284, 0.747556466051838,
     842                0.215599664072284, 0.036843869875878, 0.036843869875878,
     843                0.883964574092416, 0.103575616576386, 0.883964574092416,
     844                0.103575616576386, 0.012459809331199, 0.012459809331199};
     845        /*}}}2*/
     846        /*p=16, npoint=52  {{{2*/
    1011847        static double wgt16[]={
    1012                  0.081191089584902, 0.011095307165226, 0.011095307165226,
    1013                  0.011095307165226, 0.072244353151393, 0.072244353151393,
    1014                  0.072244353151393, 0.046577417012049, 0.046577417012049,
    1015                  0.046577417012049, 0.072975670074230, 0.072975670074230,
    1016                  0.072975670074230, 0.051961986412307, 0.051961986412307,
    1017                  0.051961986412307, 0.024595292810646, 0.024595292810646,
    1018                  0.024595292810646, 0.006205006808607, 0.006205006808607,
    1019                  0.006205006808607, 0.056764756525753, 0.056764756525753,
    1020                  0.056764756525753, 0.056764756525753, 0.056764756525753,
    1021                  0.056764756525753, 0.026497443692048, 0.026497443692048,
    1022                  0.026497443692048, 0.026497443692048, 0.026497443692048,
    1023                  0.026497443692048, 0.004133096181263, 0.004133096181263,
    1024                  0.004133096181263, 0.004133096181263, 0.004133096181263,
    1025                  0.004133096181263, 0.033055830705140, 0.033055830705140,
    1026                  0.033055830705140, 0.033055830705140, 0.033055830705140,
    1027                  0.033055830705140, 0.011864642509229, 0.011864642509229,
    1028                  0.011864642509229, 0.011864642509229, 0.011864642509229,
    1029                  0.011864642509229};
     848                0.081191089584902, 0.011095307165226, 0.011095307165226,
     849                0.011095307165226, 0.072244353151393, 0.072244353151393,
     850                0.072244353151393, 0.046577417012049, 0.046577417012049,
     851                0.046577417012049, 0.072975670074230, 0.072975670074230,
     852                0.072975670074230, 0.051961986412307, 0.051961986412307,
     853                0.051961986412307, 0.024595292810646, 0.024595292810646,
     854                0.024595292810646, 0.006205006808607, 0.006205006808607,
     855                0.006205006808607, 0.056764756525753, 0.056764756525753,
     856                0.056764756525753, 0.056764756525753, 0.056764756525753,
     857                0.056764756525753, 0.026497443692048, 0.026497443692048,
     858                0.026497443692048, 0.026497443692048, 0.026497443692048,
     859                0.026497443692048, 0.004133096181263, 0.004133096181263,
     860                0.004133096181263, 0.004133096181263, 0.004133096181263,
     861                0.004133096181263, 0.033055830705140, 0.033055830705140,
     862                0.033055830705140, 0.033055830705140, 0.033055830705140,
     863                0.033055830705140, 0.011864642509229, 0.011864642509229,
     864                0.011864642509229, 0.011864642509229, 0.011864642509229,
     865                0.011864642509229};
    1030866        static double l116[]={
    1031                  0.333333333333333, 0.005238916103123, 0.497380541948438,
    1032                  0.497380541948438, 0.173061122901295, 0.413469438549352,
    1033                  0.413469438549352, 0.059082801866017, 0.470458599066991,
    1034                  0.470458599066991, 0.518892500060958, 0.240553749969521,
    1035                  0.240553749969521, 0.704068411554854, 0.147965794222573,
    1036                  0.147965794222573, 0.849069624685052, 0.075465187657474,
    1037                  0.075465187657474, 0.966807194753950, 0.016596402623025,
    1038                  0.016596402623025, 0.103575692245252, 0.103575692245252,
    1039                  0.296555596579887, 0.599868711174861, 0.296555596579887,
    1040                  0.599868711174861, 0.020083411655416, 0.020083411655416,
    1041                  0.337723063403079, 0.642193524941505, 0.337723063403079,
    1042                  0.642193524941505,-0.004341002614139,-0.004341002614139,
    1043                  0.204748281642812, 0.799592720971327, 0.204748281642812,
    1044                  0.799592720971327, 0.041941786468010, 0.041941786468010,
    1045                  0.189358492130623, 0.768699721401368, 0.189358492130623,
    1046                  0.768699721401368, 0.014317320230681, 0.014317320230681,
    1047                  0.085283615682657, 0.900399064086661, 0.085283615682657,
    1048                  0.900399064086661};
     867                0.333333333333333, 0.005238916103123, 0.497380541948438,
     868                0.497380541948438, 0.173061122901295, 0.413469438549352,
     869                0.413469438549352, 0.059082801866017, 0.470458599066991,
     870                0.470458599066991, 0.518892500060958, 0.240553749969521,
     871                0.240553749969521, 0.704068411554854, 0.147965794222573,
     872                0.147965794222573, 0.849069624685052, 0.075465187657474,
     873                0.075465187657474, 0.966807194753950, 0.016596402623025,
     874                0.016596402623025, 0.103575692245252, 0.103575692245252,
     875                0.296555596579887, 0.599868711174861, 0.296555596579887,
     876                0.599868711174861, 0.020083411655416, 0.020083411655416,
     877                0.337723063403079, 0.642193524941505, 0.337723063403079,
     878                0.642193524941505,-0.004341002614139,-0.004341002614139,
     879                0.204748281642812, 0.799592720971327, 0.204748281642812,
     880                0.799592720971327, 0.041941786468010, 0.041941786468010,
     881                0.189358492130623, 0.768699721401368, 0.189358492130623,
     882                0.768699721401368, 0.014317320230681, 0.014317320230681,
     883                0.085283615682657, 0.900399064086661, 0.085283615682657,
     884                0.900399064086661};
    1049885        static double l216[]={
    1050                  0.333333333333333, 0.497380541948438, 0.005238916103123,
    1051                  0.497380541948438, 0.413469438549352, 0.173061122901295,
    1052                  0.413469438549352, 0.470458599066991, 0.059082801866017,
    1053                  0.470458599066991, 0.240553749969521, 0.518892500060958,
    1054                  0.240553749969521, 0.147965794222573, 0.704068411554854,
    1055                  0.147965794222573, 0.075465187657474, 0.849069624685052,
    1056                  0.075465187657474, 0.016596402623025, 0.966807194753950,
    1057                  0.016596402623025, 0.296555596579887, 0.599868711174861,
    1058                  0.103575692245252, 0.103575692245252, 0.599868711174861,
    1059                  0.296555596579887, 0.337723063403079, 0.642193524941505,
    1060                  0.020083411655416, 0.020083411655416, 0.642193524941505,
    1061                  0.337723063403079, 0.204748281642812, 0.799592720971327,
     886                0.333333333333333, 0.497380541948438, 0.005238916103123,
     887                0.497380541948438, 0.413469438549352, 0.173061122901295,
     888                0.413469438549352, 0.470458599066991, 0.059082801866017,
     889                0.470458599066991, 0.240553749969521, 0.518892500060958,
     890                0.240553749969521, 0.147965794222573, 0.704068411554854,
     891                0.147965794222573, 0.075465187657474, 0.849069624685052,
     892                0.075465187657474, 0.016596402623025, 0.966807194753950,
     893                0.016596402623025, 0.296555596579887, 0.599868711174861,
     894                0.103575692245252, 0.103575692245252, 0.599868711174861,
     895                0.296555596579887, 0.337723063403079, 0.642193524941505,
     896                0.020083411655416, 0.020083411655416, 0.642193524941505,
     897                0.337723063403079, 0.204748281642812, 0.799592720971327,
    1062898                -0.004341002614139,-0.004341002614139, 0.799592720971327,
    1063                  0.204748281642812, 0.189358492130623, 0.768699721401368,
    1064                  0.041941786468010, 0.041941786468010, 0.768699721401368,
    1065                  0.189358492130623, 0.085283615682657, 0.900399064086661,
    1066                  0.014317320230681, 0.014317320230681, 0.900399064086661,
    1067                  0.085283615682657};
     899                0.204748281642812, 0.189358492130623, 0.768699721401368,
     900                0.041941786468010, 0.041941786468010, 0.768699721401368,
     901                0.189358492130623, 0.085283615682657, 0.900399064086661,
     902                0.014317320230681, 0.014317320230681, 0.900399064086661,
     903                0.085283615682657};
    1068904        static double l316[]={
    1069                  0.333333333333333, 0.497380541948438, 0.497380541948438,
    1070                  0.005238916103123, 0.413469438549352, 0.413469438549352,
    1071                  0.173061122901295, 0.470458599066991, 0.470458599066991,
    1072                  0.059082801866017, 0.240553749969521, 0.240553749969521,
    1073                  0.518892500060958, 0.147965794222573, 0.147965794222573,
    1074                  0.704068411554854, 0.075465187657474, 0.075465187657474,
    1075                  0.849069624685052, 0.016596402623025, 0.016596402623025,
    1076                  0.966807194753950, 0.599868711174861, 0.296555596579887,
    1077                  0.599868711174861, 0.296555596579887, 0.103575692245252,
    1078                  0.103575692245252, 0.642193524941505, 0.337723063403079,
    1079                  0.642193524941505, 0.337723063403079, 0.020083411655416,
    1080                  0.020083411655416, 0.799592720971327, 0.204748281642812,
    1081                  0.799592720971327, 0.204748281642812,-0.004341002614139,
     905                0.333333333333333, 0.497380541948438, 0.497380541948438,
     906                0.005238916103123, 0.413469438549352, 0.413469438549352,
     907                0.173061122901295, 0.470458599066991, 0.470458599066991,
     908                0.059082801866017, 0.240553749969521, 0.240553749969521,
     909                0.518892500060958, 0.147965794222573, 0.147965794222573,
     910                0.704068411554854, 0.075465187657474, 0.075465187657474,
     911                0.849069624685052, 0.016596402623025, 0.016596402623025,
     912                0.966807194753950, 0.599868711174861, 0.296555596579887,
     913                0.599868711174861, 0.296555596579887, 0.103575692245252,
     914                0.103575692245252, 0.642193524941505, 0.337723063403079,
     915                0.642193524941505, 0.337723063403079, 0.020083411655416,
     916                0.020083411655416, 0.799592720971327, 0.204748281642812,
     917                0.799592720971327, 0.204748281642812,-0.004341002614139,
    1082918                -0.004341002614139, 0.768699721401368, 0.189358492130623,
    1083                  0.768699721401368, 0.189358492130623, 0.041941786468010,
    1084                  0.041941786468010, 0.900399064086661, 0.085283615682657,
    1085                  0.900399064086661, 0.085283615682657, 0.014317320230681,
    1086                  0.014317320230681};
    1087 
    1088 /*  p=17, npoint=61  */
    1089 
     919                0.768699721401368, 0.189358492130623, 0.041941786468010,
     920                0.041941786468010, 0.900399064086661, 0.085283615682657,
     921                0.900399064086661, 0.085283615682657, 0.014317320230681,
     922                0.014317320230681};
     923        /*}}}2*/
     924        /*p=17, npoint=61{{{2*/
    1090925        static double wgt17[]={
    1091                  0.057914928034477, 0.008822054327014, 0.008822054327014,
    1092                  0.008822054327014, 0.025410682752829, 0.025410682752829,
    1093                  0.025410682752829, 0.042176958517489, 0.042176958517489,
    1094                  0.042176958517489, 0.053879858604088, 0.053879858604088,
    1095                  0.053879858604088, 0.054138904728481, 0.054138904728481,
    1096                  0.054138904728481, 0.042981974139367, 0.042981974139367,
    1097                  0.042981974139367, 0.024345832713105, 0.024345832713105,
    1098                  0.024345832713105, 0.005533341446715, 0.005533341446715,
    1099                  0.005533341446715, 0.014063655552443, 0.014063655552443,
    1100                  0.014063655552443, 0.014063655552443, 0.014063655552443,
    1101                  0.014063655552443, 0.046428907569036, 0.046428907569036,
    1102                  0.046428907569036, 0.046428907569036, 0.046428907569036,
    1103                  0.046428907569036, 0.031973646148520, 0.031973646148520,
    1104                  0.031973646148520, 0.031973646148520, 0.031973646148520,
    1105                  0.031973646148520, 0.014682366990538, 0.014682366990538,
    1106                  0.014682366990538, 0.014682366990538, 0.014682366990538,
    1107                  0.014682366990538, 0.031684053418215, 0.031684053418215,
    1108                  0.031684053418215, 0.031684053418215, 0.031684053418215,
    1109                  0.031684053418215, 0.011545213295771, 0.011545213295771,
    1110                  0.011545213295771, 0.011545213295771, 0.011545213295771,
    1111                  0.011545213295771};
     926                0.057914928034477, 0.008822054327014, 0.008822054327014,
     927                0.008822054327014, 0.025410682752829, 0.025410682752829,
     928                0.025410682752829, 0.042176958517489, 0.042176958517489,
     929                0.042176958517489, 0.053879858604088, 0.053879858604088,
     930                0.053879858604088, 0.054138904728481, 0.054138904728481,
     931                0.054138904728481, 0.042981974139367, 0.042981974139367,
     932                0.042981974139367, 0.024345832713105, 0.024345832713105,
     933                0.024345832713105, 0.005533341446715, 0.005533341446715,
     934                0.005533341446715, 0.014063655552443, 0.014063655552443,
     935                0.014063655552443, 0.014063655552443, 0.014063655552443,
     936                0.014063655552443, 0.046428907569036, 0.046428907569036,
     937                0.046428907569036, 0.046428907569036, 0.046428907569036,
     938                0.046428907569036, 0.031973646148520, 0.031973646148520,
     939                0.031973646148520, 0.031973646148520, 0.031973646148520,
     940                0.031973646148520, 0.014682366990538, 0.014682366990538,
     941                0.014682366990538, 0.014682366990538, 0.014682366990538,
     942                0.014682366990538, 0.031684053418215, 0.031684053418215,
     943                0.031684053418215, 0.031684053418215, 0.031684053418215,
     944                0.031684053418215, 0.011545213295771, 0.011545213295771,
     945                0.011545213295771, 0.011545213295771, 0.011545213295771,
     946                0.011545213295771};
    1112947        static double l117[]={
    1113                  0.333333333333333, 0.005658918886452, 0.497170540556774,
    1114                  0.497170540556774, 0.035647354750751, 0.482176322624625,
    1115                  0.482176322624625, 0.099520061958437, 0.450239969020782,
    1116                  0.450239969020782, 0.199467521245206, 0.400266239377397,
    1117                  0.400266239377397, 0.495717464058095, 0.252141267970953,
    1118                  0.252141267970953, 0.675905990683077, 0.162047004658461,
    1119                  0.162047004658461, 0.848248235478508, 0.075875882260746,
    1120                  0.075875882260746, 0.968690546064356, 0.015654726967822,
    1121                  0.015654726967822, 0.010186928826919, 0.010186928826919,
    1122                  0.334319867363658, 0.655493203809423, 0.334319867363658,
    1123                  0.655493203809423, 0.135440871671036, 0.135440871671036,
    1124                  0.292221537796944, 0.572337590532020, 0.292221537796944,
    1125                  0.572337590532020, 0.054423924290583, 0.054423924290583,
    1126                  0.319574885423190, 0.626001190286228, 0.319574885423190,
    1127                  0.626001190286228, 0.012868560833637, 0.012868560833637,
    1128                  0.190704224192292, 0.796427214974071, 0.190704224192292,
    1129                  0.796427214974071, 0.067165782413524, 0.067165782413524,
    1130                  0.180483211648746, 0.752351005937729, 0.180483211648746,
    1131                  0.752351005937729, 0.014663182224828, 0.014663182224828,
    1132                  0.080711313679564, 0.904625504095608, 0.080711313679564,
    1133                  0.904625504095608};
     948                0.333333333333333, 0.005658918886452, 0.497170540556774,
     949                0.497170540556774, 0.035647354750751, 0.482176322624625,
     950                0.482176322624625, 0.099520061958437, 0.450239969020782,
     951                0.450239969020782, 0.199467521245206, 0.400266239377397,
     952                0.400266239377397, 0.495717464058095, 0.252141267970953,
     953                0.252141267970953, 0.675905990683077, 0.162047004658461,
     954                0.162047004658461, 0.848248235478508, 0.075875882260746,
     955                0.075875882260746, 0.968690546064356, 0.015654726967822,
     956                0.015654726967822, 0.010186928826919, 0.010186928826919,
     957                0.334319867363658, 0.655493203809423, 0.334319867363658,
     958                0.655493203809423, 0.135440871671036, 0.135440871671036,
     959                0.292221537796944, 0.572337590532020, 0.292221537796944,
     960                0.572337590532020, 0.054423924290583, 0.054423924290583,
     961                0.319574885423190, 0.626001190286228, 0.319574885423190,
     962                0.626001190286228, 0.012868560833637, 0.012868560833637,
     963                0.190704224192292, 0.796427214974071, 0.190704224192292,
     964                0.796427214974071, 0.067165782413524, 0.067165782413524,
     965                0.180483211648746, 0.752351005937729, 0.180483211648746,
     966                0.752351005937729, 0.014663182224828, 0.014663182224828,
     967                0.080711313679564, 0.904625504095608, 0.080711313679564,
     968                0.904625504095608};
    1134969        static double l217[]={
    1135                  0.333333333333333, 0.497170540556774, 0.005658918886452,
    1136                  0.497170540556774, 0.482176322624625, 0.035647354750751,
    1137                  0.482176322624625, 0.450239969020782, 0.099520061958437,
    1138                  0.450239969020782, 0.400266239377397, 0.199467521245206,
    1139                  0.400266239377397, 0.252141267970953, 0.495717464058095,
    1140                  0.252141267970953, 0.162047004658461, 0.675905990683077,
    1141                  0.162047004658461, 0.075875882260746, 0.848248235478508,
    1142                  0.075875882260746, 0.015654726967822, 0.968690546064356,
    1143                  0.015654726967822, 0.334319867363658, 0.655493203809423,
    1144                  0.010186928826919, 0.010186928826919, 0.655493203809423,
    1145                  0.334319867363658, 0.292221537796944, 0.572337590532020,
    1146                  0.135440871671036, 0.135440871671036, 0.572337590532020,
    1147                  0.292221537796944, 0.319574885423190, 0.626001190286228,
    1148                  0.054423924290583, 0.054423924290583, 0.626001190286228,
    1149                  0.319574885423190, 0.190704224192292, 0.796427214974071,
    1150                  0.012868560833637, 0.012868560833637, 0.796427214974071,
    1151                  0.190704224192292, 0.180483211648746, 0.752351005937729,
    1152                  0.067165782413524, 0.067165782413524, 0.752351005937729,
    1153                  0.180483211648746, 0.080711313679564, 0.904625504095608,
    1154                  0.014663182224828, 0.014663182224828, 0.904625504095608,
    1155                  0.080711313679564};
     970                0.333333333333333, 0.497170540556774, 0.005658918886452,
     971                0.497170540556774, 0.482176322624625, 0.035647354750751,
     972                0.482176322624625, 0.450239969020782, 0.099520061958437,
     973                0.450239969020782, 0.400266239377397, 0.199467521245206,
     974                0.400266239377397, 0.252141267970953, 0.495717464058095,
     975                0.252141267970953, 0.162047004658461, 0.675905990683077,
     976                0.162047004658461, 0.075875882260746, 0.848248235478508,
     977                0.075875882260746, 0.015654726967822, 0.968690546064356,
     978                0.015654726967822, 0.334319867363658, 0.655493203809423,
     979                0.010186928826919, 0.010186928826919, 0.655493203809423,
     980                0.334319867363658, 0.292221537796944, 0.572337590532020,
     981                0.135440871671036, 0.135440871671036, 0.572337590532020,
     982                0.292221537796944, 0.319574885423190, 0.626001190286228,
     983                0.054423924290583, 0.054423924290583, 0.626001190286228,
     984                0.319574885423190, 0.190704224192292, 0.796427214974071,
     985                0.012868560833637, 0.012868560833637, 0.796427214974071,
     986                0.190704224192292, 0.180483211648746, 0.752351005937729,
     987                0.067165782413524, 0.067165782413524, 0.752351005937729,
     988                0.180483211648746, 0.080711313679564, 0.904625504095608,
     989                0.014663182224828, 0.014663182224828, 0.904625504095608,
     990                0.080711313679564};
    1156991        static double l317[]={
    1157                  0.333333333333333, 0.497170540556774, 0.497170540556774,
    1158                  0.005658918886452, 0.482176322624625, 0.482176322624625,
    1159                  0.035647354750751, 0.450239969020782, 0.450239969020782,
    1160                  0.099520061958437, 0.400266239377397, 0.400266239377397,
    1161                  0.199467521245206, 0.252141267970953, 0.252141267970953,
    1162                  0.495717464058095, 0.162047004658461, 0.162047004658461,
    1163                  0.675905990683077, 0.075875882260746, 0.075875882260746,
    1164                  0.848248235478508, 0.015654726967822, 0.015654726967822,
    1165                  0.968690546064356, 0.655493203809423, 0.334319867363658,
    1166                  0.655493203809423, 0.334319867363658, 0.010186928826919,
    1167                  0.010186928826919, 0.572337590532020, 0.292221537796944,
    1168                  0.572337590532020, 0.292221537796944, 0.135440871671036,
    1169                  0.135440871671036, 0.626001190286228, 0.319574885423190,
    1170                  0.626001190286228, 0.319574885423190, 0.054423924290583,
    1171                  0.054423924290583, 0.796427214974071, 0.190704224192292,
    1172                  0.796427214974071, 0.190704224192292, 0.012868560833637,
    1173                  0.012868560833637, 0.752351005937729, 0.180483211648746,
    1174                  0.752351005937729, 0.180483211648746, 0.067165782413524,
    1175                  0.067165782413524, 0.904625504095608, 0.080711313679564,
    1176                  0.904625504095608, 0.080711313679564, 0.014663182224828,
    1177                  0.014663182224828};
    1178 
    1179 /*  p=18, npoint=70  */
     992                0.333333333333333, 0.497170540556774, 0.497170540556774,
     993                0.005658918886452, 0.482176322624625, 0.482176322624625,
     994                0.035647354750751, 0.450239969020782, 0.450239969020782,
     995                0.099520061958437, 0.400266239377397, 0.400266239377397,
     996                0.199467521245206, 0.252141267970953, 0.252141267970953,
     997                0.495717464058095, 0.162047004658461, 0.162047004658461,
     998                0.675905990683077, 0.075875882260746, 0.075875882260746,
     999                0.848248235478508, 0.015654726967822, 0.015654726967822,
     1000                0.968690546064356, 0.655493203809423, 0.334319867363658,
     1001                0.655493203809423, 0.334319867363658, 0.010186928826919,
     1002                0.010186928826919, 0.572337590532020, 0.292221537796944,
     1003                0.572337590532020, 0.292221537796944, 0.135440871671036,
     1004                0.135440871671036, 0.626001190286228, 0.319574885423190,
     1005                0.626001190286228, 0.319574885423190, 0.054423924290583,
     1006                0.054423924290583, 0.796427214974071, 0.190704224192292,
     1007                0.796427214974071, 0.190704224192292, 0.012868560833637,
     1008                0.012868560833637, 0.752351005937729, 0.180483211648746,
     1009                0.752351005937729, 0.180483211648746, 0.067165782413524,
     1010                0.067165782413524, 0.904625504095608, 0.080711313679564,
     1011                0.904625504095608, 0.080711313679564, 0.014663182224828,
     1012                0.014663182224828};
     1013        /*}}}2*/
     1014        /*  p=18, npoint=70  {{{2*/
    11801015
    11811016        static double wgt18[]={
    1182                  0.053364381350150, 0.015713921277179, 0.015713921277179,
    1183                  0.015713921277179, 0.032495554156279, 0.032495554156279,
    1184                  0.032495554156279, 0.033672969465771, 0.033672969465771,
    1185                  0.033672969465771, 0.048071249104579, 0.048071249104579,
    1186                  0.048071249104579, 0.055869421169115, 0.055869421169115,
    1187                  0.055869421169115, 0.043429498443148, 0.043429498443148,
    1188                  0.043429498443148, 0.026451755176745, 0.026451755176745,
    1189                  0.026451755176745, 0.011767418126433, 0.011767418126433,
    1190                  0.011767418126433,-0.003850519950463,-0.003850519950463,
     1017                0.053364381350150, 0.015713921277179, 0.015713921277179,
     1018                0.015713921277179, 0.032495554156279, 0.032495554156279,
     1019                0.032495554156279, 0.033672969465771, 0.033672969465771,
     1020                0.033672969465771, 0.048071249104579, 0.048071249104579,
     1021                0.048071249104579, 0.055869421169115, 0.055869421169115,
     1022                0.055869421169115, 0.043429498443148, 0.043429498443148,
     1023                0.043429498443148, 0.026451755176745, 0.026451755176745,
     1024                0.026451755176745, 0.011767418126433, 0.011767418126433,
     1025                0.011767418126433,-0.003850519950463,-0.003850519950463,
    11911026                -0.003850519950463, 0.010967196889496, 0.010967196889496,
    1192                  0.010967196889496, 0.010967196889496, 0.010967196889496,
    1193                  0.010967196889496, 0.047211440790349, 0.047211440790349,
    1194                  0.047211440790349, 0.047211440790349, 0.047211440790349,
    1195                  0.047211440790349, 0.030617090859378, 0.030617090859378,
    1196                  0.030617090859378, 0.030617090859378, 0.030617090859378,
    1197                  0.030617090859378, 0.031834201210069, 0.031834201210069,
    1198                  0.031834201210069, 0.031834201210069, 0.031834201210069,
    1199                  0.031834201210069, 0.014037809005559, 0.014037809005559,
    1200                  0.014037809005559, 0.014037809005559, 0.014037809005559,
    1201                  0.014037809005559, 0.013222699422034, 0.013222699422034,
    1202                  0.013222699422034, 0.013222699422034, 0.013222699422034,
    1203                  0.013222699422034, 0.000079999375178, 0.000079999375178,
    1204                  0.000079999375178, 0.000079999375178, 0.000079999375178,
    1205                  0.000079999375178};
     1027                0.010967196889496, 0.010967196889496, 0.010967196889496,
     1028                0.010967196889496, 0.047211440790349, 0.047211440790349,
     1029                0.047211440790349, 0.047211440790349, 0.047211440790349,
     1030                0.047211440790349, 0.030617090859378, 0.030617090859378,
     1031                0.030617090859378, 0.030617090859378, 0.030617090859378,
     1032                0.030617090859378, 0.031834201210069, 0.031834201210069,
     1033                0.031834201210069, 0.031834201210069, 0.031834201210069,
     1034                0.031834201210069, 0.014037809005559, 0.014037809005559,
     1035                0.014037809005559, 0.014037809005559, 0.014037809005559,
     1036                0.014037809005559, 0.013222699422034, 0.013222699422034,
     1037                0.013222699422034, 0.013222699422034, 0.013222699422034,
     1038                0.013222699422034, 0.000079999375178, 0.000079999375178,
     1039                0.000079999375178, 0.000079999375178, 0.000079999375178,
     1040                0.000079999375178};
    12061041        static double l118[]={
    1207                  0.333333333333333, 0.013310382738157, 0.493344808630921,
    1208                  0.493344808630921, 0.061578811516086, 0.469210594241957,
    1209                  0.469210594241957, 0.127437208225989, 0.436281395887006,
    1210                  0.436281395887006, 0.210307658653168, 0.394846170673416,
    1211                  0.394846170673416, 0.500410862393686, 0.249794568803157,
    1212                  0.249794568803157, 0.677135612512315, 0.161432193743843,
    1213                  0.161432193743843, 0.846803545029257, 0.076598227485371,
    1214                  0.076598227485371, 0.951495121293100, 0.024252439353450,
    1215                  0.024252439353450, 0.913707265566071, 0.043146367216965,
    1216                  0.043146367216965, 0.008430536202420, 0.008430536202420,
    1217                  0.358911494940944, 0.632657968856636, 0.358911494940944,
    1218                  0.632657968856636, 0.131186551737188, 0.131186551737188,
    1219                  0.294402476751957, 0.574410971510855, 0.294402476751957,
    1220                  0.574410971510855, 0.050203151565675, 0.050203151565675,
    1221                  0.325017801641814, 0.624779046792512, 0.325017801641814,
    1222                  0.624779046792512, 0.066329263810916, 0.066329263810916,
    1223                  0.184737559666046, 0.748933176523037, 0.184737559666046,
    1224                  0.748933176523037, 0.011996194566236, 0.011996194566236,
    1225                  0.218796800013321, 0.769207005420443, 0.218796800013321,
    1226                  0.769207005420443, 0.014858100590125, 0.014858100590125,
    1227                  0.101179597136408, 0.883962302273467, 0.101179597136408,
    1228                  0.883962302273467,-0.035222015287949,-0.035222015287949,
    1229                  0.020874755282586, 1.014347260005363, 0.020874755282586,
    1230                  1.014347260005363};
     1042                0.333333333333333, 0.013310382738157, 0.493344808630921,
     1043                0.493344808630921, 0.061578811516086, 0.469210594241957,
     1044                0.469210594241957, 0.127437208225989, 0.436281395887006,
     1045                0.436281395887006, 0.210307658653168, 0.394846170673416,
     1046                0.394846170673416, 0.500410862393686, 0.249794568803157,
     1047                0.249794568803157, 0.677135612512315, 0.161432193743843,
     1048                0.161432193743843, 0.846803545029257, 0.076598227485371,
     1049                0.076598227485371, 0.951495121293100, 0.024252439353450,
     1050                0.024252439353450, 0.913707265566071, 0.043146367216965,
     1051                0.043146367216965, 0.008430536202420, 0.008430536202420,
     1052                0.358911494940944, 0.632657968856636, 0.358911494940944,
     1053                0.632657968856636, 0.131186551737188, 0.131186551737188,
     1054                0.294402476751957, 0.574410971510855, 0.294402476751957,
     1055                0.574410971510855, 0.050203151565675, 0.050203151565675,
     1056                0.325017801641814, 0.624779046792512, 0.325017801641814,
     1057                0.624779046792512, 0.066329263810916, 0.066329263810916,
     1058                0.184737559666046, 0.748933176523037, 0.184737559666046,
     1059                0.748933176523037, 0.011996194566236, 0.011996194566236,
     1060                0.218796800013321, 0.769207005420443, 0.218796800013321,
     1061                0.769207005420443, 0.014858100590125, 0.014858100590125,
     1062                0.101179597136408, 0.883962302273467, 0.101179597136408,
     1063                0.883962302273467,-0.035222015287949,-0.035222015287949,
     1064                0.020874755282586, 1.014347260005363, 0.020874755282586,
     1065                1.014347260005363};
    12311066        static double l218[]={
    1232                  0.333333333333333, 0.493344808630921, 0.013310382738157,
    1233                  0.493344808630921, 0.469210594241957, 0.061578811516086,
    1234                  0.469210594241957, 0.436281395887006, 0.127437208225989,
    1235                  0.436281395887006, 0.394846170673416, 0.210307658653168,
    1236                  0.394846170673416, 0.249794568803157, 0.500410862393686,
    1237                  0.249794568803157, 0.161432193743843, 0.677135612512315,
    1238                  0.161432193743843, 0.076598227485371, 0.846803545029257,
    1239                  0.076598227485371, 0.024252439353450, 0.951495121293100,
    1240                  0.024252439353450, 0.043146367216965, 0.913707265566071,
    1241                  0.043146367216965, 0.358911494940944, 0.632657968856636,
    1242                  0.008430536202420, 0.008430536202420, 0.632657968856636,
    1243                  0.358911494940944, 0.294402476751957, 0.574410971510855,
    1244                  0.131186551737188, 0.131186551737188, 0.574410971510855,
    1245                  0.294402476751957, 0.325017801641814, 0.624779046792512,
    1246                  0.050203151565675, 0.050203151565675, 0.624779046792512,
    1247                  0.325017801641814, 0.184737559666046, 0.748933176523037,
    1248                  0.066329263810916, 0.066329263810916, 0.748933176523037,
    1249                  0.184737559666046, 0.218796800013321, 0.769207005420443,
    1250                  0.011996194566236, 0.011996194566236, 0.769207005420443,
    1251                  0.218796800013321, 0.101179597136408, 0.883962302273467,
    1252                  0.014858100590125, 0.014858100590125, 0.883962302273467,
    1253                  0.101179597136408, 0.020874755282586, 1.014347260005363,
     1067                0.333333333333333, 0.493344808630921, 0.013310382738157,
     1068                0.493344808630921, 0.469210594241957, 0.061578811516086,
     1069                0.469210594241957, 0.436281395887006, 0.127437208225989,
     1070                0.436281395887006, 0.394846170673416, 0.210307658653168,
     1071                0.394846170673416, 0.249794568803157, 0.500410862393686,
     1072                0.249794568803157, 0.161432193743843, 0.677135612512315,
     1073                0.161432193743843, 0.076598227485371, 0.846803545029257,
     1074                0.076598227485371, 0.024252439353450, 0.951495121293100,
     1075                0.024252439353450, 0.043146367216965, 0.913707265566071,
     1076                0.043146367216965, 0.358911494940944, 0.632657968856636,
     1077                0.008430536202420, 0.008430536202420, 0.632657968856636,
     1078                0.358911494940944, 0.294402476751957, 0.574410971510855,
     1079                0.131186551737188, 0.131186551737188, 0.574410971510855,
     1080                0.294402476751957, 0.325017801641814, 0.624779046792512,
     1081                0.050203151565675, 0.050203151565675, 0.624779046792512,
     1082                0.325017801641814, 0.184737559666046, 0.748933176523037,
     1083                0.066329263810916, 0.066329263810916, 0.748933176523037,
     1084                0.184737559666046, 0.218796800013321, 0.769207005420443,
     1085                0.011996194566236, 0.011996194566236, 0.769207005420443,
     1086                0.218796800013321, 0.101179597136408, 0.883962302273467,
     1087                0.014858100590125, 0.014858100590125, 0.883962302273467,
     1088                0.101179597136408, 0.020874755282586, 1.014347260005363,
    12541089                -0.035222015287949,-0.035222015287949, 1.014347260005363,
    1255                  0.020874755282586};
     1090                0.020874755282586};
    12561091        static double l318[]={
    1257                  0.333333333333333, 0.493344808630921, 0.493344808630921,
    1258                  0.013310382738157, 0.469210594241957, 0.469210594241957,
    1259                  0.061578811516086, 0.436281395887006, 0.436281395887006,
    1260                  0.127437208225989, 0.394846170673416, 0.394846170673416,
    1261                  0.210307658653168, 0.249794568803157, 0.249794568803157,
    1262                  0.500410862393686, 0.161432193743843, 0.161432193743843,
    1263                  0.677135612512315, 0.076598227485371, 0.076598227485371,
    1264                  0.846803545029257, 0.024252439353450, 0.024252439353450,
    1265                  0.951495121293100, 0.043146367216965, 0.043146367216965,
    1266                  0.913707265566071, 0.632657968856636, 0.358911494940944,
    1267                  0.632657968856636, 0.358911494940944, 0.008430536202420,
    1268                  0.008430536202420, 0.574410971510855, 0.294402476751957,
    1269                  0.574410971510855, 0.294402476751957, 0.131186551737188,
    1270                  0.131186551737188, 0.624779046792512, 0.325017801641814,
    1271                  0.624779046792512, 0.325017801641814, 0.050203151565675,
    1272                  0.050203151565675, 0.748933176523037, 0.184737559666046,
    1273                  0.748933176523037, 0.184737559666046, 0.066329263810916,
    1274                  0.066329263810916, 0.769207005420443, 0.218796800013321,
    1275                  0.769207005420443, 0.218796800013321, 0.011996194566236,
    1276                  0.011996194566236, 0.883962302273467, 0.101179597136408,
    1277                  0.883962302273467, 0.101179597136408, 0.014858100590125,
    1278                  0.014858100590125, 1.014347260005363, 0.020874755282586,
    1279                  1.014347260005363, 0.020874755282586,-0.035222015287949,
     1092                0.333333333333333, 0.493344808630921, 0.493344808630921,
     1093                0.013310382738157, 0.469210594241957, 0.469210594241957,
     1094                0.061578811516086, 0.436281395887006, 0.436281395887006,
     1095                0.127437208225989, 0.394846170673416, 0.394846170673416,
     1096                0.210307658653168, 0.249794568803157, 0.249794568803157,
     1097                0.500410862393686, 0.161432193743843, 0.161432193743843,
     1098                0.677135612512315, 0.076598227485371, 0.076598227485371,
     1099                0.846803545029257, 0.024252439353450, 0.024252439353450,
     1100                0.951495121293100, 0.043146367216965, 0.043146367216965,
     1101                0.913707265566071, 0.632657968856636, 0.358911494940944,
     1102                0.632657968856636, 0.358911494940944, 0.008430536202420,
     1103                0.008430536202420, 0.574410971510855, 0.294402476751957,
     1104                0.574410971510855, 0.294402476751957, 0.131186551737188,
     1105                0.131186551737188, 0.624779046792512, 0.325017801641814,
     1106                0.624779046792512, 0.325017801641814, 0.050203151565675,
     1107                0.050203151565675, 0.748933176523037, 0.184737559666046,
     1108                0.748933176523037, 0.184737559666046, 0.066329263810916,
     1109                0.066329263810916, 0.769207005420443, 0.218796800013321,
     1110                0.769207005420443, 0.218796800013321, 0.011996194566236,
     1111                0.011996194566236, 0.883962302273467, 0.101179597136408,
     1112                0.883962302273467, 0.101179597136408, 0.014858100590125,
     1113                0.014858100590125, 1.014347260005363, 0.020874755282586,
     1114                1.014347260005363, 0.020874755282586,-0.035222015287949,
    12801115                -0.035222015287949};
    1281 
    1282 /*  p=19, npoint=73  */
     1116        /*}}}2*/
     1117        /*p=19, npoint=73  {{{2*/
    12831118
    12841119        static double wgt19[]={
    1285                  0.056995437856306, 0.017893352515055, 0.017893352515055,
    1286                  0.017893352515055, 0.038775849701151, 0.038775849701151,
    1287                  0.038775849701151, 0.052422467754193, 0.052422467754193,
    1288                  0.052422467754193, 0.052811905405354, 0.052811905405354,
    1289                  0.052811905405354, 0.041844983939388, 0.041844983939388,
    1290                  0.041844983939388, 0.027800807314648, 0.027800807314648,
    1291                  0.027800807314648, 0.014002903771278, 0.014002903771278,
    1292                  0.014002903771278, 0.003601560678933, 0.003601560678933,
    1293                  0.003601560678933, 0.006728804180578, 0.006728804180578,
    1294                  0.006728804180578, 0.006728804180578, 0.006728804180578,
    1295                  0.006728804180578, 0.044295745540949, 0.044295745540949,
    1296                  0.044295745540949, 0.044295745540949, 0.044295745540949,
    1297                  0.044295745540949, 0.015382176206141, 0.015382176206141,
    1298                  0.015382176206141, 0.015382176206141, 0.015382176206141,
    1299                  0.015382176206141, 0.027928534240338, 0.027928534240338,
    1300                  0.027928534240338, 0.027928534240338, 0.027928534240338,
    1301                  0.027928534240338, 0.004316169837400, 0.004316169837400,
    1302                  0.004316169837400, 0.004316169837400, 0.004316169837400,
    1303                  0.004316169837400, 0.031597525960379, 0.031597525960379,
    1304                  0.031597525960379, 0.031597525960379, 0.031597525960379,
    1305                  0.031597525960379, 0.017768353603780, 0.017768353603780,
    1306                  0.017768353603780, 0.017768353603780, 0.017768353603780,
    1307                  0.017768353603780, 0.006581669842530, 0.006581669842530,
    1308                  0.006581669842530, 0.006581669842530, 0.006581669842530,
    1309                  0.006581669842530};
     1120                0.056995437856306, 0.017893352515055, 0.017893352515055,
     1121                0.017893352515055, 0.038775849701151, 0.038775849701151,
     1122                0.038775849701151, 0.052422467754193, 0.052422467754193,
     1123                0.052422467754193, 0.052811905405354, 0.052811905405354,
     1124                0.052811905405354, 0.041844983939388, 0.041844983939388,
     1125                0.041844983939388, 0.027800807314648, 0.027800807314648,
     1126                0.027800807314648, 0.014002903771278, 0.014002903771278,
     1127                0.014002903771278, 0.003601560678933, 0.003601560678933,
     1128                0.003601560678933, 0.006728804180578, 0.006728804180578,
     1129                0.006728804180578, 0.006728804180578, 0.006728804180578,
     1130                0.006728804180578, 0.044295745540949, 0.044295745540949,
     1131                0.044295745540949, 0.044295745540949, 0.044295745540949,
     1132                0.044295745540949, 0.015382176206141, 0.015382176206141,
     1133                0.015382176206141, 0.015382176206141, 0.015382176206141,
     1134                0.015382176206141, 0.027928534240338, 0.027928534240338,
     1135                0.027928534240338, 0.027928534240338, 0.027928534240338,
     1136                0.027928534240338, 0.004316169837400, 0.004316169837400,
     1137                0.004316169837400, 0.004316169837400, 0.004316169837400,
     1138                0.004316169837400, 0.031597525960379, 0.031597525960379,
     1139                0.031597525960379, 0.031597525960379, 0.031597525960379,
     1140                0.031597525960379, 0.017768353603780, 0.017768353603780,
     1141                0.017768353603780, 0.017768353603780, 0.017768353603780,
     1142                0.017768353603780, 0.006581669842530, 0.006581669842530,
     1143                0.006581669842530, 0.006581669842530, 0.006581669842530,
     1144                0.006581669842530};
    13101145        static double l119[]={
    1311                  0.333333333333333, 0.020780025853987, 0.489609987073006,
    1312                  0.489609987073006, 0.090926214604215, 0.454536892697893,
    1313                  0.454536892697893, 0.197166638701138, 0.401416680649431,
    1314                  0.401416680649431, 0.488896691193805, 0.255551654403098,
    1315                  0.255551654403098, 0.645844115695741, 0.177077942152130,
    1316                  0.177077942152130, 0.779877893544096, 0.110061053227952,
    1317                  0.110061053227952, 0.888942751496321, 0.055528624251840,
    1318                  0.055528624251840, 0.974756272445543, 0.012621863777229,
    1319                  0.012621863777229, 0.003611417848412, 0.003611417848412,
    1320                  0.395754787356943, 0.600633794794645, 0.395754787356943,
    1321                  0.600633794794645, 0.134466754530780, 0.134466754530780,
    1322                  0.307929983880436, 0.557603261588784, 0.307929983880436,
    1323                  0.557603261588784, 0.014446025776115, 0.014446025776115,
    1324                  0.264566948406520, 0.720987025817365, 0.264566948406520,
    1325                  0.720987025817365, 0.046933578838178, 0.046933578838178,
    1326                  0.358539352205951, 0.594527068955871, 0.358539352205951,
    1327                  0.594527068955871, 0.002861120350567, 0.002861120350567,
    1328                  0.157807405968595, 0.839331473680839, 0.157807405968595,
    1329                  0.839331473680839, 0.223861424097916, 0.223861424097916,
    1330                  0.075050596975911, 0.701087978926173, 0.075050596975911,
    1331                  0.701087978926173, 0.034647074816760, 0.034647074816760,
    1332                  0.142421601113383, 0.822931324069857, 0.142421601113383,
    1333                  0.822931324069857, 0.010161119296278, 0.010161119296278,
    1334                  0.065494628082938, 0.924344252620784, 0.065494628082938,
    1335                  0.924344252620784};
     1146                0.333333333333333, 0.020780025853987, 0.489609987073006,
     1147                0.489609987073006, 0.090926214604215, 0.454536892697893,
     1148                0.454536892697893, 0.197166638701138, 0.401416680649431,
     1149                0.401416680649431, 0.488896691193805, 0.255551654403098,
     1150                0.255551654403098, 0.645844115695741, 0.177077942152130,
     1151                0.177077942152130, 0.779877893544096, 0.110061053227952,
     1152                0.110061053227952, 0.888942751496321, 0.055528624251840,
     1153                0.055528624251840, 0.974756272445543, 0.012621863777229,
     1154                0.012621863777229, 0.003611417848412, 0.003611417848412,
     1155                0.395754787356943, 0.600633794794645, 0.395754787356943,
     1156                0.600633794794645, 0.134466754530780, 0.134466754530780,
     1157                0.307929983880436, 0.557603261588784, 0.307929983880436,
     1158                0.557603261588784, 0.014446025776115, 0.014446025776115,
     1159                0.264566948406520, 0.720987025817365, 0.264566948406520,
     1160                0.720987025817365, 0.046933578838178, 0.046933578838178,
     1161                0.358539352205951, 0.594527068955871, 0.358539352205951,
     1162                0.594527068955871, 0.002861120350567, 0.002861120350567,
     1163                0.157807405968595, 0.839331473680839, 0.157807405968595,
     1164                0.839331473680839, 0.223861424097916, 0.223861424097916,
     1165                0.075050596975911, 0.701087978926173, 0.075050596975911,
     1166                0.701087978926173, 0.034647074816760, 0.034647074816760,
     1167                0.142421601113383, 0.822931324069857, 0.142421601113383,
     1168                0.822931324069857, 0.010161119296278, 0.010161119296278,
     1169                0.065494628082938, 0.924344252620784, 0.065494628082938,
     1170                0.924344252620784};
    13361171        static double l219[]={
    1337                  0.333333333333333, 0.489609987073006, 0.020780025853987,
    1338                  0.489609987073006, 0.454536892697893, 0.090926214604215,
    1339                  0.454536892697893, 0.401416680649431, 0.197166638701138,
    1340                  0.401416680649431, 0.255551654403098, 0.488896691193805,
    1341                  0.255551654403098, 0.177077942152130, 0.645844115695741,
    1342                  0.177077942152130, 0.110061053227952, 0.779877893544096,
    1343                  0.110061053227952, 0.055528624251840, 0.888942751496321,
    1344                  0.055528624251840, 0.012621863777229, 0.974756272445543,
    1345                  0.012621863777229, 0.395754787356943, 0.600633794794645,
    1346                  0.003611417848412, 0.003611417848412, 0.600633794794645,
    1347                  0.395754787356943, 0.307929983880436, 0.557603261588784,
    1348                  0.134466754530780, 0.134466754530780, 0.557603261588784,
    1349                  0.307929983880436, 0.264566948406520, 0.720987025817365,
    1350                  0.014446025776115, 0.014446025776115, 0.720987025817365,
    1351                  0.264566948406520, 0.358539352205951, 0.594527068955871,
    1352                  0.046933578838178, 0.046933578838178, 0.594527068955871,
    1353                  0.358539352205951, 0.157807405968595, 0.839331473680839,
    1354                  0.002861120350567, 0.002861120350567, 0.839331473680839,
    1355                  0.157807405968595, 0.075050596975911, 0.701087978926173,
    1356                  0.223861424097916, 0.223861424097916, 0.701087978926173,
    1357                  0.075050596975911, 0.142421601113383, 0.822931324069857,
    1358                  0.034647074816760, 0.034647074816760, 0.822931324069857,
    1359                  0.142421601113383, 0.065494628082938, 0.924344252620784,
    1360                  0.010161119296278, 0.010161119296278, 0.924344252620784,
    1361                  0.065494628082938};
     1172                0.333333333333333, 0.489609987073006, 0.020780025853987,
     1173                0.489609987073006, 0.454536892697893, 0.090926214604215,
     1174                0.454536892697893, 0.401416680649431, 0.197166638701138,
     1175                0.401416680649431, 0.255551654403098, 0.488896691193805,
     1176                0.255551654403098, 0.177077942152130, 0.645844115695741,
     1177                0.177077942152130, 0.110061053227952, 0.779877893544096,
     1178                0.110061053227952, 0.055528624251840, 0.888942751496321,
     1179                0.055528624251840, 0.012621863777229, 0.974756272445543,
     1180                0.012621863777229, 0.395754787356943, 0.600633794794645,
     1181                0.003611417848412, 0.003611417848412, 0.600633794794645,
     1182                0.395754787356943, 0.307929983880436, 0.557603261588784,
     1183                0.134466754530780, 0.134466754530780, 0.557603261588784,
     1184                0.307929983880436, 0.264566948406520, 0.720987025817365,
     1185                0.014446025776115, 0.014446025776115, 0.720987025817365,
     1186                0.264566948406520, 0.358539352205951, 0.594527068955871,
     1187                0.046933578838178, 0.046933578838178, 0.594527068955871,
     1188                0.358539352205951, 0.157807405968595, 0.839331473680839,
     1189                0.002861120350567, 0.002861120350567, 0.839331473680839,
     1190                0.157807405968595, 0.075050596975911, 0.701087978926173,
     1191                0.223861424097916, 0.223861424097916, 0.701087978926173,
     1192                0.075050596975911, 0.142421601113383, 0.822931324069857,
     1193                0.034647074816760, 0.034647074816760, 0.822931324069857,
     1194                0.142421601113383, 0.065494628082938, 0.924344252620784,
     1195                0.010161119296278, 0.010161119296278, 0.924344252620784,
     1196                0.065494628082938};
    13621197        static double l319[]={
    1363                  0.333333333333333, 0.489609987073006, 0.489609987073006,
    1364                  0.020780025853987, 0.454536892697893, 0.454536892697893,
    1365                  0.090926214604215, 0.401416680649431, 0.401416680649431,
    1366                  0.197166638701138, 0.255551654403098, 0.255551654403098,
    1367                  0.488896691193805, 0.177077942152130, 0.177077942152130,
    1368                  0.645844115695741, 0.110061053227952, 0.110061053227952,
    1369                  0.779877893544096, 0.055528624251840, 0.055528624251840,
    1370                  0.888942751496321, 0.012621863777229, 0.012621863777229,
    1371                  0.974756272445543, 0.600633794794645, 0.395754787356943,
    1372                  0.600633794794645, 0.395754787356943, 0.003611417848412,
    1373                  0.003611417848412, 0.557603261588784, 0.307929983880436,
    1374                  0.557603261588784, 0.307929983880436, 0.134466754530780,
    1375                  0.134466754530780, 0.720987025817365, 0.264566948406520,
    1376                  0.720987025817365, 0.264566948406520, 0.014446025776115,
    1377                  0.014446025776115, 0.594527068955871, 0.358539352205951,
    1378                  0.594527068955871, 0.358539352205951, 0.046933578838178,
    1379                  0.046933578838178, 0.839331473680839, 0.157807405968595,
    1380                  0.839331473680839, 0.157807405968595, 0.002861120350567,
    1381                  0.002861120350567, 0.701087978926173, 0.075050596975911,
    1382                  0.701087978926173, 0.075050596975911, 0.223861424097916,
    1383                  0.223861424097916, 0.822931324069857, 0.142421601113383,
    1384                  0.822931324069857, 0.142421601113383, 0.034647074816760,
    1385                  0.034647074816760, 0.924344252620784, 0.065494628082938,
    1386                  0.924344252620784, 0.065494628082938, 0.010161119296278,
    1387                  0.010161119296278};
    1388 
    1389 /*  p=20, npoint=79  */
    1390 
     1198                0.333333333333333, 0.489609987073006, 0.489609987073006,
     1199                0.020780025853987, 0.454536892697893, 0.454536892697893,
     1200                0.090926214604215, 0.401416680649431, 0.401416680649431,
     1201                0.197166638701138, 0.255551654403098, 0.255551654403098,
     1202                0.488896691193805, 0.177077942152130, 0.177077942152130,
     1203                0.645844115695741, 0.110061053227952, 0.110061053227952,
     1204                0.779877893544096, 0.055528624251840, 0.055528624251840,
     1205                0.888942751496321, 0.012621863777229, 0.012621863777229,
     1206                0.974756272445543, 0.600633794794645, 0.395754787356943,
     1207                0.600633794794645, 0.395754787356943, 0.003611417848412,
     1208                0.003611417848412, 0.557603261588784, 0.307929983880436,
     1209                0.557603261588784, 0.307929983880436, 0.134466754530780,
     1210                0.134466754530780, 0.720987025817365, 0.264566948406520,
     1211                0.720987025817365, 0.264566948406520, 0.014446025776115,
     1212                0.014446025776115, 0.594527068955871, 0.358539352205951,
     1213                0.594527068955871, 0.358539352205951, 0.046933578838178,
     1214                0.046933578838178, 0.839331473680839, 0.157807405968595,
     1215                0.839331473680839, 0.157807405968595, 0.002861120350567,
     1216                0.002861120350567, 0.701087978926173, 0.075050596975911,
     1217                0.701087978926173, 0.075050596975911, 0.223861424097916,
     1218                0.223861424097916, 0.822931324069857, 0.142421601113383,
     1219                0.822931324069857, 0.142421601113383, 0.034647074816760,
     1220                0.034647074816760, 0.924344252620784, 0.065494628082938,
     1221                0.924344252620784, 0.065494628082938, 0.010161119296278,
     1222                0.010161119296278};
     1223        /*}}}2*/
     1224        /*p=20, npoint=79 {{{2*/
    13911225        static double wgt20[]={
    1392                  0.057256499746719, 0.001501721280705, 0.001501721280705,
    1393                  0.001501721280705, 0.020195803723819, 0.020195803723819,
    1394                  0.020195803723819, 0.039624016090841, 0.039624016090841,
    1395                  0.039624016090841, 0.052739185030045, 0.052739185030045,
    1396                  0.052739185030045, 0.053043868444611, 0.053043868444611,
    1397                  0.053043868444611, 0.042206713977986, 0.042206713977986,
    1398                  0.042206713977986, 0.027708365070095, 0.027708365070095,
    1399                  0.027708365070095, 0.013333849876622, 0.013333849876622,
    1400                  0.013333849876622,-0.001094760895106,-0.001094760895106,
     1226                0.057256499746719, 0.001501721280705, 0.001501721280705,
     1227                0.001501721280705, 0.020195803723819, 0.020195803723819,
     1228                0.020195803723819, 0.039624016090841, 0.039624016090841,
     1229                0.039624016090841, 0.052739185030045, 0.052739185030045,
     1230                0.052739185030045, 0.053043868444611, 0.053043868444611,
     1231                0.053043868444611, 0.042206713977986, 0.042206713977986,
     1232                0.042206713977986, 0.027708365070095, 0.027708365070095,
     1233                0.027708365070095, 0.013333849876622, 0.013333849876622,
     1234                0.013333849876622,-0.001094760895106,-0.001094760895106,
    14011235                -0.001094760895106, 0.003033053580543, 0.003033053580543,
    1402                  0.003033053580543, 0.028519670065604, 0.028519670065604,
    1403                  0.028519670065604, 0.028519670065604, 0.028519670065604,
    1404                  0.028519670065604, 0.008381451951650, 0.008381451951650,
    1405                  0.008381451951650, 0.008381451951650, 0.008381451951650,
    1406                  0.008381451951650, 0.044695409202580, 0.044695409202580,
    1407                  0.044695409202580, 0.044695409202580, 0.044695409202580,
    1408                  0.044695409202580, 0.014672360101834, 0.014672360101834,
    1409                  0.014672360101834, 0.014672360101834, 0.014672360101834,
    1410                  0.014672360101834, 0.031791643800640, 0.031791643800640,
    1411                  0.031791643800640, 0.031791643800640, 0.031791643800640,
    1412                  0.031791643800640, 0.001220064691226, 0.001220064691226,
    1413                  0.001220064691226, 0.001220064691226, 0.001220064691226,
    1414                  0.001220064691226, 0.017515684095300, 0.017515684095300,
    1415                  0.017515684095300, 0.017515684095300, 0.017515684095300,
    1416                  0.017515684095300, 0.006190192638113, 0.006190192638113,
    1417                  0.006190192638113, 0.006190192638113, 0.006190192638113,
    1418                  0.006190192638113};
     1236                0.003033053580543, 0.028519670065604, 0.028519670065604,
     1237                0.028519670065604, 0.028519670065604, 0.028519670065604,
     1238                0.028519670065604, 0.008381451951650, 0.008381451951650,
     1239                0.008381451951650, 0.008381451951650, 0.008381451951650,
     1240                0.008381451951650, 0.044695409202580, 0.044695409202580,
     1241                0.044695409202580, 0.044695409202580, 0.044695409202580,
     1242                0.044695409202580, 0.014672360101834, 0.014672360101834,
     1243                0.014672360101834, 0.014672360101834, 0.014672360101834,
     1244                0.014672360101834, 0.031791643800640, 0.031791643800640,
     1245                0.031791643800640, 0.031791643800640, 0.031791643800640,
     1246                0.031791643800640, 0.001220064691226, 0.001220064691226,
     1247                0.001220064691226, 0.001220064691226, 0.001220064691226,
     1248                0.001220064691226, 0.017515684095300, 0.017515684095300,
     1249                0.017515684095300, 0.017515684095300, 0.017515684095300,
     1250                0.017515684095300, 0.006190192638113, 0.006190192638113,
     1251                0.006190192638113, 0.006190192638113, 0.006190192638113,
     1252                0.006190192638113};
    14191253        static double l120[]={
    1420                  0.333333333333333,-0.001900928704400, 0.500950464352200,
    1421                  0.500950464352200, 0.023574084130543, 0.488212957934729,
    1422                  0.488212957934729, 0.089726636099435, 0.455136681950283,
    1423                  0.455136681950283, 0.196007481363421, 0.401996259318289,
    1424                  0.401996259318289, 0.488214180481157, 0.255892909759421,
    1425                  0.255892909759421, 0.647023488009788, 0.176488255995106,
    1426                  0.176488255995106, 0.791658289326483, 0.104170855336758,
    1427                  0.104170855336758, 0.893862072318140, 0.053068963840930,
    1428                  0.053068963840930, 0.916762569607942, 0.041618715196029,
    1429                  0.041618715196029, 0.976836157186356, 0.011581921406822,
    1430                  0.011581921406822, 0.048741583664839, 0.048741583664839,
    1431                  0.344855770229001, 0.606402646106160, 0.344855770229001,
    1432                  0.606402646106160, 0.006314115948605, 0.006314115948605,
    1433                  0.377843269594854, 0.615842614456541, 0.377843269594854,
    1434                  0.615842614456541, 0.134316520547348, 0.134316520547348,
    1435                  0.306635479062357, 0.559048000390295, 0.306635479062357,
    1436                  0.559048000390295, 0.013973893962392, 0.013973893962392,
    1437                  0.249419362774742, 0.736606743262866, 0.249419362774742,
    1438                  0.736606743262866, 0.075549132909764, 0.075549132909764,
    1439                  0.212775724802802, 0.711675142287434, 0.212775724802802,
    1440                  0.711675142287434,-0.008368153208227,-0.008368153208227,
    1441                  0.146965436053239, 0.861402717154987, 0.146965436053239,
    1442                  0.861402717154987, 0.026686063258714, 0.026686063258714,
    1443                  0.137726978828923, 0.835586957912363, 0.137726978828923,
    1444                  0.835586957912363, 0.010547719294141, 0.010547719294141,
    1445                  0.059696109149007, 0.929756171556853, 0.059696109149007,
    1446                  0.929756171556853};
     1254                0.333333333333333,-0.001900928704400, 0.500950464352200,
     1255                0.500950464352200, 0.023574084130543, 0.488212957934729,
     1256                0.488212957934729, 0.089726636099435, 0.455136681950283,
     1257                0.455136681950283, 0.196007481363421, 0.401996259318289,
     1258                0.401996259318289, 0.488214180481157, 0.255892909759421,
     1259                0.255892909759421, 0.647023488009788, 0.176488255995106,
     1260                0.176488255995106, 0.791658289326483, 0.104170855336758,
     1261                0.104170855336758, 0.893862072318140, 0.053068963840930,
     1262                0.053068963840930, 0.916762569607942, 0.041618715196029,
     1263                0.041618715196029, 0.976836157186356, 0.011581921406822,
     1264                0.011581921406822, 0.048741583664839, 0.048741583664839,
     1265                0.344855770229001, 0.606402646106160, 0.344855770229001,
     1266                0.606402646106160, 0.006314115948605, 0.006314115948605,
     1267                0.377843269594854, 0.615842614456541, 0.377843269594854,
     1268                0.615842614456541, 0.134316520547348, 0.134316520547348,
     1269                0.306635479062357, 0.559048000390295, 0.306635479062357,
     1270                0.559048000390295, 0.013973893962392, 0.013973893962392,
     1271                0.249419362774742, 0.736606743262866, 0.249419362774742,
     1272                0.736606743262866, 0.075549132909764, 0.075549132909764,
     1273                0.212775724802802, 0.711675142287434, 0.212775724802802,
     1274                0.711675142287434,-0.008368153208227,-0.008368153208227,
     1275                0.146965436053239, 0.861402717154987, 0.146965436053239,
     1276                0.861402717154987, 0.026686063258714, 0.026686063258714,
     1277                0.137726978828923, 0.835586957912363, 0.137726978828923,
     1278                0.835586957912363, 0.010547719294141, 0.010547719294141,
     1279                0.059696109149007, 0.929756171556853, 0.059696109149007,
     1280                0.929756171556853};
    14471281        static double l220[]={
    1448                  0.333333333333333, 0.500950464352200,-0.001900928704400,
    1449                  0.500950464352200, 0.488212957934729, 0.023574084130543,
    1450                  0.488212957934729, 0.455136681950283, 0.089726636099435,
    1451                  0.455136681950283, 0.401996259318289, 0.196007481363421,
    1452                  0.401996259318289, 0.255892909759421, 0.488214180481157,
    1453                  0.255892909759421, 0.176488255995106, 0.647023488009788,
    1454                  0.176488255995106, 0.104170855336758, 0.791658289326483,
    1455                  0.104170855336758, 0.053068963840930, 0.893862072318140,
    1456                  0.053068963840930, 0.041618715196029, 0.916762569607942,
    1457                  0.041618715196029, 0.011581921406822, 0.976836157186356,
    1458                  0.011581921406822, 0.344855770229001, 0.606402646106160,
    1459                  0.048741583664839, 0.048741583664839, 0.606402646106160,
    1460                  0.344855770229001, 0.377843269594854, 0.615842614456541,
    1461                  0.006314115948605, 0.006314115948605, 0.615842614456541,
    1462                  0.377843269594854, 0.306635479062357, 0.559048000390295,
    1463                  0.134316520547348, 0.134316520547348, 0.559048000390295,
    1464                  0.306635479062357, 0.249419362774742, 0.736606743262866,
    1465                  0.013973893962392, 0.013973893962392, 0.736606743262866,
    1466                  0.249419362774742, 0.212775724802802, 0.711675142287434,
    1467                  0.075549132909764, 0.075549132909764, 0.711675142287434,
    1468                  0.212775724802802, 0.146965436053239, 0.861402717154987,
     1282                0.333333333333333, 0.500950464352200,-0.001900928704400,
     1283                0.500950464352200, 0.488212957934729, 0.023574084130543,
     1284                0.488212957934729, 0.455136681950283, 0.089726636099435,
     1285                0.455136681950283, 0.401996259318289, 0.196007481363421,
     1286                0.401996259318289, 0.255892909759421, 0.488214180481157,
     1287                0.255892909759421, 0.176488255995106, 0.647023488009788,
     1288                0.176488255995106, 0.104170855336758, 0.791658289326483,
     1289                0.104170855336758, 0.053068963840930, 0.893862072318140,
     1290                0.053068963840930, 0.041618715196029, 0.916762569607942,
     1291                0.041618715196029, 0.011581921406822, 0.976836157186356,
     1292                0.011581921406822, 0.344855770229001, 0.606402646106160,
     1293                0.048741583664839, 0.048741583664839, 0.606402646106160,
     1294                0.344855770229001, 0.377843269594854, 0.615842614456541,
     1295                0.006314115948605, 0.006314115948605, 0.615842614456541,
     1296                0.377843269594854, 0.306635479062357, 0.559048000390295,
     1297                0.134316520547348, 0.134316520547348, 0.559048000390295,
     1298                0.306635479062357, 0.249419362774742, 0.736606743262866,
     1299                0.013973893962392, 0.013973893962392, 0.736606743262866,
     1300                0.249419362774742, 0.212775724802802, 0.711675142287434,
     1301                0.075549132909764, 0.075549132909764, 0.711675142287434,
     1302                0.212775724802802, 0.146965436053239, 0.861402717154987,
    14691303                -0.008368153208227,-0.008368153208227, 0.861402717154987,
    1470                  0.146965436053239, 0.137726978828923, 0.835586957912363,
    1471                  0.026686063258714, 0.026686063258714, 0.835586957912363,
    1472                  0.137726978828923, 0.059696109149007, 0.929756171556853,
    1473                  0.010547719294141, 0.010547719294141, 0.929756171556853,
    1474                  0.059696109149007};
     1304                0.146965436053239, 0.137726978828923, 0.835586957912363,
     1305                0.026686063258714, 0.026686063258714, 0.835586957912363,
     1306                0.137726978828923, 0.059696109149007, 0.929756171556853,
     1307                0.010547719294141, 0.010547719294141, 0.929756171556853,
     1308                0.059696109149007};
    14751309        static double l320[]={
    1476                  0.333333333333333, 0.500950464352200, 0.500950464352200,
     1310                0.333333333333333, 0.500950464352200, 0.500950464352200,
    14771311                -0.001900928704400, 0.488212957934729, 0.488212957934729,
    1478                  0.023574084130543, 0.455136681950283, 0.455136681950283,
    1479                  0.089726636099435, 0.401996259318289, 0.401996259318289,
    1480                  0.196007481363421, 0.255892909759421, 0.255892909759421,
    1481                  0.488214180481157, 0.176488255995106, 0.176488255995106,
    1482                  0.647023488009788, 0.104170855336758, 0.104170855336758,
    1483                  0.791658289326483, 0.053068963840930, 0.053068963840930,
    1484                  0.893862072318140, 0.041618715196029, 0.041618715196029,
    1485                  0.916762569607942, 0.011581921406822, 0.011581921406822,
    1486                  0.976836157186356, 0.606402646106160, 0.344855770229001,
    1487                  0.606402646106160, 0.344855770229001, 0.048741583664839,
    1488                  0.048741583664839, 0.615842614456541, 0.377843269594854,
    1489                  0.615842614456541, 0.377843269594854, 0.006314115948605,
    1490                  0.006314115948605, 0.559048000390295, 0.306635479062357,
    1491                  0.559048000390295, 0.306635479062357, 0.134316520547348,
    1492                  0.134316520547348, 0.736606743262866, 0.249419362774742,
    1493                  0.736606743262866, 0.249419362774742, 0.013973893962392,
    1494                  0.013973893962392, 0.711675142287434, 0.212775724802802,
    1495                  0.711675142287434, 0.212775724802802, 0.075549132909764,
    1496                  0.075549132909764, 0.861402717154987, 0.146965436053239,
    1497                  0.861402717154987, 0.146965436053239,-0.008368153208227,
     1312                0.023574084130543, 0.455136681950283, 0.455136681950283,
     1313                0.089726636099435, 0.401996259318289, 0.401996259318289,
     1314                0.196007481363421, 0.255892909759421, 0.255892909759421,
     1315                0.488214180481157, 0.176488255995106, 0.176488255995106,
     1316                0.647023488009788, 0.104170855336758, 0.104170855336758,
     1317                0.791658289326483, 0.053068963840930, 0.053068963840930,
     1318                0.893862072318140, 0.041618715196029, 0.041618715196029,
     1319                0.916762569607942, 0.011581921406822, 0.011581921406822,
     1320                0.976836157186356, 0.606402646106160, 0.344855770229001,
     1321                0.606402646106160, 0.344855770229001, 0.048741583664839,
     1322                0.048741583664839, 0.615842614456541, 0.377843269594854,
     1323                0.615842614456541, 0.377843269594854, 0.006314115948605,
     1324                0.006314115948605, 0.559048000390295, 0.306635479062357,
     1325                0.559048000390295, 0.306635479062357, 0.134316520547348,
     1326                0.134316520547348, 0.736606743262866, 0.249419362774742,
     1327                0.736606743262866, 0.249419362774742, 0.013973893962392,
     1328                0.013973893962392, 0.711675142287434, 0.212775724802802,
     1329                0.711675142287434, 0.212775724802802, 0.075549132909764,
     1330                0.075549132909764, 0.861402717154987, 0.146965436053239,
     1331                0.861402717154987, 0.146965436053239,-0.008368153208227,
    14981332                -0.008368153208227, 0.835586957912363, 0.137726978828923,
    1499                  0.835586957912363, 0.137726978828923, 0.026686063258714,
    1500                  0.026686063258714, 0.929756171556853, 0.059696109149007,
    1501                  0.929756171556853, 0.059696109149007, 0.010547719294141,
    1502                  0.010547719294141};
    1503 
    1504         static double* wgtp[MAX_TRIA_SYM_ORD]={wgt1 ,wgt2 ,wgt3 ,wgt4 ,wgt5 ,
    1505                                                                                    wgt6 ,wgt7 ,wgt8 ,wgt9 ,wgt10,
    1506                                                                                    wgt11,wgt12,wgt13,wgt14,wgt15,
    1507                                                                                    wgt16,wgt17,wgt18,wgt19,wgt20};
    1508         static double* l1p [MAX_TRIA_SYM_ORD]={l11  ,l12  ,l13  ,l14  ,l15  ,
    1509                                                                                    l16  ,l17  ,l18  ,l19  ,l110 ,
    1510                                                                                    l111 ,l112 ,l113 ,l114 ,l115 ,
    1511                                                                                    l116 ,l117 ,l118 ,l119 ,l120 };
    1512         static double* l2p [MAX_TRIA_SYM_ORD]={l21  ,l22  ,l23  ,l24  ,l25  ,
    1513                                                                                    l26  ,l27  ,l28  ,l29  ,l210 ,
    1514                                                                                    l211 ,l212 ,l213 ,l214 ,l215 ,
    1515                                                                                    l216 ,l217 ,l218 ,l219 ,l220 };
    1516         static double* l3p [MAX_TRIA_SYM_ORD]={l31  ,l32  ,l33  ,l34  ,l35  ,
    1517                                                                                    l36  ,l37  ,l38  ,l39  ,l310 ,
    1518                                                                                    l311 ,l312 ,l313 ,l314 ,l315 ,
    1519                                                                                    l316 ,l317 ,l318 ,l319 ,l320 };
     1333                0.835586957912363, 0.137726978828923, 0.026686063258714,
     1334                0.026686063258714, 0.929756171556853, 0.059696109149007,
     1335                0.929756171556853, 0.059696109149007, 0.010547719294141,
     1336                0.010547719294141};
     1337        /*}}}2*/
     1338
     1339        static double* wgtp[MAX_TRIA_SYM_ORD]={
     1340                wgt1 ,wgt2 ,wgt3 ,wgt4 ,wgt5 ,
     1341                wgt6 ,wgt7 ,wgt8 ,wgt9 ,wgt10,
     1342                wgt11,wgt12,wgt13,wgt14,wgt15,
     1343                wgt16,wgt17,wgt18,wgt19,wgt20};
     1344        static double* l1p [MAX_TRIA_SYM_ORD]={
     1345                l11  ,l12  ,l13  ,l14  ,l15  ,
     1346                l16  ,l17  ,l18  ,l19  ,l110 ,
     1347                l111 ,l112 ,l113 ,l114 ,l115 ,
     1348                l116 ,l117 ,l118 ,l119 ,l120 };
     1349        static double* l2p [MAX_TRIA_SYM_ORD]={
     1350                l21  ,l22  ,l23  ,l24  ,l25  ,
     1351                l26  ,l27  ,l28  ,l29  ,l210 ,
     1352                l211 ,l212 ,l213 ,l214 ,l215 ,
     1353                l216 ,l217 ,l218 ,l219 ,l220 };
     1354        static double* l3p [MAX_TRIA_SYM_ORD]={
     1355                l31  ,l32  ,l33  ,l34  ,l35  ,
     1356                l36  ,l37  ,l38  ,l39  ,l310 ,
     1357                l311 ,l312 ,l313 ,l314 ,l315 ,
     1358                l316 ,l317 ,l318 ,l319 ,l320 };
    15201359
    15211360        static int np[MAX_TRIA_SYM_ORD]={sizeof(wgt1 )/sizeof(double),
    1522                                                                          sizeof(wgt2 )/sizeof(double),
    1523                                                                          sizeof(wgt3 )/sizeof(double),
    1524                                                                          sizeof(wgt4 )/sizeof(double),
    1525                                                                          sizeof(wgt5 )/sizeof(double),
    1526                                                                          sizeof(wgt6 )/sizeof(double),
    1527                                                                          sizeof(wgt7 )/sizeof(double),
    1528                                                                          sizeof(wgt8 )/sizeof(double),
    1529                                                                          sizeof(wgt9 )/sizeof(double),
    1530                                                                          sizeof(wgt10)/sizeof(double),
    1531                                                                          sizeof(wgt11)/sizeof(double),
    1532                                                                          sizeof(wgt12)/sizeof(double),
    1533                                                                          sizeof(wgt13)/sizeof(double),
    1534                                                                          sizeof(wgt14)/sizeof(double),
    1535                                                                          sizeof(wgt15)/sizeof(double),
    1536                                                                          sizeof(wgt16)/sizeof(double),
    1537                                                                          sizeof(wgt17)/sizeof(double),
    1538                                                                          sizeof(wgt18)/sizeof(double),
    1539                                                                          sizeof(wgt19)/sizeof(double),
    1540                                                                          sizeof(wgt20)/sizeof(double)};
    1541 
    1542 //      _printf_("GaussTria: iord=%d\n",iord);
    1543 
    1544 /*  check to see if Gauss points need to be calculated  */
    1545 
     1361                sizeof(wgt2 )/sizeof(double),
     1362                sizeof(wgt3 )/sizeof(double),
     1363                sizeof(wgt4 )/sizeof(double),
     1364                sizeof(wgt5 )/sizeof(double),
     1365                sizeof(wgt6 )/sizeof(double),
     1366                sizeof(wgt7 )/sizeof(double),
     1367                sizeof(wgt8 )/sizeof(double),
     1368                sizeof(wgt9 )/sizeof(double),
     1369                sizeof(wgt10)/sizeof(double),
     1370                sizeof(wgt11)/sizeof(double),
     1371                sizeof(wgt12)/sizeof(double),
     1372                sizeof(wgt13)/sizeof(double),
     1373                sizeof(wgt14)/sizeof(double),
     1374                sizeof(wgt15)/sizeof(double),
     1375                sizeof(wgt16)/sizeof(double),
     1376                sizeof(wgt17)/sizeof(double),
     1377                sizeof(wgt18)/sizeof(double),
     1378                sizeof(wgt19)/sizeof(double),
     1379                sizeof(wgt20)/sizeof(double)};
     1380
     1381        //      _printf_("GaussTria: iord=%d\n",iord);
     1382
     1383        /*  check to see if Gauss points need to be calculated  */
    15461384        if (iord <= MAX_TRIA_SYM_ORD) {
    15471385
    1548 /*  copy the points from the static arrays (noting that the pointers
    1549         could be returned directly, but then the calling function would
    1550         have to know to not free them)  */
     1386                /*  copy the points from the static arrays (noting that the pointers
     1387                         could be returned directly, but then the calling function would
     1388                         have to know to not free them)  */
    15511389
    15521390                *pngaus=np[iord-1];
     
    15641402                }
    15651403        }
    1566 
    15671404        else {
    15681405
    1569 /*  calculate the Gauss points from the collapsed quadrilateral  */
    1570 
     1406                /*  calculate the Gauss points from the collapsed quadrilateral  */
    15711407                nigaus =iord/2+1;
    15721408                *pngaus=nigaus*nigaus;
     
    15771413                *pwgt = (double *) xmalloc(*pngaus*sizeof(double));
    15781414
    1579 /*  get the gauss points in each direction  */
    1580 
     1415                /*  get the gauss points in each direction  */
    15811416                GaussLegendre(&xgaus, &xwgt, nigaus);
    15821417
     
    15841419                ewgt =xwgt;
    15851420
    1586 /*  collapse the gauss points into the triangle and transform into
    1587         area coordinates  */
    1588 
     1421                /*  collapse the gauss points into the triangle and transform into
     1422                         area coordinates  */
    15891423                ipt=0;
    15901424                for (j=0; j<nigaus; j++) {
     
    16011435                        }
    16021436                }
    1603 
    16041437                xfree((void **)&xwgt );
    16051438                xfree((void **)&xgaus);
    16061439        }
    16071440
    1608 //      _printf_("GaussTria - ngaus=%d\n",*pngaus);
    1609 //      for (i=0; i<*pngaus; i++)
    1610 //              _printf_("i=%d: l1gaus=%f,l2gaus=%f,l3gaus=%f,wgt=%f\n",
    1611 //                               i,(*pl1 )[i],(*pl2 )[i],(*pl3 )[i],(*pwgt)[i]);
    1612 
    1613         return ;
    1614 }
    1615 
    1616 
    1617 /*=======1=========2=========3=========4=========5=========6=========7=========8
    1618 
    1619         GaussHexa.c    Gauss quadrature points for the hexahedron.
    1620 
    1621         04/25/05    jes    Initial development.
    1622 
    1623         Input:
    1624                 int         nigaus    number of xi gauss points
    1625                 int         njgaus    number of eta gauss points
    1626                 int         nkgaus    number of zeta gauss points
    1627 
    1628         Output:
    1629                 double**    pxgaus    abscissas of xi gauss points
    1630                                                                   (allocated below)
    1631                 double**    pxwgt     weights of xi gauss points
    1632                                                                   (allocated below)
    1633                 double**    pegaus    abscissas of eta gauss points
    1634                                                                   (allocated below)
    1635                 double**    pewgt     weights of eta gauss points
    1636                                                                   (allocated below)
    1637                 double**    pzgaus    abscissas of zeta gauss points
    1638                                                                   (allocated below)
    1639                 double**    pzwgt     weights of zeta gauss points
    1640                                                                   (allocated below)
    1641                 int                   function return value
    1642 
    1643 =========1=========2=========3=========4=========5=========6=========7========*/
    1644 void GaussHexa( double** pxgaus, double** pxwgt, double** pegaus, double** pewgt, double** pzgaus, double** pzwgt, int nigaus, int njgaus, int nkgaus ) {
     1441        //      _printf_("GaussTria - ngaus=%d\n",*pngaus);
     1442        //      for (i=0; i<*pngaus; i++)
     1443        //              _printf_("i=%d: l1gaus=%f,l2gaus=%f,l3gaus=%f,wgt=%f\n",
     1444        //                               i,(*pl1 )[i],(*pl2 )[i],(*pl3 )[i],(*pwgt)[i]);
     1445
     1446        return;
     1447}/*}}}1*/
     1448/*FUNCTION GaussHexa{{{1*/
     1449void GaussHexa( double** pxgaus, double** pxwgt, double** pegaus, double** pewgt, double** pzgaus, double** pzwgt, int nigaus, int njgaus, int nkgaus ) {
     1450        /*Gauss quadrature points for the hexahedron.*/
    16451451
    16461452        /*  get the gauss points using the product of three line rules  */
    1647 
    16481453        GaussLegendre(pxgaus, pxwgt, nigaus);
    1649 
    16501454        GaussLegendre(pegaus, pewgt, njgaus);
    1651 
    16521455        GaussLegendre(pzgaus, pzwgt, nkgaus);
    1653 }
    1654 
    1655 
    1656 /*=======1=========2=========3=========4=========5=========6=========7=========8
    1657 
    1658         GaussPenta.c    Gauss quadrature points for the pentahedron.
    1659 
    1660         04/26/05    jes    Initial development.
    1661 
    1662         Input:
    1663                 int         iord      order for the tria Gauss quadrature
    1664                 int         nkgaus    number of zeta gauss points
    1665 
    1666         Output:
    1667                 int*        pngaus    number of tria Gauss points
    1668                 double**    pl1       first area coordinates of tria gauss points
    1669                                                                   (allocated below)
    1670                 double**    pl2       second area coordinates of tria gauss points
    1671                                                                   (allocated below)
    1672                 double**    pl3       third area coordinates of tria gauss points
    1673                                                                   (allocated below)
    1674                 double**    pwgt      weights of tria gauss points
    1675                                                                   (allocated below)
    1676                 double**    pzgaus    abscissas of zeta gauss points
    1677                                                                   (allocated below)
    1678                 double**    pzwgt     weights of zeta gauss points
    1679                                                                   (allocated below)
    1680                 int                   function return value
    1681 
    1682 =========1=========2=========3=========4=========5=========6=========7========*/
     1456}/*}}}1*/
     1457/*FUNCTION GaussPenta{{{1*/
    16831458void GaussPenta( int* pngaus, double** pl1, double** pl2, double** pl3, double** pwgt, double** pzgaus, double** pzwgt, int iord, int nkgaus ) {
    1684 
    1685 /*  get the gauss points using the product of triangular and line rules  */
    1686 
     1459        /*Gauss quadrature points for the pentahedron.*/
     1460
     1461        /*  get the gauss points using the product of triangular and line rules  */
    16871462        GaussTria(pngaus, pl1, pl2, pl3, pwgt, iord);
    1688 
    16891463        GaussLegendre(pzgaus, pzwgt, nkgaus);
    16901464       
    1691 }
    1692 
    1693 
    1694 /*=======1=========2=========3=========4=========5=========6=========7=========8
    1695 
    1696         GaussTetra.c    Gauss quadrature points for the tetrahedron.
    1697 
    1698         04/22/05    jes    Initial development.
    1699 
    1700         Input:
    1701                 int         iord     order for the Gauss quadrature
    1702 
    1703         Output:
    1704                 int*        pngaus    number of Gauss points
    1705                 double**    pl1       first volume coordinates of Gauss points
    1706                                                                   (allocated below)
    1707                 double**    pl2       second volume coordinates of Gauss points
    1708                                                                   (allocated below)
    1709                 double**    pl3       third volume coordinates of Gauss points
    1710                                                                   (allocated below)
    1711                 double**    pl4       third volume coordinates of Gauss points
    1712                                                                   (allocated below)
    1713                 double**    pwgt      weights of Gauss points
    1714                                                                   (allocated below)
    1715                 int                   function return value
    1716 
    1717         p=2-3 points from Y. Jinyun, "Symmetric Gaussian Quadrature
    1718         Formulae for Tetrahedronal Regions", Computer Methods in Applied
    1719         Mechanics and Engineering, Vol. 43, pp. 349-353 (1984).
    1720 
    1721         p=4-6 points from P. Keast, "Moderate-Degree Tetrahedral
    1722         Quadrature Formulas", Computer Methods in Applied Mechanics and
    1723         Engineering, Vol. 55, pp. 339-348 (1986).
    1724 
    1725 =========1=========2=========3=========4=========5=========6=========7========*/
     1465}/*}}}1*/
     1466/*FUNCTION GaussTetra{{{1*/
    17261467void GaussTetra( int* pngaus, double** pl1, double** pl2, double** pl3, double** pl4, double** pwgt, int iord ) {
     1468        /* Gauss quadrature points for the tetrahedron.
     1469
     1470                p=2-3 points from Y. Jinyun, "Symmetric Gaussian Quadrature
     1471                Formulae for Tetrahedronal Regions", Computer Methods in Applied
     1472                Mechanics and Engineering, Vol. 43, pp. 349-353 (1984).
     1473
     1474                p=4-6 points from P. Keast, "Moderate-Degree Tetrahedral
     1475                Quadrature Formulas", Computer Methods in Applied Mechanics and
     1476                Engineering, Vol. 55, pp. 339-348 (1986).*/
     1477
     1478        /*Intermediaries*/
    17271479        int i,j,k,ipt,nigaus;
    17281480        double xi,eta,zeta;
    17291481        double *xgaus=NULL,*xwgt=NULL,*egaus,*ewgt,*zgaus,*zwgt;
    17301482
    1731 /*  p= 1, npoint= 1  */
    1732 
     1483        /*Hardcoded Gauss points definition*/
     1484        /*p= 1, npoint= 1  {{{2*/
    17331485        static double wgt1[]={
    1734                  1.000000000000000};
     1486                1.000000000000000};
    17351487        static double l11[]={
    1736                  0.250000000000000};
     1488                0.250000000000000};
    17371489        static double l21[]={
    1738                  0.250000000000000};
     1490                0.250000000000000};
    17391491        static double l31[]={
    1740                  0.250000000000000};
     1492                0.250000000000000};
    17411493        static double l41[]={
    1742                  0.250000000000000};
    1743 
    1744 /*  p= 2, npoint= 4  */
     1494                0.250000000000000};
     1495        /*}}}2*/
     1496        /*p= 2, npoint= 4  {{{2*/
    17451497
    17461498        static double wgt2[]={
    1747                  0.250000000000000, 0.250000000000000, 0.250000000000000,
    1748                  0.250000000000000};
     1499                0.250000000000000, 0.250000000000000, 0.250000000000000,
     1500                0.250000000000000};
    17491501        static double l12[]={
    1750                  0.585410196624969, 0.138196601125011, 0.138196601125011,
    1751                  0.138196601125011};
     1502                0.585410196624969, 0.138196601125011, 0.138196601125011,
     1503                0.138196601125011};
    17521504        static double l22[]={
    1753                  0.138196601125011, 0.585410196624969, 0.138196601125011,
    1754                  0.138196601125011};
     1505                0.138196601125011, 0.585410196624969, 0.138196601125011,
     1506                0.138196601125011};
    17551507        static double l32[]={
    1756                  0.138196601125011, 0.138196601125011, 0.585410196624969,
    1757                  0.138196601125011};
     1508                0.138196601125011, 0.138196601125011, 0.585410196624969,
     1509                0.138196601125011};
    17581510        static double l42[]={
    1759                  0.138196601125011, 0.138196601125011, 0.138196601125011,
    1760                  0.585410196624969};
    1761 
    1762 /*  p= 3, npoint= 5  */
    1763 
     1511                0.138196601125011, 0.138196601125011, 0.138196601125011,
     1512                0.585410196624969};
     1513        /*}}}2*/
     1514        /*p= 3, npoint= 5  {{{2*/
    17641515        static double wgt3[]={
    17651516                -0.800000000000000, 0.450000000000000, 0.450000000000000,
    1766                  0.450000000000000, 0.450000000000000};
     1517                0.450000000000000, 0.450000000000000};
    17671518        static double l13[]={
    1768                  0.250000000000000, 0.500000000000000, 0.166666666666667,
    1769                  0.166666666666667, 0.166666666666667};
     1519                0.250000000000000, 0.500000000000000, 0.166666666666667,
     1520                0.166666666666667, 0.166666666666667};
    17701521        static double l23[]={
    1771                  0.250000000000000, 0.166666666666667, 0.500000000000000,
    1772                  0.166666666666667, 0.166666666666667};
     1522                0.250000000000000, 0.166666666666667, 0.500000000000000,
     1523                0.166666666666667, 0.166666666666667};
    17731524        static double l33[]={
    1774                  0.250000000000000, 0.166666666666667, 0.166666666666667,
    1775                  0.500000000000000, 0.166666666666667};
     1525                0.250000000000000, 0.166666666666667, 0.166666666666667,
     1526                0.500000000000000, 0.166666666666667};
    17761527        static double l43[]={
    1777                  0.250000000000000, 0.166666666666667, 0.166666666666667,
    1778                  0.166666666666667, 0.500000000000000};
    1779 
    1780 /*  p= 4, npoint=11  */
     1528                0.250000000000000, 0.166666666666667, 0.166666666666667,
     1529                0.166666666666667, 0.500000000000000};
     1530        /*}}}2*/
     1531        /*p= 4, npoint=11  {{{2*/
    17811532
    17821533        static double wgt4[]={
    17831534                -0.013155555555556, 0.007622222222222, 0.007622222222222,
    1784                  0.007622222222222, 0.007622222222222, 0.024888888888889,
    1785                  0.024888888888889, 0.024888888888889, 0.024888888888889,
    1786                  0.024888888888889, 0.024888888888889};
     1535                0.007622222222222, 0.007622222222222, 0.024888888888889,
     1536                0.024888888888889, 0.024888888888889, 0.024888888888889,
     1537                0.024888888888889, 0.024888888888889};
    17871538        static double l14[]={
    1788                  0.250000000000000, 0.785714285714286, 0.071428571428571,
    1789                  0.071428571428571, 0.071428571428571, 0.399403576166799,
    1790                  0.399403576166799, 0.399403576166799, 0.100596423833201,
    1791                  0.100596423833201, 0.100596423833201};
     1539                0.250000000000000, 0.785714285714286, 0.071428571428571,
     1540                0.071428571428571, 0.071428571428571, 0.399403576166799,
     1541                0.399403576166799, 0.399403576166799, 0.100596423833201,
     1542                0.100596423833201, 0.100596423833201};
    17921543        static double l24[]={
    1793                  0.250000000000000, 0.071428571428571, 0.785714285714286,
    1794                  0.071428571428571, 0.071428571428571, 0.399403576166799,
    1795                  0.100596423833201, 0.100596423833201, 0.399403576166799,
    1796                  0.399403576166799, 0.100596423833201};
     1544                0.250000000000000, 0.071428571428571, 0.785714285714286,
     1545                0.071428571428571, 0.071428571428571, 0.399403576166799,
     1546                0.100596423833201, 0.100596423833201, 0.399403576166799,
     1547                0.399403576166799, 0.100596423833201};
    17971548        static double l34[]={
    1798                  0.250000000000000, 0.071428571428571, 0.071428571428571,
    1799                  0.785714285714286, 0.071428571428571, 0.100596423833201,
    1800                  0.399403576166799, 0.100596423833201, 0.399403576166799,
    1801                  0.100596423833201, 0.399403576166799};
     1549                0.250000000000000, 0.071428571428571, 0.071428571428571,
     1550                0.785714285714286, 0.071428571428571, 0.100596423833201,
     1551                0.399403576166799, 0.100596423833201, 0.399403576166799,
     1552                0.100596423833201, 0.399403576166799};
    18021553        static double l44[]={
    1803                  0.250000000000000, 0.071428571428571, 0.071428571428571,
    1804                  0.071428571428571, 0.785714285714286, 0.100596423833201,
    1805                  0.100596423833201, 0.399403576166799, 0.100596423833201,
    1806                  0.399403576166799, 0.399403576166799};
    1807 
    1808 /*  p= 5, npoint=15  */
     1554                0.250000000000000, 0.071428571428571, 0.071428571428571,
     1555                0.071428571428571, 0.785714285714286, 0.100596423833201,
     1556                0.100596423833201, 0.399403576166799, 0.100596423833201,
     1557                0.399403576166799, 0.399403576166799};
     1558        /*}}}2*/
     1559        /*p= 5, npoint=15  {{{2*/
    18091560
    18101561        static double wgt5[]={
    1811                  0.030283678097089, 0.006026785714286, 0.006026785714286,
    1812                  0.006026785714286, 0.006026785714286, 0.011645249086029,
    1813                  0.011645249086029, 0.011645249086029, 0.011645249086029,
    1814                  0.010949141561386, 0.010949141561386, 0.010949141561386,
    1815                  0.010949141561386, 0.010949141561386, 0.010949141561386};
     1562                0.030283678097089, 0.006026785714286, 0.006026785714286,
     1563                0.006026785714286, 0.006026785714286, 0.011645249086029,
     1564                0.011645249086029, 0.011645249086029, 0.011645249086029,
     1565                0.010949141561386, 0.010949141561386, 0.010949141561386,
     1566                0.010949141561386, 0.010949141561386, 0.010949141561386};
    18161567        static double l15[]={
    1817                  0.250000000000000, 0.000000000000000, 0.333333333333333,
    1818                  0.333333333333333, 0.333333333333333, 0.727272727272727,
    1819                  0.090909090909091, 0.090909090909091, 0.090909090909091,
    1820                  0.066550153573664, 0.066550153573664, 0.066550153573664,
    1821                  0.433449846426336, 0.433449846426336, 0.433449846426336};
     1568                0.250000000000000, 0.000000000000000, 0.333333333333333,
     1569                0.333333333333333, 0.333333333333333, 0.727272727272727,
     1570                0.090909090909091, 0.090909090909091, 0.090909090909091,
     1571                0.066550153573664, 0.066550153573664, 0.066550153573664,
     1572                0.433449846426336, 0.433449846426336, 0.433449846426336};
    18221573        static double l25[]={
    1823                  0.250000000000000, 0.333333333333333, 0.000000000000000,
    1824                  0.333333333333333, 0.333333333333333, 0.090909090909091,
    1825                  0.727272727272727, 0.090909090909091, 0.090909090909091,
    1826                  0.066550153573664, 0.433449846426336, 0.433449846426336,
    1827                  0.066550153573664, 0.066550153573664, 0.433449846426336};
     1574                0.250000000000000, 0.333333333333333, 0.000000000000000,
     1575                0.333333333333333, 0.333333333333333, 0.090909090909091,
     1576                0.727272727272727, 0.090909090909091, 0.090909090909091,
     1577                0.066550153573664, 0.433449846426336, 0.433449846426336,
     1578                0.066550153573664, 0.066550153573664, 0.433449846426336};
    18281579        static double l35[]={
    1829                  0.250000000000000, 0.333333333333333, 0.333333333333333,
    1830                  0.000000000000000, 0.333333333333333, 0.090909090909091,
    1831                  0.090909090909091, 0.727272727272727, 0.090909090909091,
    1832                  0.433449846426336, 0.066550153573664, 0.433449846426336,
    1833                  0.066550153573664, 0.433449846426336, 0.066550153573664};
     1580                0.250000000000000, 0.333333333333333, 0.333333333333333,
     1581                0.000000000000000, 0.333333333333333, 0.090909090909091,
     1582                0.090909090909091, 0.727272727272727, 0.090909090909091,
     1583                0.433449846426336, 0.066550153573664, 0.433449846426336,
     1584                0.066550153573664, 0.433449846426336, 0.066550153573664};
    18341585        static double l45[]={
    1835                  0.250000000000000, 0.333333333333333, 0.333333333333333,
    1836                  0.333333333333333, 0.000000000000000, 0.090909090909091,
    1837                  0.090909090909091, 0.090909090909091, 0.727272727272727,
    1838                  0.433449846426336, 0.433449846426336, 0.066550153573664,
    1839                  0.433449846426336, 0.066550153573664, 0.066550153573664};
    1840 
    1841 /*  p= 6, npoint=24  */
     1586                0.250000000000000, 0.333333333333333, 0.333333333333333,
     1587                0.333333333333333, 0.000000000000000, 0.090909090909091,
     1588                0.090909090909091, 0.090909090909091, 0.727272727272727,
     1589                0.433449846426336, 0.433449846426336, 0.066550153573664,
     1590                0.433449846426336, 0.066550153573664, 0.066550153573664};
     1591        /*}}}2*/
     1592        /*p= 6, npoint=24  {{{2*/
    18421593
    18431594        static double wgt6[]={
    1844                  0.006653791709695, 0.006653791709695, 0.006653791709695,
    1845                  0.006653791709695, 0.001679535175887, 0.001679535175887,
    1846                  0.001679535175887, 0.001679535175887, 0.009226196923942,
    1847                  0.009226196923942, 0.009226196923942, 0.009226196923942,
    1848                  0.008035714285714, 0.008035714285714, 0.008035714285714,
    1849                  0.008035714285714, 0.008035714285714, 0.008035714285714,
    1850                  0.008035714285714, 0.008035714285714, 0.008035714285714,
    1851                  0.008035714285714, 0.008035714285714, 0.008035714285714};
     1595                0.006653791709695, 0.006653791709695, 0.006653791709695,
     1596                0.006653791709695, 0.001679535175887, 0.001679535175887,
     1597                0.001679535175887, 0.001679535175887, 0.009226196923942,
     1598                0.009226196923942, 0.009226196923942, 0.009226196923942,
     1599                0.008035714285714, 0.008035714285714, 0.008035714285714,
     1600                0.008035714285714, 0.008035714285714, 0.008035714285714,
     1601                0.008035714285714, 0.008035714285714, 0.008035714285714,
     1602                0.008035714285714, 0.008035714285714, 0.008035714285714};
    18521603        static double l16[]={
    1853                  0.356191386222545, 0.214602871259152, 0.214602871259152,
    1854                  0.214602871259152, 0.877978124396166, 0.040673958534611,
    1855                  0.040673958534611, 0.040673958534611, 0.032986329573173,
    1856                  0.322337890142276, 0.322337890142276, 0.322337890142276,
    1857 
    1858                  0.063661001875018, 0.063661001875018, 0.063661001875018,
    1859                  0.063661001875018, 0.063661001875018, 0.063661001875018,
    1860                  0.269672331458316, 0.603005664791649, 0.269672331458316,
    1861                  0.603005664791649, 0.269672331458316, 0.603005664791649};
     1604                0.356191386222545, 0.214602871259152, 0.214602871259152,
     1605                0.214602871259152, 0.877978124396166, 0.040673958534611,
     1606                0.040673958534611, 0.040673958534611, 0.032986329573173,
     1607                0.322337890142276, 0.322337890142276, 0.322337890142276,
     1608
     1609                0.063661001875018, 0.063661001875018, 0.063661001875018,
     1610                0.063661001875018, 0.063661001875018, 0.063661001875018,
     1611                0.269672331458316, 0.603005664791649, 0.269672331458316,
     1612                0.603005664791649, 0.269672331458316, 0.603005664791649};
    18621613        static double l26[]={
    1863                  0.214602871259152, 0.356191386222545, 0.214602871259152,
    1864                  0.214602871259152, 0.040673958534611, 0.877978124396166,
    1865                  0.040673958534611, 0.040673958534611, 0.322337890142276,
    1866                  0.032986329573173, 0.322337890142276, 0.322337890142276,
    1867 
    1868                  0.063661001875018, 0.063661001875018, 0.269672331458316,
    1869                  0.603005664791649, 0.269672331458316, 0.603005664791649,
    1870                  0.063661001875018, 0.063661001875018, 0.063661001875018,
    1871                  0.063661001875018, 0.603005664791649, 0.269672331458316};
     1614                0.214602871259152, 0.356191386222545, 0.214602871259152,
     1615                0.214602871259152, 0.040673958534611, 0.877978124396166,
     1616                0.040673958534611, 0.040673958534611, 0.322337890142276,
     1617                0.032986329573173, 0.322337890142276, 0.322337890142276,
     1618
     1619                0.063661001875018, 0.063661001875018, 0.269672331458316,
     1620                0.603005664791649, 0.269672331458316, 0.603005664791649,
     1621                0.063661001875018, 0.063661001875018, 0.063661001875018,
     1622                0.063661001875018, 0.603005664791649, 0.269672331458316};
    18721623        static double l36[]={
    1873                  0.214602871259152, 0.214602871259152, 0.356191386222545,
    1874                  0.214602871259152, 0.040673958534611, 0.040673958534611,
    1875                  0.877978124396166, 0.040673958534611, 0.322337890142276,
    1876                  0.322337890142276, 0.032986329573173, 0.322337890142276,
    1877 
    1878                  0.269672331458316, 0.603005664791649, 0.063661001875018,
    1879                  0.063661001875018, 0.603005664791649, 0.269672331458316,
    1880                  0.063661001875018, 0.063661001875018, 0.603005664791649,
    1881                  0.269672331458316, 0.063661001875018, 0.063661001875018};
     1624                0.214602871259152, 0.214602871259152, 0.356191386222545,
     1625                0.214602871259152, 0.040673958534611, 0.040673958534611,
     1626                0.877978124396166, 0.040673958534611, 0.322337890142276,
     1627                0.322337890142276, 0.032986329573173, 0.322337890142276,
     1628
     1629                0.269672331458316, 0.603005664791649, 0.063661001875018,
     1630                0.063661001875018, 0.603005664791649, 0.269672331458316,
     1631                0.063661001875018, 0.063661001875018, 0.603005664791649,
     1632                0.269672331458316, 0.063661001875018, 0.063661001875018};
    18821633        static double l46[]={
    1883                  0.214602871259152, 0.214602871259152, 0.214602871259152,
    1884                  0.356191386222545, 0.040673958534611, 0.040673958534611,
    1885                  0.040673958534611, 0.877978124396166, 0.322337890142276,
    1886                  0.322337890142276, 0.322337890142276, 0.032986329573173,
    1887 
    1888                  0.603005664791649, 0.269672331458316, 0.603005664791649,
    1889                  0.269672331458316, 0.063661001875018, 0.063661001875018,
    1890                  0.603005664791649, 0.269672331458316, 0.063661001875018,
    1891                  0.063661001875018, 0.063661001875018, 0.063661001875018};
    1892 
    1893         static double* wgtp[MAX_TETRA_SYM_ORD]={wgt1 ,wgt2 ,wgt3 ,wgt4 ,wgt5 ,
    1894                                                                                         wgt6 };
    1895         static double* l1p [MAX_TETRA_SYM_ORD]={l11  ,l12  ,l13  ,l14  ,l15  ,
    1896                                                                                         l16  };
    1897         static double* l2p [MAX_TETRA_SYM_ORD]={l21  ,l22  ,l32  ,l24  ,l25  ,
    1898                                                                                         l26  };
    1899         static double* l3p [MAX_TETRA_SYM_ORD]={l31  ,l32  ,l33  ,l34  ,l35  ,
    1900                                                                                         l36  };
    1901         static double* l4p [MAX_TETRA_SYM_ORD]={l41  ,l42  ,l43  ,l44  ,l45  ,
    1902                                                                                         l46  };
     1634                0.214602871259152, 0.214602871259152, 0.214602871259152,
     1635                0.356191386222545, 0.040673958534611, 0.040673958534611,
     1636                0.040673958534611, 0.877978124396166, 0.322337890142276,
     1637                0.322337890142276, 0.322337890142276, 0.032986329573173,
     1638
     1639                0.603005664791649, 0.269672331458316, 0.603005664791649,
     1640                0.269672331458316, 0.063661001875018, 0.063661001875018,
     1641                0.603005664791649, 0.269672331458316, 0.063661001875018,
     1642                0.063661001875018, 0.063661001875018, 0.063661001875018};
     1643        /*}}}2*/
     1644
     1645        static double* wgtp[MAX_TETRA_SYM_ORD]={wgt1,wgt2,wgt3,wgt4,wgt5,wgt6};
     1646        static double* l1p [MAX_TETRA_SYM_ORD]={l11 ,l12 ,l13 ,l14 ,l15 ,l16 };
     1647        static double* l2p [MAX_TETRA_SYM_ORD]={l21 ,l22 ,l32 ,l24 ,l25 ,l26 };
     1648        static double* l3p [MAX_TETRA_SYM_ORD]={l31 ,l32 ,l33 ,l34 ,l35 ,l36 };
     1649        static double* l4p [MAX_TETRA_SYM_ORD]={l41 ,l42 ,l43 ,l44 ,l45 ,l46 };
    19031650
    19041651        static int np[MAX_TETRA_SYM_ORD]={sizeof(wgt1 )/sizeof(double),
    1905                                                                           sizeof(wgt2 )/sizeof(double),
    1906                                                                           sizeof(wgt3 )/sizeof(double),
    1907                                                                           sizeof(wgt4 )/sizeof(double),
    1908                                                                           sizeof(wgt5 )/sizeof(double),
    1909                                                                           sizeof(wgt6 )/sizeof(double)};
    1910 
    1911 //      _printf_("GaussTetra: iord=%d\n",iord);
    1912 
    1913 /*  check to see if Gauss points need to be calculated  */
    1914 
     1652                sizeof(wgt2 )/sizeof(double),
     1653                sizeof(wgt3 )/sizeof(double),
     1654                sizeof(wgt4 )/sizeof(double),
     1655                sizeof(wgt5 )/sizeof(double),
     1656                sizeof(wgt6 )/sizeof(double)};
     1657
     1658        //      _printf_("GaussTetra: iord=%d\n",iord);
     1659
     1660        /*  check to see if Gauss points need to be calculated  */
    19151661        if (iord <= MAX_TETRA_SYM_ORD) {
    19161662
    1917 /*  copy the points from the static arrays (noting that the pointers
    1918         could be returned directly, but then the calling function would
    1919         have to know to not free them), and multiply the weights by the
    1920         volume of the parametric tetrahedron  */
     1663                /*  copy the points from the static arrays (noting that the pointers
     1664                         could be returned directly, but then the calling function would
     1665                         have to know to not free them), and multiply the weights by the
     1666                         volume of the parametric tetrahedron  */
    19211667
    19221668                *pngaus=np[iord-1];
     
    19361682                }
    19371683        }
    1938 
    19391684        else {
    19401685
    1941 /*  calculate the Gauss points from the collapsed hexahedron  */
    1942 
     1686                /*  calculate the Gauss points from the collapsed hexahedron  */
    19431687                nigaus =iord/2+1;
    19441688                *pngaus=nigaus*nigaus*nigaus;
     
    19501694                *pwgt = (double *) xmalloc(*pngaus*sizeof(double));
    19511695
    1952 /*  get the gauss points in each direction  */
    1953 
     1696                /*  get the gauss points in each direction  */
    19541697                GaussLegendre(&xgaus, &xwgt, nigaus);
    19551698
     
    19591702                zwgt =xwgt;
    19601703
    1961 /*  collapse the gauss points into the tetrahedron and transform into
    1962         volume coordinates  */
    1963 
     1704                /*  collapse the gauss points into the tetrahedron and transform into
     1705                         volume coordinates  */
    19641706                ipt=0;
    19651707                for (k=0; k<nigaus; k++) {
     
    19681710                                        xi        =1./4.*(1.-egaus[j])*(1.-zgaus[k])*xgaus[i];
    19691711                                        eta       =1./4./SQRT3
    1970                                                            *(5.+3.*egaus[j]-zgaus[k]-3.*egaus[j]*zgaus[k]);
     1712                                          *(5.+3.*egaus[j]-zgaus[k]-3.*egaus[j]*zgaus[k]);
    19711713                                        zeta      =sqrt(2./3.)*(1.+zgaus[k]);
    19721714                                        (*pwgt)[ipt]=xwgt[i]*ewgt[j]*zwgt[k]
    1973                                                                 *(SQRT2/16.
    1974                                                                    *(1.-egaus[j])*pow(1.-zgaus[k],2.));
     1715                                          *(SQRT2/16.
     1716                                                                  *(1.-egaus[j])*pow(1.-zgaus[k],2.));
    19751717
    19761718                                        (*pl1 )[ipt]=(1.-xi-eta/SQRT3-zeta/sqrt(6.))/2.;
     
    19831725                        }
    19841726                }
    1985 
    19861727                xfree((void **)&xwgt );
    19871728                xfree((void **)&xgaus);
    19881729        }
    1989 
    1990 }
    1991 
    1992 
    1993 /*
    1994  * GaussSegment.c:
    1995  *
    1996  * This routine computes gaussian points on a reference segment from -1 to 1.
    1997  * The order p of integration depends on the number of gaussian points and can be computed from the polynomial degree p that needs to be integrated.
    1998  * numgauss= (p+1) /2 */
    1999 
     1730}/*}}}1*/
     1731/*FUNCTION GaussSegment{{{1*/
    20001732void GaussSegment(double** psegment_coord,double** pgauss_weights,int num_gauss){
     1733        /* GaussSegment:
     1734         * This routine computes gaussian points on a reference segment from -1 to 1.
     1735         * The order p of integration depends on the number of gaussian points and can be computed from the polynomial degree p that needs to be integrated.
     1736         * numgauss= (p+1) /2 */
     1737
     1738        /*WARNING: This is a copy of GaussLegendre: Merge the two!*/
    20011739
    20021740        double* segment_coord=NULL;
     
    20821820        *psegment_coord=segment_coord;
    20831821        return;
    2084 }
     1822}/*}}}1*/
  • issm/trunk/src/c/shared/Numerics/GaussPoints.h

    r99 r4417  
    55#ifndef _GAUSSPOINTS_H
    66#define _GAUSSPOINTS_H
    7 
    87
    98#define    MAX_LINE_GAUS_PTS    4
     
    3130
    3231#endif
    33 
Note: See TracChangeset for help on using the changeset viewer.