# include # include # include # include # include using namespace std; # include "square_exactness.hpp" int main ( ); void test01 ( ); void test02 ( ); void legendre_2d_set ( double a[], double b[], int nx, int ny, double x[], double y[], double w[] ); void legendre_set ( int n, double x[], double w[] ); void padua_point_set ( int l, double x[], double y[] ); void padua_weight_set ( int l, double w[] ); //****************************************************************************80 int main ( ) //****************************************************************************80 // // Purpose: // // MAIN is the main program for SQUARE_EXACTNESS_PRB. // // Discussion: // // SQUARE_EXACTNESS_PRB tests the SQUARE_EXACTNESS library. // // Licensing: // // This code is distributed under the GNU LGPL license. // // Modified: // // 31 May 2014 // // Author: // // John Burkardt // { timestamp ( ); cout << "\n"; cout << "SQUARE_EXACTNESS_PRB\n"; cout << " C++ version\n"; cout << " Test the SQUARE_EXACTNESS library.\n"; test01 ( ); test02 ( ); // // Terminate. // cout << "\n"; cout << "SQUARE_EXACTNESS_PRB\n"; cout << " Normal end of execution.\n"; cout << "\n"; timestamp ( ); return 0; } //****************************************************************************80 void test01 ( ) //****************************************************************************80 // // Purpose: // // TEST01 tests product Gauss-Legendre rules for the Legendre 2D integral. // // Licensing: // // This code is distributed under the GNU LGPL license. // // Modified: // // 31 May 2014 // // Author: // // John Burkardt // { double a[2]; double b[2]; int l; int n; int n_1d; int p_max; int t; double *w; double *x; double *y; a[0] = -1.0; a[1] = -1.0; b[0] = +1.0; b[1] = +1.0; cout << "\n"; cout << "TEST01\n"; cout << " Product Gauss-Legendre rules for the 2D Legendre integral.\n"; cout << " Density function rho(x) = 1.\n"; cout << " Region: -1 <= x <= +1.\n"; cout << " Region: -1 <= y <= +1.\n"; cout << " Level: L\n"; cout << " Exactness: 2*L+1\n"; cout << " Order: N = (L+1)*(L+1)\n"; for ( l = 0; l <= 5; l++ ) { n_1d = l + 1; n = n_1d * n_1d; t = 2 * l + 1; w = new double[n]; x = new double[n]; y = new double[n]; legendre_2d_set ( a, b, n_1d, n_1d, x, y, w ); p_max = t + 1; legendre_2d_exactness ( a, b, n, x, y, w, p_max ); delete [] x; delete [] y; delete [] w; } return; } //****************************************************************************80 void test02 ( ) //****************************************************************************80 // // Purpose: // // TEST02 tests Padua rules for the Legendre 2D integral. // // Licensing: // // This code is distributed under the GNU LGPL license. // // Modified: // // 31 May 2014 // // Author: // // John Burkardt // { double a[2]; double b[2]; int l; int n; int p_max; int t; double *w; double *x; double *y; a[0] = -1.0; a[1] = -1.0; b[0] = +1.0; b[1] = +1.0; cout << "\n"; cout << "TEST02\n"; cout << " Padua rule for the 2D Legendre integral.\n"; cout << " Density function rho(x) = 1.\n"; cout << " Region: -1 <= x <= +1.\n"; cout << " Region: -1 <= y <= +1.\n"; cout << " Level: L\n"; cout << " Exactness: L+1 when L is 0,\n"; cout << " L otherwise.\n"; cout << " Order: N = (L+1)*(L+2)/2\n"; for ( l = 0; l <= 5; l++ ) { n = ( ( l + 1 ) * ( l + 2 ) ) / 2; w = new double[n]; x = new double[n]; y = new double[n]; padua_point_set ( l, x, y ); padua_weight_set ( l, w ); if ( l == 0 ) { p_max = l + 2; } else { p_max = l + 1; } legendre_2d_exactness ( a, b, n, x, y, w, p_max ); delete [] w; delete [] x; delete [] y; } return; } //****************************************************************************80 void legendre_2d_set ( double a[], double b[], int nx, int ny, double x[], double y[], double w[] ) //****************************************************************************80 // // Purpose: // // LEGENDRE_2D_SET: set a 2D Gauss-Legendre quadrature rule. // // Discussion: // // The integral: // // integral ( a(2) <= y <= b(2) ) ( a(1) <= x <= b(1) ) f(x,y) dx dy // // The quadrature rule: // // sum ( 1 <= i <= n ) w(i) * f ( x(i),y(i) ) // // where n = nx * ny, the orders of the rule in the X and Y directions. // // Licensing: // // This code is distributed under the GNU LGPL license. // // Modified: // // 31 May 2014 // // Author: // // John Burkardt // // Parameters: // // Input, double A[2], B[2], the lower and upper integration // limits. // // Input, int NX, NY, the orders in the X and Y directions. // NX and NY must be between 1 and 10. // // Output, double X[N], Y[N], the abscissas. // // Output, double W[N], the weights. // { int i; int j; int k; double *wx; double *wy; double *xx; double *yy; // // Get the rules for [-1,+1]. // xx = ( double * ) malloc ( nx * sizeof ( double ) ); wx = ( double * ) malloc ( nx * sizeof ( double ) ); legendre_set ( nx, xx, wx ); yy = ( double * ) malloc ( ny * sizeof ( double ) ); wy = ( double * ) malloc ( ny * sizeof ( double ) ); legendre_set ( ny, yy, wy ); // // Adjust from [-1,+1] to [A,B]. // for ( i = 0; i < nx; i++ ) { xx[i] = ( ( 1.0 - xx[i] ) * a[0] + ( 1.0 + xx[i] ) * b[0] ) / 2.0; wx[i] = wx[i] * ( b[0] - a[0] ) / 2.0; } for ( j = 0; j < ny; j++ ) { yy[j] = ( ( 1.0 - yy[j] ) * a[1] + ( 1.0 + yy[j] ) * b[1] ) / 2.0; wy[j] = wy[j] * ( b[1] - a[1] ) / 2.0; } // // Compute the product rule. // k = 0; for ( j = 0; j < ny; j++ ) { for ( i = 0; i < nx; i++ ) { x[k] = xx[i]; y[k] = yy[j]; w[k] = wx[i] * wy[j]; k = k + 1; } } delete [] wx; delete [] wy; delete [] xx; delete [] yy; return; } //****************************************************************************80 void legendre_set ( int n, double x[], double w[] ) //****************************************************************************80 // // Purpose: // // LEGENDRE_SET sets abscissas and weights for Gauss-Legendre quadrature. // // Discussion: // // The integral: // // Integral ( -1 <= X <= 1 ) F(X) dX // // Quadrature rule: // // Sum ( 1 <= I <= N ) W(I) * F ( X(I) ) // // The quadrature rule is exact for all polynomials through degree 2*N-1. // // The abscissas are the zeroes of the Legendre polynomial P(N)(X). // // Mathematica can compute the abscissas and weights of a Gauss-Legendre // rule of order N for the interval [A,B] with P digits of precision // by the commands: // // Needs["NumericalDifferentialEquationAnalysis`"] // GaussianQuadratureWeights [ n, a, b, p ] // // Licensing: // // This code is distributed under the GNU LGPL license. // // Modified: // // 20 April 2010 // // Author: // // John Burkardt // // Reference: // // Milton Abramowitz, Irene Stegun, // Handbook of Mathematical Functions, // National Bureau of Standards, 1964, // ISBN: 0-486-61272-4, // LC: QA47.A34. // // Vladimir Krylov, // Approximate Calculation of Integrals, // Dover, 2006, // ISBN: 0486445798. // LC: QA311.K713. // // Arthur Stroud, Don Secrest, // Gaussian Quadrature Formulas, // Prentice Hall, 1966, // LC: QA299.4G3S7. // // Stephen Wolfram, // The Mathematica Book, // Fourth Edition, // Cambridge University Press, 1999, // ISBN: 0-521-64314-7, // LC: QA76.95.W65. // // Daniel Zwillinger, editor, // CRC Standard Mathematical Tables and Formulae, // 30th Edition, // CRC Press, 1996, // ISBN: 0-8493-2479-3, // LC: QA47.M315. // // Parameters: // // Input, int N, the order. // N must be between 1 and 33 or 63/64/65, 127/128/129, // 255/256/257. // // Output, double X[N], the abscissas. // // Output, double W[N], the weights. // { if ( n == 1 ) { x[0] = 0.000000000000000000000000000000; w[0] = 2.000000000000000000000000000000; } else if ( n == 2 ) { x[0] = -0.577350269189625764509148780502; x[1] = 0.577350269189625764509148780502; w[0] = 1.000000000000000000000000000000; w[1] = 1.000000000000000000000000000000; } else if ( n == 3 ) { x[0] = -0.774596669241483377035853079956; x[1] = 0.000000000000000000000000000000; x[2] = 0.774596669241483377035853079956; w[0] = 0.555555555555555555555555555556; w[1] = 0.888888888888888888888888888889; w[2] = 0.555555555555555555555555555556; } else if ( n == 4 ) { x[0] = -0.861136311594052575223946488893; x[1] = -0.339981043584856264802665759103; x[2] = 0.339981043584856264802665759103; x[3] = 0.861136311594052575223946488893; w[0] = 0.347854845137453857373063949222; w[1] = 0.652145154862546142626936050778; w[2] = 0.652145154862546142626936050778; w[3] = 0.347854845137453857373063949222; } else if ( n == 5 ) { x[0] = -0.906179845938663992797626878299; x[1] = -0.538469310105683091036314420700; x[2] = 0.000000000000000000000000000000; x[3] = 0.538469310105683091036314420700; x[4] = 0.906179845938663992797626878299; w[0] = 0.236926885056189087514264040720; w[1] = 0.478628670499366468041291514836; w[2] = 0.568888888888888888888888888889; w[3] = 0.478628670499366468041291514836; w[4] = 0.236926885056189087514264040720; } else if ( n == 6 ) { x[0] = -0.932469514203152027812301554494; x[1] = -0.661209386466264513661399595020; x[2] = -0.238619186083196908630501721681; x[3] = 0.238619186083196908630501721681; x[4] = 0.661209386466264513661399595020; x[5] = 0.932469514203152027812301554494; w[0] = 0.171324492379170345040296142173; w[1] = 0.360761573048138607569833513838; w[2] = 0.467913934572691047389870343990; w[3] = 0.467913934572691047389870343990; w[4] = 0.360761573048138607569833513838; w[5] = 0.171324492379170345040296142173; } else if ( n == 7 ) { x[0] = -0.949107912342758524526189684048; x[1] = -0.741531185599394439863864773281; x[2] = -0.405845151377397166906606412077; x[3] = 0.000000000000000000000000000000; x[4] = 0.405845151377397166906606412077; x[5] = 0.741531185599394439863864773281; x[6] = 0.949107912342758524526189684048; w[0] = 0.129484966168869693270611432679; w[1] = 0.279705391489276667901467771424; w[2] = 0.381830050505118944950369775489; w[3] = 0.417959183673469387755102040816; w[4] = 0.381830050505118944950369775489; w[5] = 0.279705391489276667901467771424; w[6] = 0.129484966168869693270611432679; } else if ( n == 8 ) { x[0] = -0.960289856497536231683560868569; x[1] = -0.796666477413626739591553936476; x[2] = -0.525532409916328985817739049189; x[3] = -0.183434642495649804939476142360; x[4] = 0.183434642495649804939476142360; x[5] = 0.525532409916328985817739049189; x[6] = 0.796666477413626739591553936476; x[7] = 0.960289856497536231683560868569; w[0] = 0.101228536290376259152531354310; w[1] = 0.222381034453374470544355994426; w[2] = 0.313706645877887287337962201987; w[3] = 0.362683783378361982965150449277; w[4] = 0.362683783378361982965150449277; w[5] = 0.313706645877887287337962201987; w[6] = 0.222381034453374470544355994426; w[7] = 0.101228536290376259152531354310; } else if ( n == 9 ) { x[0] = -0.968160239507626089835576203; x[1] = -0.836031107326635794299429788; x[2] = -0.613371432700590397308702039; x[3] = -0.324253423403808929038538015; x[4] = 0.000000000000000000000000000; x[5] = 0.324253423403808929038538015; x[6] = 0.613371432700590397308702039; x[7] = 0.836031107326635794299429788; x[8] = 0.968160239507626089835576203; w[0] = 0.081274388361574411971892158111; w[1] = 0.18064816069485740405847203124; w[2] = 0.26061069640293546231874286942; w[3] = 0.31234707704000284006863040658; w[4] = 0.33023935500125976316452506929; w[5] = 0.31234707704000284006863040658; w[6] = 0.26061069640293546231874286942; w[7] = 0.18064816069485740405847203124; w[8] = 0.081274388361574411971892158111; } else if ( n == 10 ) { x[0] = -0.973906528517171720077964012; x[1] = -0.865063366688984510732096688; x[2] = -0.679409568299024406234327365; x[3] = -0.433395394129247190799265943; x[4] = -0.148874338981631210884826001; x[5] = 0.148874338981631210884826001; x[6] = 0.433395394129247190799265943; x[7] = 0.679409568299024406234327365; x[8] = 0.865063366688984510732096688; x[9] = 0.973906528517171720077964012; w[0] = 0.066671344308688137593568809893; w[1] = 0.14945134915058059314577633966; w[2] = 0.21908636251598204399553493423; w[3] = 0.26926671930999635509122692157; w[4] = 0.29552422471475287017389299465; w[5] = 0.29552422471475287017389299465; w[6] = 0.26926671930999635509122692157; w[7] = 0.21908636251598204399553493423; w[8] = 0.14945134915058059314577633966; w[9] = 0.066671344308688137593568809893; } else { cerr << "\n"; cerr << "LEGENDRE_SET - Fatal error!\n"; cerr << " Illegal value of N = " << n << "\n"; cerr << " Legal values are 1 to 10\n"; exit ( 1 ); } return; } //****************************************************************************80 void padua_point_set ( int l, double x[], double y[] ) //****************************************************************************80 // // Purpose: // // PADUA_POINT_SET sets the Padua points. // // Licensing: // // This code is distributed under the GNU LGPL license. // // Modified: // // 29 May 2014 // // Author: // // John Burkardt // // Reference: // // Marco Caliari, Stefano de Marchi, Marco Vianello, // Bivariate interpolation on the square at new nodal sets, // Applied Mathematics and Computation, // Volume 165, Number 2, 2005, pages 261-274. // // Parameters: // // Input, int L, the level. // 0 <= L <= 10. // // Output, double X[N], Y[N], the Padua points. // { if ( l == 0 ) { x[ 0] = 0.000000000000000; y[ 0] = 0.000000000000000; } else if ( l == 1 ) { x[ 0] = -1.000000000000000; y[ 0] = -1.000000000000000; x[ 1] = -1.000000000000000; y[ 1] = 1.000000000000000; x[ 2] = 1.000000000000000; y[ 2] = 0.000000000000000; } else if ( l == 2 ) { x[ 0] = -1.000000000000000; y[ 0] = -1.000000000000000; x[ 1] = -1.000000000000000; y[ 1] = 0.5000000000000001; x[ 2] = 0.000000000000000; y[ 2] = -0.4999999999999998; x[ 3] = 0.000000000000000; y[ 3] = 1.000000000000000; x[ 4] = 1.000000000000000; y[ 4] = -1.000000000000000; x[ 5] = 1.000000000000000; y[ 5] = 0.5000000000000001; } else if ( l == 3 ) { x[ 0] = -1.000000000000000; y[ 0] = -1.000000000000000; x[ 1] = -1.000000000000000; y[ 1] = 0.000000000000000; x[ 2] = -1.000000000000000; y[ 2] = 1.000000000000000; x[ 3] = -0.4999999999999998; y[ 3] = -0.7071067811865475; x[ 4] = -0.4999999999999998; y[ 4] = 0.7071067811865476; x[ 5] = 0.5000000000000001; y[ 5] = -1.000000000000000; x[ 6] = 0.5000000000000001; y[ 6] = 0.000000000000000; x[ 7] = 0.5000000000000001; y[ 7] = 1.000000000000000; x[ 8] = 1.000000000000000; y[ 8] = -0.7071067811865475; x[ 9] = 1.000000000000000; y[ 9] = 0.7071067811865476; } else if ( l == 4 ) { x[ 0] = -1.000000000000000; y[ 0] = -1.000000000000000; x[ 1] = -1.000000000000000; y[ 1] = -0.3090169943749473; x[ 2] = -1.000000000000000; y[ 2] = 0.8090169943749475; x[ 3] = -0.7071067811865475; y[ 3] = -0.8090169943749473; x[ 4] = -0.7071067811865475; y[ 4] = 0.3090169943749475; x[ 5] = -0.7071067811865475; y[ 5] = 1.000000000000000; x[ 6] = 0.000000000000000; y[ 6] = -1.000000000000000; x[ 7] = 0.000000000000000; y[ 7] = -0.3090169943749473; x[ 8] = 0.000000000000000; y[ 8] = 0.8090169943749475; x[ 9] = 0.7071067811865476; y[ 9] = -0.8090169943749473; x[10] = 0.7071067811865476; y[10] = 0.3090169943749475; x[11] = 0.7071067811865476; y[11] = 1.000000000000000; x[12] = 1.000000000000000; y[12] = -1.000000000000000; x[13] = 1.000000000000000; y[13] = -0.3090169943749473; x[14] = 1.000000000000000; y[14] = 0.8090169943749475; } else if ( l == 5 ) { x[ 0] = -1.000000000000000; y[ 0] = -1.000000000000000; x[ 1] = -1.000000000000000; y[ 1] = -0.4999999999999998; x[ 2] = -1.000000000000000; y[ 2] = 0.5000000000000001; x[ 3] = -1.000000000000000; y[ 3] = 1.000000000000000; x[ 4] = -0.8090169943749473; y[ 4] = -0.8660254037844387; x[ 5] = -0.8090169943749473; y[ 5] = 0.000000000000000; x[ 6] = -0.8090169943749473; y[ 6] = 0.8660254037844387; x[ 7] = -0.3090169943749473; y[ 7] = -1.000000000000000; x[ 8] = -0.3090169943749473; y[ 8] = -0.4999999999999998; x[ 9] = -0.3090169943749473; y[ 9] = 0.5000000000000001; x[10] = -0.3090169943749473; y[10] = 1.000000000000000; x[11] = 0.3090169943749475; y[11] = -0.8660254037844387; x[12] = 0.3090169943749475; y[12] = 0.000000000000000; x[13] = 0.3090169943749475; y[13] = 0.8660254037844387; x[14] = 0.8090169943749475; y[14] = -1.000000000000000; x[15] = 0.8090169943749475; y[15] = -0.4999999999999998; x[16] = 0.8090169943749475; y[16] = 0.5000000000000001; x[17] = 0.8090169943749475; y[17] = 1.000000000000000; x[18] = 1.000000000000000; y[18] = -0.8660254037844387; x[19] = 1.000000000000000; y[19] = 0.000000000000000; x[20] = 1.000000000000000; y[20] = 0.8660254037844387; } else if ( l == 6 ) { x[ 0] = -1.000000000000000; y[ 0] = -1.000000000000000; x[ 1] = -1.000000000000000; y[ 1] = -0.6234898018587335; x[ 2] = -1.000000000000000; y[ 2] = 0.2225209339563144; x[ 3] = -1.000000000000000; y[ 3] = 0.9009688679024191; x[ 4] = -0.8660254037844387; y[ 4] = -0.9009688679024190; x[ 5] = -0.8660254037844387; y[ 5] = -0.2225209339563143; x[ 6] = -0.8660254037844387; y[ 6] = 0.6234898018587336; x[ 7] = -0.8660254037844387; y[ 7] = 1.000000000000000; x[ 8] = -0.4999999999999998; y[ 8] = -1.000000000000000; x[ 9] = -0.4999999999999998; y[ 9] = -0.6234898018587335; x[10] = -0.4999999999999998; y[10] = 0.2225209339563144; x[11] = -0.4999999999999998; y[11] = 0.9009688679024191; x[12] = 0.000000000000000; y[12] = -0.9009688679024190; x[13] = 0.000000000000000; y[13] = -0.2225209339563143; x[14] = 0.000000000000000; y[14] = 0.6234898018587336; x[15] = 0.000000000000000; y[15] = 1.000000000000000; x[16] = 0.5000000000000001; y[16] = -1.000000000000000; x[17] = 0.5000000000000001; y[17] = -0.6234898018587335; x[18] = 0.5000000000000001; y[18] = 0.2225209339563144; x[19] = 0.5000000000000001; y[19] = 0.9009688679024191; x[20] = 0.8660254037844387; y[20] = -0.9009688679024190; x[21] = 0.8660254037844387; y[21] = -0.2225209339563143; x[22] = 0.8660254037844387; y[22] = 0.6234898018587336; x[23] = 0.8660254037844387; y[23] = 1.000000000000000; x[24] = 1.000000000000000; y[24] = -1.000000000000000; x[25] = 1.000000000000000; y[25] = -0.6234898018587335; x[26] = 1.000000000000000; y[26] = 0.2225209339563144; x[27] = 1.000000000000000; y[27] = 0.9009688679024191; } else if ( l == 7 ) { x[ 0] = -1.000000000000000; y[ 0] = -1.000000000000000; x[ 1] = -1.000000000000000; y[ 1] = -0.7071067811865475; x[ 2] = -1.000000000000000; y[ 2] = 0.000000000000000; x[ 3] = -1.000000000000000; y[ 3] = 0.7071067811865476; x[ 4] = -1.000000000000000; y[ 4] = 1.000000000000000; x[ 5] = -0.9009688679024190; y[ 5] = -0.9238795325112867; x[ 6] = -0.9009688679024190; y[ 6] = -0.3826834323650897; x[ 7] = -0.9009688679024190; y[ 7] = 0.3826834323650898; x[ 8] = -0.9009688679024190; y[ 8] = 0.9238795325112867; x[ 9] = -0.6234898018587335; y[ 9] = -1.000000000000000; x[10] = -0.6234898018587335; y[10] = -0.7071067811865475; x[11] = -0.6234898018587335; y[11] = 0.000000000000000; x[12] = -0.6234898018587335; y[12] = 0.7071067811865476; x[13] = -0.6234898018587335; y[13] = 1.000000000000000; x[14] = -0.2225209339563143; y[14] = -0.9238795325112867; x[15] = -0.2225209339563143; y[15] = -0.3826834323650897; x[16] = -0.2225209339563143; y[16] = 0.3826834323650898; x[17] = -0.2225209339563143; y[17] = 0.9238795325112867; x[18] = 0.2225209339563144; y[18] = -1.000000000000000; x[19] = 0.2225209339563144; y[19] = -0.7071067811865475; x[20] = 0.2225209339563144; y[20] = 0.000000000000000; x[21] = 0.2225209339563144; y[21] = 0.7071067811865476; x[22] = 0.2225209339563144; y[22] = 1.000000000000000; x[23] = 0.6234898018587336; y[23] = -0.9238795325112867; x[24] = 0.6234898018587336; y[24] = -0.3826834323650897; x[25] = 0.6234898018587336; y[25] = 0.3826834323650898; x[26] = 0.6234898018587336; y[26] = 0.9238795325112867; x[27] = 0.9009688679024191; y[27] = -1.000000000000000; x[28] = 0.9009688679024191; y[28] = -0.7071067811865475; x[29] = 0.9009688679024191; y[29] = 0.000000000000000; x[30] = 0.9009688679024191; y[30] = 0.7071067811865476; x[31] = 0.9009688679024191; y[31] = 1.000000000000000; x[32] = 1.000000000000000; y[32] = -0.9238795325112867; x[33] = 1.000000000000000; y[33] = -0.3826834323650897; x[34] = 1.000000000000000; y[34] = 0.3826834323650898; x[35] = 1.000000000000000; y[35] = 0.9238795325112867; } else if ( l == 8 ) { x[ 0] = -1.000000000000000; y[ 0] = -1.000000000000000; x[ 1] = -1.000000000000000; y[ 1] = -0.7660444431189779; x[ 2] = -1.000000000000000; y[ 2] = -0.1736481776669303; x[ 3] = -1.000000000000000; y[ 3] = 0.5000000000000001; x[ 4] = -1.000000000000000; y[ 4] = 0.9396926207859084; x[ 5] = -0.9238795325112867; y[ 5] = -0.9396926207859083; x[ 6] = -0.9238795325112867; y[ 6] = -0.4999999999999998; x[ 7] = -0.9238795325112867; y[ 7] = 0.1736481776669304; x[ 8] = -0.9238795325112867; y[ 8] = 0.7660444431189780; x[ 9] = -0.9238795325112867; y[ 9] = 1.000000000000000; x[10] = -0.7071067811865475; y[10] = -1.000000000000000; x[11] = -0.7071067811865475; y[11] = -0.7660444431189779; x[12] = -0.7071067811865475; y[12] = -0.1736481776669303; x[13] = -0.7071067811865475; y[13] = 0.5000000000000001; x[14] = -0.7071067811865475; y[14] = 0.9396926207859084; x[15] = -0.3826834323650897; y[15] = -0.9396926207859083; x[16] = -0.3826834323650897; y[16] = -0.4999999999999998; x[17] = -0.3826834323650897; y[17] = 0.1736481776669304; x[18] = -0.3826834323650897; y[18] = 0.7660444431189780; x[19] = -0.3826834323650897; y[19] = 1.000000000000000; x[20] = 0.000000000000000; y[20] = -1.000000000000000; x[21] = 0.000000000000000; y[21] = -0.7660444431189779; x[22] = 0.000000000000000; y[22] = -0.1736481776669303; x[23] = 0.000000000000000; y[23] = 0.5000000000000001; x[24] = 0.000000000000000; y[24] = 0.9396926207859084; x[25] = 0.3826834323650898; y[25] = -0.9396926207859083; x[26] = 0.3826834323650898; y[26] = -0.4999999999999998; x[27] = 0.3826834323650898; y[27] = 0.1736481776669304; x[28] = 0.3826834323650898; y[28] = 0.7660444431189780; x[29] = 0.3826834323650898; y[29] = 1.000000000000000; x[30] = 0.7071067811865476; y[30] = -1.000000000000000; x[31] = 0.7071067811865476; y[31] = -0.7660444431189779; x[32] = 0.7071067811865476; y[32] = -0.1736481776669303; x[33] = 0.7071067811865476; y[33] = 0.5000000000000001; x[34] = 0.7071067811865476; y[34] = 0.9396926207859084; x[35] = 0.9238795325112867; y[35] = -0.9396926207859083; x[36] = 0.9238795325112867; y[36] = -0.4999999999999998; x[37] = 0.9238795325112867; y[37] = 0.1736481776669304; x[38] = 0.9238795325112867; y[38] = 0.7660444431189780; x[39] = 0.9238795325112867; y[39] = 1.000000000000000; x[40] = 1.000000000000000; y[40] = -1.000000000000000; x[41] = 1.000000000000000; y[41] = -0.7660444431189779; x[42] = 1.000000000000000; y[42] = -0.1736481776669303; x[43] = 1.000000000000000; y[43] = 0.5000000000000001; x[44] = 1.000000000000000; y[44] = 0.9396926207859084; } else if ( l == 9 ) { x[ 0] = -1.000000000000000; y[ 0] = -1.000000000000000; x[ 1] = -1.000000000000000; y[ 1] = -0.8090169943749473; x[ 2] = -1.000000000000000; y[ 2] = -0.3090169943749473; x[ 3] = -1.000000000000000; y[ 3] = 0.3090169943749475; x[ 4] = -1.000000000000000; y[ 4] = 0.8090169943749475; x[ 5] = -1.000000000000000; y[ 5] = 1.000000000000000; x[ 6] = -0.9396926207859083; y[ 6] = -0.9510565162951535; x[ 7] = -0.9396926207859083; y[ 7] = -0.5877852522924730; x[ 8] = -0.9396926207859083; y[ 8] = 0.000000000000000; x[ 9] = -0.9396926207859083; y[ 9] = 0.5877852522924731; x[10] = -0.9396926207859083; y[10] = 0.9510565162951535; x[11] = -0.7660444431189779; y[11] = -1.000000000000000; x[12] = -0.7660444431189779; y[12] = -0.8090169943749473; x[13] = -0.7660444431189779; y[13] = -0.3090169943749473; x[14] = -0.7660444431189779; y[14] = 0.3090169943749475; x[15] = -0.7660444431189779; y[15] = 0.8090169943749475; x[16] = -0.7660444431189779; y[16] = 1.000000000000000; x[17] = -0.4999999999999998; y[17] = -0.9510565162951535; x[18] = -0.4999999999999998; y[18] = -0.5877852522924730; x[19] = -0.4999999999999998; y[19] = 0.000000000000000; x[20] = -0.4999999999999998; y[20] = 0.5877852522924731; x[21] = -0.4999999999999998; y[21] = 0.9510565162951535; x[22] = -0.1736481776669303; y[22] = -1.000000000000000; x[23] = -0.1736481776669303; y[23] = -0.8090169943749473; x[24] = -0.1736481776669303; y[24] = -0.3090169943749473; x[25] = -0.1736481776669303; y[25] = 0.3090169943749475; x[26] = -0.1736481776669303; y[26] = 0.8090169943749475; x[27] = -0.1736481776669303; y[27] = 1.000000000000000; x[28] = 0.1736481776669304; y[28] = -0.9510565162951535; x[29] = 0.1736481776669304; y[29] = -0.5877852522924730; x[30] = 0.1736481776669304; y[30] = 0.000000000000000; x[31] = 0.1736481776669304; y[31] = 0.5877852522924731; x[32] = 0.1736481776669304; y[32] = 0.9510565162951535; x[33] = 0.5000000000000001; y[33] = -1.000000000000000; x[34] = 0.5000000000000001; y[34] = -0.8090169943749473; x[35] = 0.5000000000000001; y[35] = -0.3090169943749473; x[36] = 0.5000000000000001; y[36] = 0.3090169943749475; x[37] = 0.5000000000000001; y[37] = 0.8090169943749475; x[38] = 0.5000000000000001; y[38] = 1.000000000000000; x[39] = 0.7660444431189780; y[39] = -0.9510565162951535; x[40] = 0.7660444431189780; y[40] = -0.5877852522924730; x[41] = 0.7660444431189780; y[41] = 0.000000000000000; x[42] = 0.7660444431189780; y[42] = 0.5877852522924731; x[43] = 0.7660444431189780; y[43] = 0.9510565162951535; x[44] = 0.9396926207859084; y[44] = -1.000000000000000; x[45] = 0.9396926207859084; y[45] = -0.8090169943749473; x[46] = 0.9396926207859084; y[46] = -0.3090169943749473; x[47] = 0.9396926207859084; y[47] = 0.3090169943749475; x[48] = 0.9396926207859084; y[48] = 0.8090169943749475; x[49] = 0.9396926207859084; y[49] = 1.000000000000000; x[50] = 1.000000000000000; y[50] = -0.9510565162951535; x[51] = 1.000000000000000; y[51] = -0.5877852522924730; x[52] = 1.000000000000000; y[52] = 0.000000000000000; x[53] = 1.000000000000000; y[53] = 0.5877852522924731; x[54] = 1.000000000000000; y[54] = 0.9510565162951535; } else if ( l == 10 ) { x[ 0] = -1.000000000000000; y[ 0] = -1.000000000000000; x[ 1] = -1.000000000000000; y[ 1] = -0.8412535328311811; x[ 2] = -1.000000000000000; y[ 2] = -0.4154150130018863; x[ 3] = -1.000000000000000; y[ 3] = 0.1423148382732851; x[ 4] = -1.000000000000000; y[ 4] = 0.6548607339452851; x[ 5] = -1.000000000000000; y[ 5] = 0.9594929736144974; x[ 6] = -0.9510565162951535; y[ 6] = -0.9594929736144974; x[ 7] = -0.9510565162951535; y[ 7] = -0.6548607339452850; x[ 8] = -0.9510565162951535; y[ 8] = -0.1423148382732850; x[ 9] = -0.9510565162951535; y[ 9] = 0.4154150130018864; x[10] = -0.9510565162951535; y[10] = 0.8412535328311812; x[11] = -0.9510565162951535; y[11] = 1.000000000000000; x[12] = -0.8090169943749473; y[12] = -1.000000000000000; x[13] = -0.8090169943749473; y[13] = -0.8412535328311811; x[14] = -0.8090169943749473; y[14] = -0.4154150130018863; x[15] = -0.8090169943749473; y[15] = 0.1423148382732851; x[16] = -0.8090169943749473; y[16] = 0.6548607339452851; x[17] = -0.8090169943749473; y[17] = 0.9594929736144974; x[18] = -0.5877852522924730; y[18] = -0.9594929736144974; x[19] = -0.5877852522924730; y[19] = -0.6548607339452850; x[20] = -0.5877852522924730; y[20] = -0.1423148382732850; x[21] = -0.5877852522924730; y[21] = 0.4154150130018864; x[22] = -0.5877852522924730; y[22] = 0.8412535328311812; x[23] = -0.5877852522924730; y[23] = 1.000000000000000; x[24] = -0.3090169943749473; y[24] = -1.000000000000000; x[25] = -0.3090169943749473; y[25] = -0.8412535328311811; x[26] = -0.3090169943749473; y[26] = -0.4154150130018863; x[27] = -0.3090169943749473; y[27] = 0.1423148382732851; x[28] = -0.3090169943749473; y[28] = 0.6548607339452851; x[29] = -0.3090169943749473; y[29] = 0.9594929736144974; x[30] = 0.000000000000000; y[30] = -0.9594929736144974; x[31] = 0.000000000000000; y[31] = -0.6548607339452850; x[32] = 0.000000000000000; y[32] = -0.1423148382732850; x[33] = 0.000000000000000; y[33] = 0.4154150130018864; x[34] = 0.000000000000000; y[34] = 0.8412535328311812; x[35] = 0.000000000000000; y[35] = 1.000000000000000; x[36] = 0.3090169943749475; y[36] = -1.000000000000000; x[37] = 0.3090169943749475; y[37] = -0.8412535328311811; x[38] = 0.3090169943749475; y[38] = -0.4154150130018863; x[39] = 0.3090169943749475; y[39] = 0.1423148382732851; x[40] = 0.3090169943749475; y[40] = 0.6548607339452851; x[41] = 0.3090169943749475; y[41] = 0.9594929736144974; x[42] = 0.5877852522924731; y[42] = -0.9594929736144974; x[43] = 0.5877852522924731; y[43] = -0.6548607339452850; x[44] = 0.5877852522924731; y[44] = -0.1423148382732850; x[45] = 0.5877852522924731; y[45] = 0.4154150130018864; x[46] = 0.5877852522924731; y[46] = 0.8412535328311812; x[47] = 0.5877852522924731; y[47] = 1.000000000000000; x[48] = 0.8090169943749475; y[48] = -1.000000000000000; x[49] = 0.8090169943749475; y[49] = -0.8412535328311811; x[50] = 0.8090169943749475; y[50] = -0.4154150130018863; x[51] = 0.8090169943749475; y[51] = 0.1423148382732851; x[52] = 0.8090169943749475; y[52] = 0.6548607339452851; x[53] = 0.8090169943749475; y[53] = 0.9594929736144974; x[54] = 0.9510565162951535; y[54] = -0.9594929736144974; x[55] = 0.9510565162951535; y[55] = -0.6548607339452850; x[56] = 0.9510565162951535; y[56] = -0.1423148382732850; x[57] = 0.9510565162951535; y[57] = 0.4154150130018864; x[58] = 0.9510565162951535; y[58] = 0.8412535328311812; x[59] = 0.9510565162951535; y[59] = 1.000000000000000; x[60] = 1.000000000000000; y[60] = -1.000000000000000; x[61] = 1.000000000000000; y[61] = -0.8412535328311811; x[62] = 1.000000000000000; y[62] = -0.4154150130018863; x[63] = 1.000000000000000; y[63] = 0.1423148382732851; x[64] = 1.000000000000000; y[64] = 0.6548607339452851; x[65] = 1.000000000000000; y[65] = 0.9594929736144974; } else { cerr << "\n"; cerr << "PADUA_POINT_SET - Fatal error!\n"; cerr << " Illegal value of L = " << l << "\n"; cerr << " Legal values are 1 through 10.\n"; exit ( 1 ); } return; } //****************************************************************************80 void padua_weight_set ( int l, double w[] ) //****************************************************************************80 // // Purpose: // // PADUA_WEIGHT_SET sets quadrature weights for the Padua points. // // Licensing: // // This code is distributed under the GNU LGPL license. // // Modified: // // 30 May 2014 // // Author: // // John Burkardt // // Reference: // // Marco Caliari, Stefano de Marchi, Marco Vianello, // Bivariate interpolation on the square at new nodal sets, // Applied Mathematics and Computation, // Volume 165, Number 2, 2005, pages 261-274. // // Parameters: // // Input, int L, the level. // 0 <= L <= 10. // // Output, double W[N], the quadrature weights. // { if ( l == 0 ) { w[ 0] = 4.000000000000000E+00; } else if ( l == 1 ) { w[ 0] = 1.000000000000000E+00; w[ 1] = 1.000000000000000E+00; w[ 2] = 2.000000000000000E+00; } else if ( l == 2 ) { w[ 0] = 0.0E+00; w[ 1] = 0.6666666666666663E+00; w[ 2] = 2.222222222222222E+00; w[ 3] = 0.4444444444444444E+00; w[ 4] = 0.0E+00; w[ 5] = 0.6666666666666664E+00; } else if ( l == 3 ) { w[ 0] = -0.5555555555555480E-01; w[ 1] = 0.3333333333333331E+00; w[ 2] = -0.5555555555555580E-01; w[ 3] = 0.8888888888888886E+00; w[ 4] = 0.8888888888888893E+00; w[ 5] = 0.2222222222222224E+00; w[ 6] = 1.333333333333333E+00; w[ 7] = 0.2222222222222220E+00; w[ 8] = 0.1111111111111109E+00; w[ 9] = 0.1111111111111112E+00; } else if ( l == 4 ) { w[ 0] = -0.8888888888888932E-02; w[ 1] = 0.8104919101110961E-01; w[ 2] = 0.6117303121111219E-01; w[ 3] = 0.3874097078666789E+00; w[ 4] = 0.6259236254666545E+00; w[ 5] = 0.5333333333333362E-01; w[ 6] = 0.7111111111111067E-01; w[ 7] = 0.9830822022444241E+00; w[ 8] = 0.5458066866444642E+00; w[ 9] = 0.3874097078666780E+00; w[10] = 0.6259236254666568E+00; w[11] = 0.5333333333333383E-01; w[12] = -0.8888888888888703E-02; w[13] = 0.8104919101110968E-01; w[14] = 0.6117303121111135E-01; } else if ( l == 5 ) { w[ 0] = -0.1037037037037093E-01; w[ 1] = 0.5037037037036911E-01; w[ 2] = 0.5037037037037081E-01; w[ 3] = -0.1037037037036947E-01; w[ 4] = 0.1876963678740801E+00; w[ 5] = 0.3460933466518654E+00; w[ 6] = 0.1876963678740763E+00; w[ 7] = 0.4514390511851724E-01; w[ 8] = 0.5541130536814713E+00; w[ 9] = 0.5541130536814728E+00; w[10] = 0.4514390511851834E-01; w[11] = 0.2804517802740705E+00; w[12] = 0.6376103570518378E+00; w[13] = 0.2804517802740683E+00; w[14] = 0.3189313191851883E-01; w[15] = 0.3288499092814910E+00; w[16] = 0.3288499092814925E+00; w[17] = 0.3189313191851956E-01; w[18] = 0.2074074074074123E-01; w[19] = 0.3851851851851849E-01; w[20] = 0.2074074074074051E-01; } else if ( l == 6 ) { w[ 0] = -0.3023431594858565E-02; w[ 1] = 0.1957267632451884E-01; w[ 2] = 0.2633929313290840E-01; w[ 3] = 0.1425431928029237E-01; w[ 4] = 0.1006383046329639E+00; w[ 5] = 0.2208900184526934E+00; w[ 6] = 0.1743144584714012E+00; w[ 7] = 0.1209372637943976E-01; w[ 8] = 0.1934996220710680E-01; w[ 9] = 0.3245064820875231E+00; w[10] = 0.4027058473592984E+00; w[11] = 0.1677234226317961E+00; w[12] = 0.1953319357827178E+00; w[13] = 0.4489633053035124E+00; w[14] = 0.3721824611057551E+00; w[15] = 0.2479213907785274E-01; w[16] = 0.1934996220710561E-01; w[17] = 0.3245064820875153E+00; w[18] = 0.4027058473592959E+00; w[19] = 0.1677234226317944E+00; w[20] = 0.1006383046329745E+00; w[21] = 0.2208900184526933E+00; w[22] = 0.1743144584714027E+00; w[23] = 0.1209372637944051E-01; w[24] = -0.3023431594861990E-02; w[25] = 0.1957267632451757E-01; w[26] = 0.2633929313290797E-01; w[27] = 0.1425431928029198E-01; } else if ( l == 7 ) { w[ 0] = -0.3287981859413765E-02; w[ 1] = 0.1337868480725671E-01; w[ 2] = 0.2063492063491996E-01; w[ 3] = 0.1337868480725546E-01; w[ 4] = -0.3287981859408898E-02; w[ 5] = 0.5949324721885513E-01; w[ 6] = 0.1306477599993571E+00; w[ 7] = 0.1306477599993581E+00; w[ 8] = 0.5949324721885061E-01; w[ 9] = 0.1263869091685831E-01; w[10] = 0.1979944935601103E+00; w[11] = 0.2832184784823740E+00; w[12] = 0.1979944935601143E+00; w[13] = 0.1263869091685747E-01; w[14] = 0.1221817987389771E+00; w[15] = 0.3150266070593529E+00; w[16] = 0.3150266070593440E+00; w[17] = 0.1221817987389802E+00; w[18] = 0.1771365352315134E-01; w[19] = 0.2490926964598258E+00; w[20] = 0.3408041116306980E+00; w[21] = 0.2490926964598291E+00; w[22] = 0.1771365352314976E-01; w[23] = 0.9646986307476696E-01; w[24] = 0.2557725606433917E+00; w[25] = 0.2557725606433927E+00; w[26] = 0.9646986307476431E-01; w[27] = 0.8649923133686802E-02; w[28] = 0.1062007918394705E+00; w[29] = 0.1505805844901012E+00; w[30] = 0.1062007918394705E+00; w[31] = 0.8649923133690016E-02; w[32] = 0.6355881462931014E-02; w[33] = 0.1405228180237514E-01; w[34] = 0.1405228180237651E-01; w[35] = 0.6355881462928496E-02; } else if ( l == 8 ) { w[ 0] = -0.1269841269835311E-02; w[ 1] = 0.6706089639041270E-02; w[ 2] = 0.1111455441352989E-01; w[ 3] = 0.1026455026455282E-01; w[ 4] = 0.4930678698742625E-02; w[ 5] = 0.3633146869162523E-01; w[ 6] = 0.8838322767333079E-01; w[ 7] = 0.9965911758463214E-01; w[ 8] = 0.6400185533755555E-01; w[ 9] = 0.4061629144893127E-02; w[10] = 0.6772486772485166E-02; w[11] = 0.1258344472781388E+00; w[12] = 0.1927501398511116E+00; w[13] = 0.1699470899470907E+00; w[14] = 0.6342599488133535E-01; w[15] = 0.8376332474107638E-01; w[16] = 0.2170841444607031E+00; w[17] = 0.2477307250801775E+00; w[18] = 0.1648098048612226E+00; w[19] = 0.1004771829779292E-01; w[20] = 0.1015873015872910E-01; w[21] = 0.1784328991205164E+00; w[22] = 0.2729409493576765E+00; w[23] = 0.2364021164021134E+00; w[24] = 0.8936689226256009E-01; w[25] = 0.8376332474107701E-01; w[26] = 0.2170841444607054E+00; w[27] = 0.2477307250801761E+00; w[28] = 0.1648098048612200E+00; w[29] = 0.1004771829779330E-01; w[30] = 0.6772486772485237E-02; w[31] = 0.1258344472781358E+00; w[32] = 0.1927501398511135E+00; w[33] = 0.1699470899470926E+00; w[34] = 0.6342599488133838E-01; w[35] = 0.3633146869162453E-01; w[36] = 0.8838322767332588E-01; w[37] = 0.9965911758463601E-01; w[38] = 0.6400185533755502E-01; w[39] = 0.4061629144888279E-02; w[40] = -0.1269841269836355E-02; w[41] = 0.6706089639046927E-02; w[42] = 0.1111455441352761E-01; w[43] = 0.1026455026454956E-01; w[44] = 0.4930678698747173E-02; } else if ( l == 9 ) { w[ 0] = -0.1368606701945113E-02; w[ 1] = 0.4837977417140975E-02; w[ 2] = 0.8876308297144902E-02; w[ 3] = 0.8876308297143068E-02; w[ 4] = 0.4837977417150492E-02; w[ 5] = -0.1368606701935084E-02; w[ 6] = 0.2425285860992349E-01; w[ 7] = 0.5727330842923516E-01; w[ 8] = 0.7008257906578071E-01; w[ 9] = 0.5727330842922034E-01; w[10] = 0.2425285860989794E-01; w[11] = 0.4659404339099723E-02; w[12] = 0.8354521980498550E-01; w[13] = 0.1370796991940044E+00; w[14] = 0.1370796991940248E+00; w[15] = 0.8354521980500107E-01; w[16] = 0.4659404339109654E-02; w[17] = 0.5564545640233619E-01; w[18] = 0.1524391996823315E+00; w[19] = 0.1877107583774149E+00; w[20] = 0.1524391996823176E+00; w[21] = 0.5564545640232402E-01; w[22] = 0.8186176158691754E-02; w[23] = 0.1295355639606716E+00; w[24] = 0.2061407656847711E+00; w[25] = 0.2061407656847630E+00; w[26] = 0.1295355639606894E+00; w[27] = 0.8186176158692687E-02; w[28] = 0.6234969028097752E-01; w[29] = 0.1730419031522391E+00; w[30] = 0.2169418247419051E+00; w[31] = 0.1730419031522361E+00; w[32] = 0.6234969028097048E-01; w[33] = 0.7506172839505762E-02; w[34] = 0.1142161960569350E+00; w[35] = 0.1802176663769002E+00; w[36] = 0.1802176663769038E+00; w[37] = 0.1142161960569279E+00; w[38] = 0.7506172839512260E-02; w[39] = 0.4031900987631698E-01; w[40] = 0.1142976211857364E+00; w[41] = 0.1413353845521477E+00; w[42] = 0.1142976211857414E+00; w[43] = 0.4031900987631700E-01; w[44] = 0.3239075586856897E-02; w[45] = 0.4317587564913915E-01; w[46] = 0.7015250533601934E-01; w[47] = 0.7015250533601930E-01; w[48] = 0.4317587564913908E-01; w[49] = 0.3239075586852207E-02; w[50] = 0.2550690557469151E-02; w[51] = 0.6084230077461027E-02; w[52] = 0.7421516754852508E-02; w[53] = 0.6084230077458821E-02; w[54] = 0.2550690557473353E-02; } else if ( l == 10 ) { w[ 0] = -0.6240762604463766E-03; w[ 1] = 0.2843227149025789E-02; w[ 2] = 0.5250031948150784E-02; w[ 3] = 0.5891746241568810E-02; w[ 4] = 0.4705736485964679E-02; w[ 5] = 0.2135354637732944E-02; w[ 6] = 0.1610939653924566E-01; w[ 7] = 0.4099595211758227E-01; w[ 8] = 0.5326500934654063E-01; w[ 9] = 0.4863338516658277E-01; w[10] = 0.2843474741781434E-01; w[11] = 0.1719619179693151E-02; w[12] = 0.2883769745121509E-02; w[13] = 0.5724711668876453E-01; w[14] = 0.9659872841640438E-01; w[15] = 0.1053210323353631E+00; w[16] = 0.8066212502628711E-01; w[17] = 0.2855765663647366E-01; w[18] = 0.3981286043310814E-01; w[19] = 0.1090390674981577E+00; w[20] = 0.1430169021081585E+00; w[21] = 0.1313686303763064E+00; w[22] = 0.7932850918298831E-01; w[23] = 0.4610696968783255E-02; w[24] = 0.5086495679684716E-02; w[25] = 0.9311356395361167E-01; w[26] = 0.1562320334111262E+00; w[27] = 0.1696057154254139E+00; w[28] = 0.1283581371975154E+00; w[29] = 0.4603059518094556E-01; w[30] = 0.4894888812994630E-01; w[31] = 0.1347281473526573E+00; w[32] = 0.1764193542601264E+00; w[33] = 0.1635037456303485E+00; w[34] = 0.9822749154565460E-01; w[35] = 0.5704840613923174E-02; w[36] = 0.5086495679679268E-02; w[37] = 0.9311356395362781E-01; w[38] = 0.1562320334111511E+00; w[39] = 0.1696057154253968E+00; w[40] = 0.1283581371975113E+00; w[41] = 0.4603059518094044E-01; w[42] = 0.3981286043311782E-01; w[43] = 0.1090390674981293E+00; w[44] = 0.1430169021081508E+00; w[45] = 0.1313686303763217E+00; w[46] = 0.7932850918299997E-01; w[47] = 0.4610696968790496E-02; w[48] = 0.2883769745110260E-02; w[49] = 0.5724711668875122E-01; w[50] = 0.9659872841642343E-01; w[51] = 0.1053210323353932E+00; w[52] = 0.8066212502626474E-01; w[53] = 0.2855765663644533E-01; w[54] = 0.1610939653928420E-01; w[55] = 0.4099595211758404E-01; w[56] = 0.5326500934649123E-01; w[57] = 0.4863338516656233E-01; w[58] = 0.2843474741784810E-01; w[59] = 0.1719619179720036E-02; w[60] = -0.6240762604606350E-03; w[61] = 0.2843227149011163E-02; w[62] = 0.5250031948172295E-02; w[63] = 0.5891746241587802E-02; w[64] = 0.4705736485965663E-02; w[65] = 0.2135354637703863E-02; } else { cerr << "\n"; cerr << "PADUA_WEIGHT_SET - Fatal error\n"; cerr << " Illegal value of L = " << l << "\n"; cerr << " Legal values are 0 through 10.\n"; exit ( 1 ); } return; }