Changeset 4417
- Timestamp:
- 07/06/10 15:24:49 (15 years ago)
- Location:
- issm/trunk/src/c/shared/Numerics
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/shared/Numerics/GaussPoints.cpp
r3784 r4417 1 1 /* Gauss point structures and prototypes */ 2 3 2 4 3 #include "./GaussPoints.h" … … 10 9 #include <float.h> 11 10 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*/ 13 void 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 34 19 alpha(i)=0. 35 20 beta (i)=1./(4.-1./(i-1)^2)) 36 21 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*/ 43 26 int i; 44 27 double *alpha,*beta; 45 28 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}; 75 44 76 45 static double* wgtp[MAX_LINE_GAUS_PTS]={wgt1 ,wgt2 ,wgt3 ,wgt4 }; … … 78 47 79 48 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 */ 91 58 if (ngaus <= MAX_LINE_GAUS_PTS) { 92 59 93 /* copy the points from the static arrays (noting that the pointers94 could be returned directly, but then the calling function would95 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) */ 96 63 97 64 for (i=0; i<ngaus; i++) { … … 100 67 } 101 68 } 102 103 69 else { 104 70 105 /* calculate the Gauss points using recurrence relations */ 106 71 /* calculate the Gauss points using recurrence relations */ 107 72 alpha=(double *) xmalloc(ngaus*sizeof(double)); 108 73 beta =(double *) xmalloc(ngaus*sizeof(double)); 109 74 110 /* calculate the Legendre recurrence coefficients */ 111 75 /* calculate the Legendre recurrence coefficients */ 112 76 alpha[0]=0.; 113 77 beta [0]=2.; … … 118 82 } 119 83 120 /* calculate the Gauss points */ 121 84 /* calculate the Gauss points */ 122 85 GaussRecur(*pxgaus, *pxwgt, ngaus, alpha, beta ); 123 86 xfree((void **)&beta ); 124 87 xfree((void **)&alpha); 125 88 } 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*/ 163 91 void 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).*/ 164 105 165 106 int i; … … 168 109 double p0l=0.,p0r=0.,p1l=1.,p1r=1.,pm1l,pm1r,det; 169 110 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}; 208 130 209 131 static double* wgtp[MAX_LINE_GLOB_PTS]={wgt1 ,wgt2 ,wgt3 ,wgt4 ,wgt5 }; … … 211 133 212 134 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 */ 225 145 if (ngaus <= MAX_LINE_GLOB_PTS) { 226 146 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) */ 231 150 for (i=0; i<ngaus; i++) { 232 151 (*pxgaus)[i]=xip [ngaus-1][i]; … … 234 153 } 235 154 } 236 237 155 else { 238 156 239 /* calculate the Gauss points using recurrence relations */ 240 157 /* calculate the Gauss points using recurrence relations */ 241 158 alpha=(double *) xmalloc(ngaus*sizeof(double)); 242 159 beta =(double *) xmalloc(ngaus*sizeof(double)); 243 160 244 /* calculate the Legendre recurrence coefficients */ 245 161 /* calculate the Legendre recurrence coefficients */ 246 162 alpha[0]=0.; 247 163 beta [0]=2.; … … 252 168 } 253 169 254 /* calculate the Gauss-Lobatto quadrature formula */ 255 170 /* calculate the Gauss-Lobatto quadrature formula */ 256 171 for (i=0; i<ngaus-1; i++) { 257 172 pm1l=p0l; … … 263 178 } 264 179 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; 271 186 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; 274 189 alpha[ngaus-1]=(left *(p0r/p1r)-right*(p0l/p1l))/det; 275 190 beta [ngaus-1]=(right -left )/det; 276 191 277 /* calculate the Gauss points */ 278 192 /* calculate the Gauss points */ 279 193 GaussRecur(*pxgaus, *pxwgt, ngaus, alpha, beta ); 280 194 xfree((void **)&beta ); … … 282 196 } 283 197 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*/ 307 200 void 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*/ 308 207 int i,j,k,l,m,ii,mml,iter; 309 208 double p,g,r,s,c,f,b; 310 209 double* work; 311 210 312 if ( n == 1 ){211 if (n==1){ 313 212 zero[0] =alpha[0]; 314 213 weight[0]=beta[0]; 315 return 214 return; 316 215 } 317 216 318 work=(double *)xmalloc(n*sizeof(double));217 work=(double*)xmalloc(n*sizeof(double)); 319 218 320 219 zero[0] =alpha[0]; 321 220 weight[0]=1.; 322 221 work[n-1]=0.; 323 for (i=1; i<=n-1; i++) 222 for (i=1; i<=n-1; i++){ 324 223 zero[i]=alpha[i]; 325 224 work[i-1]=sqrt(beta[i]); … … 327 226 } 328 227 329 for (l=0; l<=n-1; l++) 228 for (l=0; l<=n-1; l++){ 330 229 iter=0; 331 230 do { 332 231 333 /* Look for a small subdiagonal element. */ 334 232 /* Look for a small subdiagonal element. */ 335 233 for (m=l; m<=n-1; m++) { 336 234 if (m == n-1) break; 337 235 if (fabs(work[m]) 338 <= DBL_EPSILON*(fabs(zero[m])+fabs(zero[m+1])))339 236 <= DBL_EPSILON*(fabs(zero[m])+fabs(zero[m+1]))) 237 break; 340 238 } 341 239 p=zero[l]; 342 if (m ==l) break;240 if (m==l) break; 343 241 ++iter; 344 242 345 /* Form shift. */ 346 243 /* Form shift. */ 347 244 g=(zero[l+1]-p)/(2.*work[l]); 348 245 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)); 350 247 g=zero[m]-p+work[l]/(g+(g>=0 ? fabs(r) : -fabs(r))); 351 248 s=1.; … … 354 251 mml=m-l; 355 252 356 /* For i=m-1 step -1 until l do ... */ 357 253 /* For i=m-1 step -1 until l do ... */ 358 254 for (ii=1; ii<=mml; ii++) { 359 255 i=m-ii; … … 380 276 g=c*r-b; 381 277 382 /* Form first component of vector. */ 383 278 /* Form first component of vector. */ 384 279 f=weight[i+1]; 385 280 weight[i+1]=s*weight[i]+c*f; … … 396 291 } 397 292 398 /* Order eigenvalues and eigenvectors. */ 399 293 /* Order eigenvalues and eigenvectors. */ 400 294 for (i=0;i<n-1;i++) { 401 295 k=i; 402 296 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){ 405 299 k=j; 406 300 p=zero[j]; 407 301 } 408 302 } 409 if (k > i) 303 if (k > i){ 410 304 p=zero[i]; 411 305 zero[i]=zero[k]; … … 416 310 } 417 311 } 418 for (i=0;i<n;i++) 312 for (i=0;i<n;i++){ 419 313 weight[i]=beta[0]*weight[i]*weight[i]; 420 314 } 421 315 316 /*Cleanup*/ 422 317 xfree((void **)&work); 423 318 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*/ 449 323 void 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 */ 453 327 GaussLegendre(pxgaus, pxwgt, nigaus); 454 455 328 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*/ 486 331 void 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*/ 488 339 int i,j,ipt,nigaus; 489 340 double xi,eta; 490 341 double *xgaus=NULL,*xwgt=NULL,*egaus,*ewgt; 491 342 492 /* p= 1, npoint= 1*/493 343 /*Hardcoded Gauss points declaration*/ 344 /*p= 1, npoint= 1{{{2*/ 494 345 static double wgt1[]={ 495 346 1.732050807568877}; 496 347 static double l11[]={ 497 348 0.333333333333333}; 498 349 static double l21[]={ 499 350 0.333333333333333}; 500 351 static double l31[]={ 501 0.333333333333333}; 502 503 /* p= 2, npoint= 3 */ 504 352 0.333333333333333}; 353 /*}}}2*/ 354 /*p= 2, npoint= 3 {{{2*/ 505 355 static double wgt2[]={ 506 356 0.577350269189625, 0.577350269189625, 0.577350269189625}; 507 357 static double l12[]={ 508 358 0.666666666666667, 0.166666666666667, 0.166666666666667}; 509 359 static double l22[]={ 510 360 0.166666666666667, 0.666666666666667, 0.166666666666667}; 511 361 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*/ 516 365 static double wgt3[]={ 517 366 -0.974278579257493, 0.902109795608790, 0.902109795608790, 518 367 0.902109795608790}; 519 368 static double l13[]={ 520 521 369 0.333333333333333, 0.600000000000000, 0.200000000000000, 370 0.200000000000000}; 522 371 static double l23[]={ 523 524 372 0.333333333333333, 0.200000000000000, 0.600000000000000, 373 0.200000000000000}; 525 374 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*/ 531 379 static double wgt4[]={ 532 533 380 0.386908262797819, 0.386908262797819, 0.386908262797819, 381 0.190442006391807, 0.190442006391807, 0.190442006391807}; 534 382 static double l14[]={ 535 536 383 0.108103018168070, 0.445948490915965, 0.445948490915965, 384 0.816847572980459, 0.091576213509771, 0.091576213509771}; 537 385 static double l24[]={ 538 539 386 0.445948490915965, 0.108103018168070, 0.445948490915965, 387 0.091576213509771, 0.816847572980459, 0.091576213509771}; 540 388 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*/ 546 393 static double wgt5[]={ 547 548 549 394 0.389711431702997, 0.229313399254729, 0.229313399254729, 395 0.229313399254729, 0.218133059367230, 0.218133059367230, 396 0.218133059367230}; 550 397 static double l15[]={ 551 552 553 398 0.333333333333333, 0.059715871789770, 0.470142064105115, 399 0.470142064105115, 0.797426985353087, 0.101286507323456, 400 0.101286507323456}; 554 401 static double l25[]={ 555 556 557 402 0.333333333333333, 0.470142064105115, 0.059715871789770, 403 0.470142064105115, 0.101286507323456, 0.797426985353087, 404 0.101286507323456}; 558 405 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*/ 565 411 static double wgt6[]={ 566 567 568 569 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}; 570 416 static double l16[]={ 571 572 573 574 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}; 575 421 static double l26[]={ 576 577 578 579 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}; 580 426 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*/ 588 433 static double wgt7[]={ 589 434 -0.259062916308362, 0.304174548458604, 0.304174548458604, 590 591 592 593 435 0.304174548458604, 0.092400122517855, 0.092400122517855, 436 0.092400122517855, 0.133564951824643, 0.133564951824643, 437 0.133564951824643, 0.133564951824643, 0.133564951824643, 438 0.133564951824643}; 594 439 static double l17[]={ 595 596 597 598 599 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}; 600 445 static double l27[]={ 601 602 603 604 605 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}; 606 451 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*/ 615 459 static double wgt8[]={ 616 617 618 619 620 621 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}; 622 466 static double l18[]={ 623 624 625 626 627 628 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}; 629 473 static double l28[]={ 630 631 632 633 634 635 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}; 636 480 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*/ 646 489 static double wgt9[]={ 647 648 649 650 651 652 653 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}; 654 497 static double l19[]={ 655 656 657 658 659 660 661 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}; 662 505 static double l29[]={ 663 664 665 666 667 668 669 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}; 670 513 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*/ 681 523 static double wgt10[]={ 682 683 684 685 686 687 688 689 690 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}; 691 533 static double l110[]={ 692 693 694 695 696 697 698 699 700 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}; 701 543 static double l210[]={ 702 703 704 705 706 707 708 709 710 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}; 711 553 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*/ 724 565 static double wgt11[]={ 725 726 727 728 729 730 731 732 733 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}; 734 575 static double l111[]={ 735 576 -0.069222096541517, 0.534611048270758, 0.534611048270758, 736 737 738 739 740 741 742 743 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}; 744 585 static double l211[]={ 745 746 747 748 749 750 751 752 753 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}; 754 595 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*/ 767 607 static double wgt12[]={ 768 769 770 771 772 773 774 775 776 777 778 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}; 779 619 static double l112[]={ 780 781 782 783 784 785 786 787 788 789 790 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}; 791 631 static double l212[]={ 792 793 794 795 796 797 798 799 800 801 802 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}; 803 643 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*/ 818 657 static double wgt13[]={ 819 820 821 822 823 824 825 826 827 828 829 830 831 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}; 832 671 static double l113[]={ 833 834 835 836 837 838 839 840 841 842 843 844 845 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}; 846 685 static double l213[]={ 847 848 849 850 851 852 853 854 855 856 857 858 859 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}; 860 699 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*/ 877 715 static double wgt14[]={ 878 879 880 881 882 883 884 885 886 887 888 889 890 891 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}; 892 730 static double l114[]={ 893 894 895 896 897 898 899 900 901 902 903 904 905 906 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}; 907 745 static double l214[]={ 908 909 910 911 912 913 914 915 916 917 918 919 920 921 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}; 922 760 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*/ 940 777 static double wgt15[]={ 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 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}; 957 794 static double l115[]={ 958 795 -0.013945833716486, 0.506972916858243, 0.506972916858243, 959 960 961 962 963 964 965 966 967 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, 968 805 -0.010174883126571,-0.010174883126571, 0.285712220049916, 969 970 971 972 973 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}; 974 811 static double l215[]={ 975 976 977 978 979 980 981 982 983 984 985 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, 986 823 -0.010174883126571, 0.724462663076655, 0.285712220049916, 987 988 989 990 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}; 991 828 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*/ 1011 847 static double wgt16[]={ 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 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}; 1030 866 static double l116[]={ 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 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}; 1049 885 static double l216[]={ 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 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, 1062 898 -0.004341002614139,-0.004341002614139, 0.799592720971327, 1063 1064 1065 1066 1067 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}; 1068 904 static double l316[]={ 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 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, 1082 918 -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*/ 1090 925 static double wgt17[]={ 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 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}; 1112 947 static double l117[]={ 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 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}; 1134 969 static double l217[]={ 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 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}; 1156 991 static double l317[]={ 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 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*/ 1180 1015 1181 1016 static double wgt18[]={ 1182 1183 1184 1185 1186 1187 1188 1189 1190 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, 1191 1026 -0.003850519950463, 0.010967196889496, 0.010967196889496, 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 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}; 1206 1041 static double l118[]={ 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 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}; 1231 1066 static double l218[]={ 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 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, 1254 1089 -0.035222015287949,-0.035222015287949, 1.014347260005363, 1255 1090 0.020874755282586}; 1256 1091 static double l318[]={ 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 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, 1280 1115 -0.035222015287949}; 1281 1282 /* p=19, npoint=73*/1116 /*}}}2*/ 1117 /*p=19, npoint=73 {{{2*/ 1283 1118 1284 1119 static double wgt19[]={ 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 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}; 1310 1145 static double l119[]={ 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 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}; 1336 1171 static double l219[]={ 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 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}; 1362 1197 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*/ 1391 1225 static double wgt20[]={ 1392 1393 1394 1395 1396 1397 1398 1399 1400 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, 1401 1235 -0.001094760895106, 0.003033053580543, 0.003033053580543, 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 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}; 1419 1253 static double l120[]={ 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 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}; 1447 1281 static double l220[]={ 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 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, 1469 1303 -0.008368153208227,-0.008368153208227, 0.861402717154987, 1470 1471 1472 1473 1474 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}; 1475 1309 static double l320[]={ 1476 1310 0.333333333333333, 0.500950464352200, 0.500950464352200, 1477 1311 -0.001900928704400, 0.488212957934729, 0.488212957934729, 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 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, 1498 1332 -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 }; 1520 1359 1521 1360 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 */ 1546 1384 if (iord <= MAX_TRIA_SYM_ORD) { 1547 1385 1548 /* copy the points from the static arrays (noting that the pointers1549 could be returned directly, but then the calling function would1550 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) */ 1551 1389 1552 1390 *pngaus=np[iord-1]; … … 1564 1402 } 1565 1403 } 1566 1567 1404 else { 1568 1405 1569 /* calculate the Gauss points from the collapsed quadrilateral */ 1570 1406 /* calculate the Gauss points from the collapsed quadrilateral */ 1571 1407 nigaus =iord/2+1; 1572 1408 *pngaus=nigaus*nigaus; … … 1577 1413 *pwgt = (double *) xmalloc(*pngaus*sizeof(double)); 1578 1414 1579 /* get the gauss points in each direction */ 1580 1415 /* get the gauss points in each direction */ 1581 1416 GaussLegendre(&xgaus, &xwgt, nigaus); 1582 1417 … … 1584 1419 ewgt =xwgt; 1585 1420 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 */ 1589 1423 ipt=0; 1590 1424 for (j=0; j<nigaus; j++) { … … 1601 1435 } 1602 1436 } 1603 1604 1437 xfree((void **)&xwgt ); 1605 1438 xfree((void **)&xgaus); 1606 1439 } 1607 1440 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*/ 1449 void 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.*/ 1645 1451 1646 1452 /* get the gauss points using the product of three line rules */ 1647 1648 1453 GaussLegendre(pxgaus, pxwgt, nigaus); 1649 1650 1454 GaussLegendre(pegaus, pewgt, njgaus); 1651 1652 1455 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*/ 1683 1458 void 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 */ 1687 1462 GaussTria(pngaus, pl1, pl2, pl3, pwgt, iord); 1688 1689 1463 GaussLegendre(pzgaus, pzwgt, nkgaus); 1690 1464 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*/ 1726 1467 void 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*/ 1727 1479 int i,j,k,ipt,nigaus; 1728 1480 double xi,eta,zeta; 1729 1481 double *xgaus=NULL,*xwgt=NULL,*egaus,*ewgt,*zgaus,*zwgt; 1730 1482 1731 /* p= 1, npoint= 1*/1732 1483 /*Hardcoded Gauss points definition*/ 1484 /*p= 1, npoint= 1 {{{2*/ 1733 1485 static double wgt1[]={ 1734 1486 1.000000000000000}; 1735 1487 static double l11[]={ 1736 1488 0.250000000000000}; 1737 1489 static double l21[]={ 1738 1490 0.250000000000000}; 1739 1491 static double l31[]={ 1740 1492 0.250000000000000}; 1741 1493 static double l41[]={ 1742 1743 1744 /* p= 2, npoint= 4*/1494 0.250000000000000}; 1495 /*}}}2*/ 1496 /*p= 2, npoint= 4 {{{2*/ 1745 1497 1746 1498 static double wgt2[]={ 1747 1748 1499 0.250000000000000, 0.250000000000000, 0.250000000000000, 1500 0.250000000000000}; 1749 1501 static double l12[]={ 1750 1751 1502 0.585410196624969, 0.138196601125011, 0.138196601125011, 1503 0.138196601125011}; 1752 1504 static double l22[]={ 1753 1754 1505 0.138196601125011, 0.585410196624969, 0.138196601125011, 1506 0.138196601125011}; 1755 1507 static double l32[]={ 1756 1757 1508 0.138196601125011, 0.138196601125011, 0.585410196624969, 1509 0.138196601125011}; 1758 1510 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*/ 1764 1515 static double wgt3[]={ 1765 1516 -0.800000000000000, 0.450000000000000, 0.450000000000000, 1766 1517 0.450000000000000, 0.450000000000000}; 1767 1518 static double l13[]={ 1768 1769 1519 0.250000000000000, 0.500000000000000, 0.166666666666667, 1520 0.166666666666667, 0.166666666666667}; 1770 1521 static double l23[]={ 1771 1772 1522 0.250000000000000, 0.166666666666667, 0.500000000000000, 1523 0.166666666666667, 0.166666666666667}; 1773 1524 static double l33[]={ 1774 1775 1525 0.250000000000000, 0.166666666666667, 0.166666666666667, 1526 0.500000000000000, 0.166666666666667}; 1776 1527 static double l43[]={ 1777 1778 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*/ 1781 1532 1782 1533 static double wgt4[]={ 1783 1534 -0.013155555555556, 0.007622222222222, 0.007622222222222, 1784 1785 1786 1535 0.007622222222222, 0.007622222222222, 0.024888888888889, 1536 0.024888888888889, 0.024888888888889, 0.024888888888889, 1537 0.024888888888889, 0.024888888888889}; 1787 1538 static double l14[]={ 1788 1789 1790 1791 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}; 1792 1543 static double l24[]={ 1793 1794 1795 1796 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}; 1797 1548 static double l34[]={ 1798 1799 1800 1801 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}; 1802 1553 static double l44[]={ 1803 1804 1805 1806 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*/ 1809 1560 1810 1561 static double wgt5[]={ 1811 1812 1813 1814 1815 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}; 1816 1567 static double l15[]={ 1817 1818 1819 1820 1821 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}; 1822 1573 static double l25[]={ 1823 1824 1825 1826 1827 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}; 1828 1579 static double l35[]={ 1829 1830 1831 1832 1833 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}; 1834 1585 static double l45[]={ 1835 1836 1837 1838 1839 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*/ 1842 1593 1843 1594 static double wgt6[]={ 1844 1845 1846 1847 1848 1849 1850 1851 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}; 1852 1603 static double l16[]={ 1853 1854 1855 1856 1857 1858 1859 1860 1861 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}; 1862 1613 static double l26[]={ 1863 1864 1865 1866 1867 1868 1869 1870 1871 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}; 1872 1623 static double l36[]={ 1873 1874 1875 1876 1877 1878 1879 1880 1881 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}; 1882 1633 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 }; 1903 1650 1904 1651 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 */ 1915 1661 if (iord <= MAX_TETRA_SYM_ORD) { 1916 1662 1917 /* copy the points from the static arrays (noting that the pointers1918 could be returned directly, but then the calling function would1919 have to know to not free them), and multiply the weights by the1920 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 */ 1921 1667 1922 1668 *pngaus=np[iord-1]; … … 1936 1682 } 1937 1683 } 1938 1939 1684 else { 1940 1685 1941 /* calculate the Gauss points from the collapsed hexahedron */ 1942 1686 /* calculate the Gauss points from the collapsed hexahedron */ 1943 1687 nigaus =iord/2+1; 1944 1688 *pngaus=nigaus*nigaus*nigaus; … … 1950 1694 *pwgt = (double *) xmalloc(*pngaus*sizeof(double)); 1951 1695 1952 /* get the gauss points in each direction */ 1953 1696 /* get the gauss points in each direction */ 1954 1697 GaussLegendre(&xgaus, &xwgt, nigaus); 1955 1698 … … 1959 1702 zwgt =xwgt; 1960 1703 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 */ 1964 1706 ipt=0; 1965 1707 for (k=0; k<nigaus; k++) { … … 1968 1710 xi =1./4.*(1.-egaus[j])*(1.-zgaus[k])*xgaus[i]; 1969 1711 eta =1./4./SQRT3 1970 1712 *(5.+3.*egaus[j]-zgaus[k]-3.*egaus[j]*zgaus[k]); 1971 1713 zeta =sqrt(2./3.)*(1.+zgaus[k]); 1972 1714 (*pwgt)[ipt]=xwgt[i]*ewgt[j]*zwgt[k] 1973 1974 1715 *(SQRT2/16. 1716 *(1.-egaus[j])*pow(1.-zgaus[k],2.)); 1975 1717 1976 1718 (*pl1 )[ipt]=(1.-xi-eta/SQRT3-zeta/sqrt(6.))/2.; … … 1983 1725 } 1984 1726 } 1985 1986 1727 xfree((void **)&xwgt ); 1987 1728 xfree((void **)&xgaus); 1988 1729 } 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*/ 2000 1732 void 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!*/ 2001 1739 2002 1740 double* segment_coord=NULL; … … 2082 1820 *psegment_coord=segment_coord; 2083 1821 return; 2084 } 1822 }/*}}}1*/ -
issm/trunk/src/c/shared/Numerics/GaussPoints.h
r99 r4417 5 5 #ifndef _GAUSSPOINTS_H 6 6 #define _GAUSSPOINTS_H 7 8 7 9 8 #define MAX_LINE_GAUS_PTS 4 … … 31 30 32 31 #endif 33
Note:
See TracChangeset
for help on using the changeset viewer.