# include # include # include # include # include # include # include using namespace std; int main ( int argc, char *argv[] ); bool order_check ( int order ); void patterson_set ( int order, double x[], double w[] ); void r8mat_write ( string output_filename, int m, int n, double table[] ); void rescale ( double a, double b, int n, double x[], double w[] ); void rule_write ( int order, string filename, double x[], double w[], double r[] ); void timestamp ( ); //****************************************************************************80 int main ( int argc, char *argv[] ) //****************************************************************************80 // // Purpose: // // MAIN is the main program for PATTERSON_RULE. // // Discussion: // // This program computes a standard Gauss-Patterson quadrature rule // and writes it to a file. // // Usage: // // patterson_rule order a b output // // where // // * ORDER is the number of points in the rule, and must be // 1, 3, 7, 15, 31, 63, 127, 255 or 511. // * A is the left endpoint; // * B is the right endpoint; // * FILENAME is the "root name" of the output files. // // Licensing: // // This code is distributed under the MIT license. // // Modified: // // 21 February 2010 // // Author: // // John Burkardt // { double a; double b; string filename; int order; double *r; double *w; double *x; timestamp ( ); cout << "\n"; cout << "PATTERSON_RULE\n"; cout << " C++ version\n"; cout << "\n"; cout << " Compiled on " << __DATE__ << " at " << __TIME__ << ".\n"; cout << "\n"; cout << " Compute a Gauss-Patterson rule for approximating\n"; cout << " Integral ( -1 <= x <= +1 ) f(x) dx\n"; cout << " of order ORDER.\n"; cout << "\n"; cout << " The user specifies ORDER, A, B, and FILENAME.\n"; cout << "\n"; cout << " ORDER is 1, 3, 7, 15, 31, 63, 127, 255 or 511.\n"; cout << " A is the left endpoint.\n"; cout << " B is the right endpoint.\n"; cout << " FILENAME is used to generate 3 files:\n"; cout << " filename_w.txt - the weight file\n"; cout << " filename_x.txt - the abscissa file.\n"; cout << " filename_r.txt - the region file.\n"; // // Get ORDER. // if ( 1 < argc ) { order = atoi ( argv[1] ); } else { cout << "\n"; cout << " Enter the value of ORDER.\n"; cin >> order; } if ( !order_check ( order ) ) { cout << "\n"; cout << "PATTERSON_RULE:\n"; cout << " ORDER is illegal.\n"; cout << " Abnormal end of execution.\n"; exit ( 1 ); } // // Get A. // if ( 2 < argc ) { a = atof ( argv[2] ); } else { cout << "\n"; cout << " Enter the left endpoint A:\n"; cin >> a; } // // Get B. // if ( 3 < argc ) { b = atof ( argv[3] ); } else { cout << "\n"; cout << " Enter the right endpoint B:\n"; cin >> b; } // // Get FILENAME: // if ( 4 < argc ) { filename = argv[4]; } else { cout << "\n"; cout << " Enter FILENAME, the \"root name\" of the quadrature files).\n"; cin >> filename; } // // Input summary. // cout << "\n"; cout << " ORDER = " << order << "\n"; cout << " A = " << a << "\n"; cout << " B = " << b << "\n"; cout << " FILENAME = \"" << filename << "\".\n"; // // Construct the rule. // r = new double[2]; w = new double[order]; x = new double[order]; r[0] = a; r[1] = b; patterson_set ( order, x, w ); // // Rescale the rule. // rescale ( a, b, order, x, w ); // // Output the rule. // rule_write ( order, filename, x, w, r ); // // Free memory. // delete [] r; delete [] w; delete [] x; // // Terminate. // cout << "\n"; cout << "PATTERSON_RULE:\n"; cout << " Normal end of execution.\n"; cout << "\n"; timestamp ( ); return 0; } //****************************************************************************80 bool order_check ( int order ) //****************************************************************************80 // // Purpose: // // ORDER_CHECK checks the value of ORDER. // // Licensing: // // This code is distributed under the MIT license. // // Modified: // // 17 December 2009 // // Author: // // John Burkardt // // Parameters: // // Input, int ORDER, the requested order. // // Output, bool ORDER_CHECK, is TRUE if the requested order is acceptable. // { bool check; check = ( order == 1 ) || ( order == 3 ) || ( order == 7 ) || ( order == 15 ) || ( order == 31 ) || ( order == 63 ) || ( order == 127 ) || ( order =- 255 ) || ( order == 511 ); return check; } //****************************************************************************80 void patterson_set ( int n, double x[], double w[] ) //****************************************************************************80 // // Purpose: // // PATTERSON_SET sets abscissas and weights for Gauss-Patterson quadrature. // // Discussion: // // The integration interval is [ -1, 1 ]. // // The weight function is w(x-1] = 1.0. // // The integral to approximate: // // Integral ( -1 <= X <= 1 ) F(X) dX // // The quadrature rule: // // Sum ( 1 <= I <= N ) W[I) * F ( X[I) ) // // The zeroth rule, of order 1, is the standard Gauss-Legendre rule. // // The first rule, of order 3, is the standard Gauss-Legendre rule. // // The second rule, of order 7, includes the abscissas of the previous // rule. // // Each subsequent rule is nested in a similar way. Rules are available // of orders 1, 3, 7, 15, 31, 63, 127, 255, and 511. // // The data for N = 511 was supplied by Dirk Laurie. // // Licensing: // // This code is distributed under the MIT license. // // Modified: // // 14 September 2011 // // Author: // // John Burkardt // // Reference: // // Prem Kythe, Michael Schaeferkotter, // Handbook of Computational Methods for Integration, // Chapman and Hall, 2004, // ISBN: 1-58488-428-2, // LC: QA299.3.K98. // // Thomas Patterson, // The Optimal Addition of Points to Quadrature Formulae, // Mathematics of Computation, // Volume 22, Number 104, October 1968, pages 847-856. // // Parameters: // // Input, int N, the order of the rule. // N must be 1, 3, 7, 15, 31, 63, 127, 255 or 511. // // Output, double X[N], the abscissas of the rule. // // Output, double W[N], the weights of the rule. // The weights are positive, symmetric and should sum to 2. // { if ( n == 1 ) { x[0] = 0.0; w[0] = 2.0; } else if ( n == 3 ) { x[0] = -0.77459666924148337704; x[1] = 0.0; x[2] = 0.77459666924148337704; w[0] = 0.555555555555555555556; w[1] = 0.888888888888888888889; w[2] = 0.555555555555555555556; } else if ( n == 7 ) { x[0] = -0.96049126870802028342; x[1] = -0.77459666924148337704; x[2] = -0.43424374934680255800; x[3] = 0.0; x[4] = 0.43424374934680255800; x[5] = 0.77459666924148337704; x[6] = 0.96049126870802028342; w[0] = 0.104656226026467265194; w[1] = 0.268488089868333440729; w[2] = 0.401397414775962222905; w[3] = 0.450916538658474142345; w[4] = 0.401397414775962222905; w[5] = 0.268488089868333440729; w[6] = 0.104656226026467265194; } else if ( n == 15 ) { x[ 0] = -0.99383196321275502221; x[ 1] = -0.96049126870802028342; x[ 2] = -0.88845923287225699889; x[ 3] = -0.77459666924148337704; x[ 4] = -0.62110294673722640294; x[ 5] = -0.43424374934680255800; x[ 6] = -0.22338668642896688163; x[ 7] = 0.0; x[ 8] = 0.22338668642896688163; x[ 9] = 0.43424374934680255800; x[10] = 0.62110294673722640294; x[11] = 0.77459666924148337704; x[12] = 0.88845923287225699889; x[13] = 0.96049126870802028342; x[14] = 0.99383196321275502221; w[ 0] = 0.0170017196299402603390; w[ 1] = 0.0516032829970797396969; w[ 2] = 0.0929271953151245376859; w[ 3] = 0.134415255243784220360; w[ 4] = 0.171511909136391380787; w[ 5] = 0.200628529376989021034; w[ 6] = 0.219156858401587496404; w[ 7] = 0.225510499798206687386; w[ 8] = 0.219156858401587496404; w[ 9] = 0.200628529376989021034; w[10] = 0.171511909136391380787; w[11] = 0.134415255243784220360; w[12] = 0.0929271953151245376859; w[13] = 0.0516032829970797396969; w[14] = 0.0170017196299402603390; } else if ( n == 31 ) { x[ 0] = -0.99909812496766759766; x[ 1] = -0.99383196321275502221; x[ 2] = -0.98153114955374010687; x[ 3] = -0.96049126870802028342; x[ 4] = -0.92965485742974005667; x[ 5] = -0.88845923287225699889; x[ 6] = -0.83672593816886873550; x[ 7] = -0.77459666924148337704; x[ 8] = -0.70249620649152707861; x[ 9] = -0.62110294673722640294; x[10] = -0.53131974364437562397; x[11] = -0.43424374934680255800; x[12] = -0.33113539325797683309; x[13] = -0.22338668642896688163; x[14] = -0.11248894313318662575; x[15] = 0.0; x[16] = 0.11248894313318662575; x[17] = 0.22338668642896688163; x[18] = 0.33113539325797683309; x[19] = 0.43424374934680255800; x[20] = 0.53131974364437562397; x[21] = 0.62110294673722640294; x[22] = 0.70249620649152707861; x[23] = 0.77459666924148337704; x[24] = 0.83672593816886873550; x[25] = 0.88845923287225699889; x[26] = 0.92965485742974005667; x[27] = 0.96049126870802028342; x[28] = 0.98153114955374010687; x[29] = 0.99383196321275502221; x[30] = 0.99909812496766759766; w[ 0] = 0.00254478079156187441540; w[ 1] = 0.00843456573932110624631; w[ 2] = 0.0164460498543878109338; w[ 3] = 0.0258075980961766535646; w[ 4] = 0.0359571033071293220968; w[ 5] = 0.0464628932617579865414; w[ 6] = 0.0569795094941233574122; w[ 7] = 0.0672077542959907035404; w[ 8] = 0.0768796204990035310427; w[ 9] = 0.0857559200499903511542; w[10] = 0.0936271099812644736167; w[11] = 0.100314278611795578771; w[12] = 0.105669893580234809744; w[13] = 0.109578421055924638237; w[14] = 0.111956873020953456880; w[15] = 0.112755256720768691607; w[16] = 0.111956873020953456880; w[17] = 0.109578421055924638237; w[18] = 0.105669893580234809744; w[19] = 0.100314278611795578771; w[20] = 0.0936271099812644736167; w[21] = 0.0857559200499903511542; w[22] = 0.0768796204990035310427; w[23] = 0.0672077542959907035404; w[24] = 0.0569795094941233574122; w[25] = 0.0464628932617579865414; w[26] = 0.0359571033071293220968; w[27] = 0.0258075980961766535646; w[28] = 0.0164460498543878109338; w[29] = 0.00843456573932110624631; w[30] = 0.00254478079156187441540; } else if ( n == 63 ) { x[ 0] = -0.99987288812035761194; x[ 1] = -0.99909812496766759766; x[ 2] = -0.99720625937222195908; x[ 3] = -0.99383196321275502221; x[ 4] = -0.98868475754742947994; x[ 5] = -0.98153114955374010687; x[ 6] = -0.97218287474858179658; x[ 7] = -0.96049126870802028342; x[ 8] = -0.94634285837340290515; x[ 9] = -0.92965485742974005667; x[10] = -0.91037115695700429250; x[11] = -0.88845923287225699889; x[12] = -0.86390793819369047715; x[13] = -0.83672593816886873550; x[14] = -0.80694053195021761186; x[15] = -0.77459666924148337704; x[16] = -0.73975604435269475868; x[17] = -0.70249620649152707861; x[18] = -0.66290966002478059546; x[19] = -0.62110294673722640294; x[20] = -0.57719571005204581484; x[21] = -0.53131974364437562397; x[22] = -0.48361802694584102756; x[23] = -0.43424374934680255800; x[24] = -0.38335932419873034692; x[25] = -0.33113539325797683309; x[26] = -0.27774982202182431507; x[27] = -0.22338668642896688163; x[28] = -0.16823525155220746498; x[29] = -0.11248894313318662575; x[30] = -0.056344313046592789972; x[31] = 0.0; x[32] = 0.056344313046592789972; x[33] = 0.11248894313318662575; x[34] = 0.16823525155220746498; x[35] = 0.22338668642896688163; x[36] = 0.27774982202182431507; x[37] = 0.33113539325797683309; x[38] = 0.38335932419873034692; x[39] = 0.43424374934680255800; x[40] = 0.48361802694584102756; x[41] = 0.53131974364437562397; x[42] = 0.57719571005204581484; x[43] = 0.62110294673722640294; x[44] = 0.66290966002478059546; x[45] = 0.70249620649152707861; x[46] = 0.73975604435269475868; x[47] = 0.77459666924148337704; x[48] = 0.80694053195021761186; x[49] = 0.83672593816886873550; x[50] = 0.86390793819369047715; x[51] = 0.88845923287225699889; x[52] = 0.91037115695700429250; x[53] = 0.92965485742974005667; x[54] = 0.94634285837340290515; x[55] = 0.96049126870802028342; x[56] = 0.97218287474858179658; x[57] = 0.98153114955374010687; x[58] = 0.98868475754742947994; x[59] = 0.99383196321275502221; x[60] = 0.99720625937222195908; x[61] = 0.99909812496766759766; x[62] = 0.99987288812035761194; w[ 0] = 0.000363221481845530659694; w[ 1] = 0.00126515655623006801137; w[ 2] = 0.00257904979468568827243; w[ 3] = 0.00421763044155885483908; w[ 4] = 0.00611550682211724633968; w[ 5] = 0.00822300795723592966926; w[ 6] = 0.0104982469096213218983; w[ 7] = 0.0129038001003512656260; w[ 8] = 0.0154067504665594978021; w[ 9] = 0.0179785515681282703329; w[10] = 0.0205942339159127111492; w[11] = 0.0232314466399102694433; w[12] = 0.0258696793272147469108; w[13] = 0.0284897547458335486125; w[14] = 0.0310735511116879648799; w[15] = 0.0336038771482077305417; w[16] = 0.0360644327807825726401; w[17] = 0.0384398102494555320386; w[18] = 0.0407155101169443189339; w[19] = 0.0428779600250077344929; w[20] = 0.0449145316536321974143; w[21] = 0.0468135549906280124026; w[22] = 0.0485643304066731987159; w[23] = 0.0501571393058995374137; w[24] = 0.0515832539520484587768; w[25] = 0.0528349467901165198621; w[26] = 0.0539054993352660639269; w[27] = 0.0547892105279628650322; w[28] = 0.0554814043565593639878; w[29] = 0.0559784365104763194076; w[30] = 0.0562776998312543012726; w[31] = 0.0563776283603847173877; w[32] = 0.0562776998312543012726; w[33] = 0.0559784365104763194076; w[34] = 0.0554814043565593639878; w[35] = 0.0547892105279628650322; w[36] = 0.0539054993352660639269; w[37] = 0.0528349467901165198621; w[38] = 0.0515832539520484587768; w[39] = 0.0501571393058995374137; w[40] = 0.0485643304066731987159; w[41] = 0.0468135549906280124026; w[42] = 0.0449145316536321974143; w[43] = 0.0428779600250077344929; w[44] = 0.0407155101169443189339; w[45] = 0.0384398102494555320386; w[46] = 0.0360644327807825726401; w[47] = 0.0336038771482077305417; w[48] = 0.0310735511116879648799; w[49] = 0.0284897547458335486125; w[50] = 0.0258696793272147469108; w[51] = 0.0232314466399102694433; w[52] = 0.0205942339159127111492; w[53] = 0.0179785515681282703329; w[54] = 0.0154067504665594978021; w[55] = 0.0129038001003512656260; w[56] = 0.0104982469096213218983; w[57] = 0.00822300795723592966926; w[58] = 0.00611550682211724633968; w[59] = 0.00421763044155885483908; w[60] = 0.00257904979468568827243; w[61] = 0.00126515655623006801137; w[62] = 0.000363221481845530659694; } else if ( n == 127 ) { x[ 0] = -0.99998243035489159858; x[ 1] = -0.99987288812035761194; x[ 2] = -0.99959879967191068325; x[ 3] = -0.99909812496766759766; x[ 4] = -0.99831663531840739253; x[ 5] = -0.99720625937222195908; x[ 6] = -0.99572410469840718851; x[ 7] = -0.99383196321275502221; x[ 8] = -0.99149572117810613240; x[ 9] = -0.98868475754742947994; x[ 10] = -0.98537149959852037111; x[ 11] = -0.98153114955374010687; x[ 12] = -0.97714151463970571416; x[ 13] = -0.97218287474858179658; x[ 14] = -0.96663785155841656709; x[ 15] = -0.96049126870802028342; x[ 16] = -0.95373000642576113641; x[ 17] = -0.94634285837340290515; x[ 18] = -0.93832039777959288365; x[ 19] = -0.92965485742974005667; x[ 20] = -0.92034002547001242073; x[ 21] = -0.91037115695700429250; x[ 22] = -0.89974489977694003664; x[ 23] = -0.88845923287225699889; x[ 24] = -0.87651341448470526974; x[ 25] = -0.86390793819369047715; x[ 26] = -0.85064449476835027976; x[ 27] = -0.83672593816886873550; x[ 28] = -0.82215625436498040737; x[ 29] = -0.80694053195021761186; x[ 30] = -0.79108493379984836143; x[ 31] = -0.77459666924148337704; x[ 32] = -0.75748396638051363793; x[ 33] = -0.73975604435269475868; x[ 34] = -0.72142308537009891548; x[ 35] = -0.70249620649152707861; x[ 36] = -0.68298743109107922809; x[ 37] = -0.66290966002478059546; x[ 38] = -0.64227664250975951377; x[ 39] = -0.62110294673722640294; x[ 40] = -0.59940393024224289297; x[ 41] = -0.57719571005204581484; x[ 42] = -0.55449513263193254887; x[ 43] = -0.53131974364437562397; x[ 44] = -0.50768775753371660215; x[ 45] = -0.48361802694584102756; x[ 46] = -0.45913001198983233287; x[ 47] = -0.43424374934680255800; x[ 48] = -0.40897982122988867241; x[ 49] = -0.38335932419873034692; x[ 50] = -0.35740383783153215238; x[ 51] = -0.33113539325797683309; x[ 52] = -0.30457644155671404334; x[ 53] = -0.27774982202182431507; x[ 54] = -0.25067873030348317661; x[ 55] = -0.22338668642896688163; x[ 56] = -0.19589750271110015392; x[ 57] = -0.16823525155220746498; x[ 58] = -0.14042423315256017459; x[ 59] = -0.11248894313318662575; x[ 60] = -0.084454040083710883710; x[ 61] = -0.056344313046592789972; x[ 62] = -0.028184648949745694339; x[ 63] = 0.0; x[ 64] = 0.028184648949745694339; x[ 65] = 0.056344313046592789972; x[ 66] = 0.084454040083710883710; x[ 67] = 0.11248894313318662575; x[ 68] = 0.14042423315256017459; x[ 69] = 0.16823525155220746498; x[ 70] = 0.19589750271110015392; x[ 71] = 0.22338668642896688163; x[ 72] = 0.25067873030348317661; x[ 73] = 0.27774982202182431507; x[ 74] = 0.30457644155671404334; x[ 75] = 0.33113539325797683309; x[ 76] = 0.35740383783153215238; x[ 77] = 0.38335932419873034692; x[ 78] = 0.40897982122988867241; x[ 79] = 0.43424374934680255800; x[ 80] = 0.45913001198983233287; x[ 81] = 0.48361802694584102756; x[ 82] = 0.50768775753371660215; x[ 83] = 0.53131974364437562397; x[ 84] = 0.55449513263193254887; x[ 85] = 0.57719571005204581484; x[ 86] = 0.59940393024224289297; x[ 87] = 0.62110294673722640294; x[ 88] = 0.64227664250975951377; x[ 89] = 0.66290966002478059546; x[ 90] = 0.68298743109107922809; x[ 91] = 0.70249620649152707861; x[ 92] = 0.72142308537009891548; x[ 93] = 0.73975604435269475868; x[ 94] = 0.75748396638051363793; x[ 95] = 0.77459666924148337704; x[ 96] = 0.79108493379984836143; x[ 97] = 0.80694053195021761186; x[ 98] = 0.82215625436498040737; x[ 99] = 0.83672593816886873550; x[100] = 0.85064449476835027976; x[101] = 0.86390793819369047715; x[102] = 0.87651341448470526974; x[103] = 0.88845923287225699889; x[104] = 0.89974489977694003664; x[105] = 0.91037115695700429250; x[106] = 0.92034002547001242073; x[107] = 0.92965485742974005667; x[108] = 0.93832039777959288365; x[109] = 0.94634285837340290515; x[110] = 0.95373000642576113641; x[111] = 0.96049126870802028342; x[112] = 0.96663785155841656709; x[113] = 0.97218287474858179658; x[114] = 0.97714151463970571416; x[115] = 0.98153114955374010687; x[116] = 0.98537149959852037111; x[117] = 0.98868475754742947994; x[118] = 0.99149572117810613240; x[119] = 0.99383196321275502221; x[120] = 0.99572410469840718851; x[121] = 0.99720625937222195908; x[122] = 0.99831663531840739253; x[123] = 0.99909812496766759766; x[124] = 0.99959879967191068325; x[125] = 0.99987288812035761194; x[126] = 0.99998243035489159858; w[ 0] = 0.0000505360952078625176247; w[ 1] = 0.000180739564445388357820; w[ 2] = 0.000377746646326984660274; w[ 3] = 0.000632607319362633544219; w[ 4] = 0.000938369848542381500794; w[ 5] = 0.00128952408261041739210; w[ 6] = 0.00168114286542146990631; w[ 7] = 0.00210881524572663287933; w[ 8] = 0.00256876494379402037313; w[ 9] = 0.00305775341017553113613; w[ 10] = 0.00357289278351729964938; w[ 11] = 0.00411150397865469304717; w[ 12] = 0.00467105037211432174741; w[ 13] = 0.00524912345480885912513; w[ 14] = 0.00584344987583563950756; w[ 15] = 0.00645190005017573692280; w[ 16] = 0.00707248999543355546805; w[ 17] = 0.00770337523327974184817; w[ 18] = 0.00834283875396815770558; w[ 19] = 0.00898927578406413572328; w[ 20] = 0.00964117772970253669530; w[ 21] = 0.0102971169579563555237; w[ 22] = 0.0109557333878379016480; w[ 23] = 0.0116157233199551347270; w[ 24] = 0.0122758305600827700870; w[ 25] = 0.0129348396636073734547; w[ 26] = 0.0135915710097655467896; w[ 27] = 0.0142448773729167743063; w[ 28] = 0.0148936416648151820348; w[ 29] = 0.0155367755558439824399; w[ 30] = 0.0161732187295777199419; w[ 31] = 0.0168019385741038652709; w[ 32] = 0.0174219301594641737472; w[ 33] = 0.0180322163903912863201; w[ 34] = 0.0186318482561387901863; w[ 35] = 0.0192199051247277660193; w[ 36] = 0.0197954950480974994880; w[ 37] = 0.0203577550584721594669; w[ 38] = 0.0209058514458120238522; w[ 39] = 0.0214389800125038672465; w[ 40] = 0.0219563663053178249393; w[ 41] = 0.0224572658268160987071; w[ 42] = 0.0229409642293877487608; w[ 43] = 0.0234067774953140062013; w[ 44] = 0.0238540521060385400804; w[ 45] = 0.0242821652033365993580; w[ 46] = 0.0246905247444876769091; w[ 47] = 0.0250785696529497687068; w[ 48] = 0.0254457699654647658126; w[ 49] = 0.0257916269760242293884; w[ 50] = 0.0261156733767060976805; w[ 51] = 0.0264174733950582599310; w[ 52] = 0.0266966229274503599062; w[ 53] = 0.0269527496676330319634; w[ 54] = 0.0271855132296247918192; w[ 55] = 0.0273946052639814325161; w[ 56] = 0.0275797495664818730349; w[ 57] = 0.0277407021782796819939; w[ 58] = 0.0278772514766137016085; w[ 59] = 0.0279892182552381597038; w[ 60] = 0.0280764557938172466068; w[ 61] = 0.0281388499156271506363; w[ 62] = 0.0281763190330166021307; w[ 63] = 0.0281888141801923586938; w[ 64] = 0.0281763190330166021307; w[ 65] = 0.0281388499156271506363; w[ 66] = 0.0280764557938172466068; w[ 67] = 0.0279892182552381597038; w[ 68] = 0.0278772514766137016085; w[ 69] = 0.0277407021782796819939; w[ 70] = 0.0275797495664818730349; w[ 71] = 0.0273946052639814325161; w[ 72] = 0.0271855132296247918192; w[ 73] = 0.0269527496676330319634; w[ 74] = 0.0266966229274503599062; w[ 75] = 0.0264174733950582599310; w[ 76] = 0.0261156733767060976805; w[ 77] = 0.0257916269760242293884; w[ 78] = 0.0254457699654647658126; w[ 79] = 0.0250785696529497687068; w[ 80] = 0.0246905247444876769091; w[ 81] = 0.0242821652033365993580; w[ 82] = 0.0238540521060385400804; w[ 83] = 0.0234067774953140062013; w[ 84] = 0.0229409642293877487608; w[ 85] = 0.0224572658268160987071; w[ 86] = 0.0219563663053178249393; w[ 87] = 0.0214389800125038672465; w[ 88] = 0.0209058514458120238522; w[ 89] = 0.0203577550584721594669; w[ 90] = 0.0197954950480974994880; w[ 91] = 0.0192199051247277660193; w[ 92] = 0.0186318482561387901863; w[ 93] = 0.0180322163903912863201; w[ 94] = 0.0174219301594641737472; w[ 95] = 0.0168019385741038652709; w[ 96] = 0.0161732187295777199419; w[ 97] = 0.0155367755558439824399; w[ 98] = 0.0148936416648151820348; w[ 99] = 0.0142448773729167743063; w[100] = 0.0135915710097655467896; w[101] = 0.0129348396636073734547; w[102] = 0.0122758305600827700870; w[103] = 0.0116157233199551347270; w[104] = 0.0109557333878379016480; w[105] = 0.0102971169579563555237; w[106] = 0.00964117772970253669530; w[107] = 0.00898927578406413572328; w[108] = 0.00834283875396815770558; w[109] = 0.00770337523327974184817; w[110] = 0.00707248999543355546805; w[111] = 0.00645190005017573692280; w[112] = 0.00584344987583563950756; w[113] = 0.00524912345480885912513; w[114] = 0.00467105037211432174741; w[115] = 0.00411150397865469304717; w[116] = 0.00357289278351729964938; w[117] = 0.00305775341017553113613; w[118] = 0.00256876494379402037313; w[119] = 0.00210881524572663287933; w[120] = 0.00168114286542146990631; w[121] = 0.00128952408261041739210; w[122] = 0.000938369848542381500794; w[123] = 0.000632607319362633544219; w[124] = 0.000377746646326984660274; w[125] = 0.000180739564445388357820; w[126] = 0.0000505360952078625176247; } else if ( n == 255 ) { x[ 0] = -0.99999759637974846462; x[ 1] = -0.99998243035489159858; x[ 2] = -0.99994399620705437576; x[ 3] = -0.99987288812035761194; x[ 4] = -0.99976049092443204733; x[ 5] = -0.99959879967191068325; x[ 6] = -0.99938033802502358193; x[ 7] = -0.99909812496766759766; x[ 8] = -0.99874561446809511470; x[ 9] = -0.99831663531840739253; x[ 10] = -0.99780535449595727456; x[ 11] = -0.99720625937222195908; x[ 12] = -0.99651414591489027385; x[ 13] = -0.99572410469840718851; x[ 14] = -0.99483150280062100052; x[ 15] = -0.99383196321275502221; x[ 16] = -0.99272134428278861533; x[ 17] = -0.99149572117810613240; x[ 18] = -0.99015137040077015918; x[ 19] = -0.98868475754742947994; x[ 20] = -0.98709252795403406719; x[ 21] = -0.98537149959852037111; x[ 22] = -0.98351865757863272876; x[ 23] = -0.98153114955374010687; x[ 24] = -0.97940628167086268381; x[ 25] = -0.97714151463970571416; x[ 26] = -0.97473445975240266776; x[ 27] = -0.97218287474858179658; x[ 28] = -0.96948465950245923177; x[ 29] = -0.96663785155841656709; x[ 30] = -0.96364062156981213252; x[ 31] = -0.96049126870802028342; x[ 32] = -0.95718821610986096274; x[ 33] = -0.95373000642576113641; x[ 34] = -0.95011529752129487656; x[ 35] = -0.94634285837340290515; x[ 36] = -0.94241156519108305981; x[ 37] = -0.93832039777959288365; x[ 38] = -0.93406843615772578800; x[ 39] = -0.92965485742974005667; x[ 40] = -0.92507893290707565236; x[ 41] = -0.92034002547001242073; x[ 42] = -0.91543758715576504064; x[ 43] = -0.91037115695700429250; x[ 44] = -0.90514035881326159519; x[ 45] = -0.89974489977694003664; x[ 46] = -0.89418456833555902286; x[ 47] = -0.88845923287225699889; x[ 48] = -0.88256884024734190684; x[ 49] = -0.87651341448470526974; x[ 50] = -0.87029305554811390585; x[ 51] = -0.86390793819369047715; x[ 52] = -0.85735831088623215653; x[ 53] = -0.85064449476835027976; x[ 54] = -0.84376688267270860104; x[ 55] = -0.83672593816886873550; x[ 56] = -0.82952219463740140018; x[ 57] = -0.82215625436498040737; x[ 58] = -0.81462878765513741344; x[ 59] = -0.80694053195021761186; x[ 60] = -0.79909229096084140180; x[ 61] = -0.79108493379984836143; x[ 62] = -0.78291939411828301639; x[ 63] = -0.77459666924148337704; x[ 64] = -0.76611781930376009072; x[ 65] = -0.75748396638051363793; x[ 66] = -0.74869629361693660282; x[ 67] = -0.73975604435269475868; x[ 68] = -0.73066452124218126133; x[ 69] = -0.72142308537009891548; x[ 70] = -0.71203315536225203459; x[ 71] = -0.70249620649152707861; x[ 72] = -0.69281376977911470289; x[ 73] = -0.68298743109107922809; x[ 74] = -0.67301883023041847920; x[ 75] = -0.66290966002478059546; x[ 76] = -0.65266166541001749610; x[ 77] = -0.64227664250975951377; x[ 78] = -0.63175643771119423041; x[ 79] = -0.62110294673722640294; x[ 80] = -0.61031811371518640016; x[ 81] = -0.59940393024224289297; x[ 82] = -0.58836243444766254143; x[ 83] = -0.57719571005204581484; x[ 84] = -0.56590588542365442262; x[ 85] = -0.55449513263193254887; x[ 86] = -0.54296566649831149049; x[ 87] = -0.53131974364437562397; x[ 88] = -0.51955966153745702199; x[ 89] = -0.50768775753371660215; x[ 90] = -0.49570640791876146017; x[ 91] = -0.48361802694584102756; x[ 92] = -0.47142506587165887693; x[ 93] = -0.45913001198983233287; x[ 94] = -0.44673538766202847374; x[ 95] = -0.43424374934680255800; x[ 96] = -0.42165768662616330006; x[ 97] = -0.40897982122988867241; x[ 98] = -0.39621280605761593918; x[ 99] = -0.38335932419873034692; x[100] = -0.37042208795007823014; x[101] = -0.35740383783153215238; x[102] = -0.34430734159943802278; x[103] = -0.33113539325797683309; x[104] = -0.31789081206847668318; x[105] = -0.30457644155671404334; x[106] = -0.29119514851824668196; x[107] = -0.27774982202182431507; x[108] = -0.26424337241092676194; x[109] = -0.25067873030348317661; x[110] = -0.23705884558982972721; x[111] = -0.22338668642896688163; x[112] = -0.20966523824318119477; x[113] = -0.19589750271110015392; x[114] = -0.18208649675925219825; x[115] = -0.16823525155220746498; x[116] = -0.15434681148137810869; x[117] = -0.14042423315256017459; x[118] = -0.12647058437230196685; x[119] = -0.11248894313318662575; x[120] = -0.098482396598119202090; x[121] = -0.084454040083710883710; x[122] = -0.070406976042855179063; x[123] = -0.056344313046592789972; x[124] = -0.042269164765363603212; x[125] = -0.028184648949745694339; x[126] = -0.014093886410782462614; x[127] = 0.0; x[128] = 0.014093886410782462614; x[129] = 0.028184648949745694339; x[130] = 0.042269164765363603212; x[131] = 0.056344313046592789972; x[132] = 0.070406976042855179063; x[133] = 0.084454040083710883710; x[134] = 0.098482396598119202090; x[135] = 0.11248894313318662575; x[136] = 0.12647058437230196685; x[137] = 0.14042423315256017459; x[138] = 0.15434681148137810869; x[139] = 0.16823525155220746498; x[140] = 0.18208649675925219825; x[141] = 0.19589750271110015392; x[142] = 0.20966523824318119477; x[143] = 0.22338668642896688163; x[144] = 0.23705884558982972721; x[145] = 0.25067873030348317661; x[146] = 0.26424337241092676194; x[147] = 0.27774982202182431507; x[148] = 0.29119514851824668196; x[149] = 0.30457644155671404334; x[150] = 0.31789081206847668318; x[151] = 0.33113539325797683309; x[152] = 0.34430734159943802278; x[153] = 0.35740383783153215238; x[154] = 0.37042208795007823014; x[155] = 0.38335932419873034692; x[156] = 0.39621280605761593918; x[157] = 0.40897982122988867241; x[158] = 0.42165768662616330006; x[159] = 0.43424374934680255800; x[160] = 0.44673538766202847374; x[161] = 0.45913001198983233287; x[162] = 0.47142506587165887693; x[163] = 0.48361802694584102756; x[164] = 0.49570640791876146017; x[165] = 0.50768775753371660215; x[166] = 0.51955966153745702199; x[167] = 0.53131974364437562397; x[168] = 0.54296566649831149049; x[169] = 0.55449513263193254887; x[170] = 0.56590588542365442262; x[171] = 0.57719571005204581484; x[172] = 0.58836243444766254143; x[173] = 0.59940393024224289297; x[174] = 0.61031811371518640016; x[175] = 0.62110294673722640294; x[176] = 0.63175643771119423041; x[177] = 0.64227664250975951377; x[178] = 0.65266166541001749610; x[179] = 0.66290966002478059546; x[180] = 0.67301883023041847920; x[181] = 0.68298743109107922809; x[182] = 0.69281376977911470289; x[183] = 0.70249620649152707861; x[184] = 0.71203315536225203459; x[185] = 0.72142308537009891548; x[186] = 0.73066452124218126133; x[187] = 0.73975604435269475868; x[188] = 0.74869629361693660282; x[189] = 0.75748396638051363793; x[190] = 0.76611781930376009072; x[191] = 0.77459666924148337704; x[192] = 0.78291939411828301639; x[193] = 0.79108493379984836143; x[194] = 0.79909229096084140180; x[195] = 0.80694053195021761186; x[196] = 0.81462878765513741344; x[197] = 0.82215625436498040737; x[198] = 0.82952219463740140018; x[199] = 0.83672593816886873550; x[200] = 0.84376688267270860104; x[201] = 0.85064449476835027976; x[202] = 0.85735831088623215653; x[203] = 0.86390793819369047715; x[204] = 0.87029305554811390585; x[205] = 0.87651341448470526974; x[206] = 0.88256884024734190684; x[207] = 0.88845923287225699889; x[208] = 0.89418456833555902286; x[209] = 0.89974489977694003664; x[210] = 0.90514035881326159519; x[211] = 0.91037115695700429250; x[212] = 0.91543758715576504064; x[213] = 0.92034002547001242073; x[214] = 0.92507893290707565236; x[215] = 0.92965485742974005667; x[216] = 0.93406843615772578800; x[217] = 0.93832039777959288365; x[218] = 0.94241156519108305981; x[219] = 0.94634285837340290515; x[220] = 0.95011529752129487656; x[221] = 0.95373000642576113641; x[222] = 0.95718821610986096274; x[223] = 0.96049126870802028342; x[224] = 0.96364062156981213252; x[225] = 0.96663785155841656709; x[226] = 0.96948465950245923177; x[227] = 0.97218287474858179658; x[228] = 0.97473445975240266776; x[229] = 0.97714151463970571416; x[230] = 0.97940628167086268381; x[231] = 0.98153114955374010687; x[232] = 0.98351865757863272876; x[233] = 0.98537149959852037111; x[234] = 0.98709252795403406719; x[235] = 0.98868475754742947994; x[236] = 0.99015137040077015918; x[237] = 0.99149572117810613240; x[238] = 0.99272134428278861533; x[239] = 0.99383196321275502221; x[240] = 0.99483150280062100052; x[241] = 0.99572410469840718851; x[242] = 0.99651414591489027385; x[243] = 0.99720625937222195908; x[244] = 0.99780535449595727456; x[245] = 0.99831663531840739253; x[246] = 0.99874561446809511470; x[247] = 0.99909812496766759766; x[248] = 0.99938033802502358193; x[249] = 0.99959879967191068325; x[250] = 0.99976049092443204733; x[251] = 0.99987288812035761194; x[252] = 0.99994399620705437576; x[253] = 0.99998243035489159858; x[254] = 0.99999759637974846462; w[ 0] = 0.69379364324108267170E-05; w[ 1] = 0.25157870384280661489E-04; w[ 2] = 0.53275293669780613125E-04; w[ 3] = 0.90372734658751149261E-04; w[ 4] = 0.13575491094922871973E-03; w[ 5] = 0.18887326450650491366E-03; w[ 6] = 0.24921240048299729402E-03; w[ 7] = 0.31630366082226447689E-03; w[ 8] = 0.38974528447328229322E-03; w[ 9] = 0.46918492424785040975E-03; w[ 10] = 0.55429531493037471492E-03; w[ 11] = 0.64476204130572477933E-03; w[ 12] = 0.74028280424450333046E-03; w[ 13] = 0.84057143271072246365E-03; w[ 14] = 0.94536151685852538246E-03; w[ 15] = 0.10544076228633167722E-02; w[ 16] = 0.11674841174299594077E-02; w[ 17] = 0.12843824718970101768E-02; w[ 18] = 0.14049079956551446427E-02; w[ 19] = 0.15288767050877655684E-02; w[ 20] = 0.16561127281544526052E-02; w[ 21] = 0.17864463917586498247E-02; w[ 22] = 0.19197129710138724125E-02; w[ 23] = 0.20557519893273465236E-02; w[ 24] = 0.21944069253638388388E-02; w[ 25] = 0.23355251860571608737E-02; w[ 26] = 0.24789582266575679307E-02; w[ 27] = 0.26245617274044295626E-02; w[ 28] = 0.27721957645934509940E-02; w[ 29] = 0.29217249379178197538E-02; w[ 30] = 0.30730184347025783234E-02; w[ 31] = 0.32259500250878684614E-02; w[ 32] = 0.33803979910869203823E-02; w[ 33] = 0.35362449977167777340E-02; w[ 34] = 0.36933779170256508183E-02; w[ 35] = 0.38516876166398709241E-02; w[ 36] = 0.40110687240750233989E-02; w[ 37] = 0.41714193769840788528E-02; w[ 38] = 0.43326409680929828545E-02; w[ 39] = 0.44946378920320678616E-02; w[ 40] = 0.46573172997568547773E-02; w[ 41] = 0.48205888648512683476E-02; w[ 42] = 0.49843645647655386012E-02; w[ 43] = 0.51485584789781777618E-02; w[ 44] = 0.53130866051870565663E-02; w[ 45] = 0.54778666939189508240E-02; w[ 46] = 0.56428181013844441585E-02; w[ 47] = 0.58078616599775673635E-02; w[ 48] = 0.59729195655081658049E-02; w[ 49] = 0.61379152800413850435E-02; w[ 50] = 0.63027734490857587172E-02; w[ 51] = 0.64674198318036867274E-02; w[ 52] = 0.66317812429018878941E-02; w[ 53] = 0.67957855048827733948E-02; w[ 54] = 0.69593614093904229394E-02; w[ 55] = 0.71224386864583871532E-02; w[ 56] = 0.72849479805538070639E-02; w[ 57] = 0.74468208324075910174E-02; w[ 58] = 0.76079896657190565832E-02; w[ 59] = 0.77683877779219912200E-02; w[ 60] = 0.79279493342948491103E-02; w[ 61] = 0.80866093647888599710E-02; w[ 62] = 0.82443037630328680306E-02; w[ 63] = 0.84009692870519326354E-02; w[ 64] = 0.85565435613076896192E-02; w[ 65] = 0.87109650797320868736E-02; w[ 66] = 0.88641732094824942641E-02; w[ 67] = 0.90161081951956431600E-02; w[ 68] = 0.91667111635607884067E-02; w[ 69] = 0.93159241280693950932E-02; w[ 70] = 0.94636899938300652943E-02; w[ 71] = 0.96099525623638830097E-02; w[ 72] = 0.97546565363174114611E-02; w[ 73] = 0.98977475240487497440E-02; w[ 74] = 0.10039172044056840798E-01; w[ 75] = 0.10178877529236079733E-01; w[ 76] = 0.10316812330947621682E-01; w[ 77] = 0.10452925722906011926E-01; w[ 78] = 0.10587167904885197931E-01; w[ 79] = 0.10719490006251933623E-01; w[ 80] = 0.10849844089337314099E-01; w[ 81] = 0.10978183152658912470E-01; w[ 82] = 0.11104461134006926537E-01; w[ 83] = 0.11228632913408049354E-01; w[ 84] = 0.11350654315980596602E-01; w[ 85] = 0.11470482114693874380E-01; w[ 86] = 0.11588074033043952568E-01; w[ 87] = 0.11703388747657003101E-01; w[ 88] = 0.11816385890830235763E-01; w[ 89] = 0.11927026053019270040E-01; w[ 90] = 0.12035270785279562630E-01; w[ 91] = 0.12141082601668299679E-01; w[ 92] = 0.12244424981611985899E-01; w[ 93] = 0.12345262372243838455E-01; w[ 94] = 0.12443560190714035263E-01; w[ 95] = 0.12539284826474884353E-01; w[ 96] = 0.12632403643542078765E-01; w[ 97] = 0.12722884982732382906E-01; w[ 98] = 0.12810698163877361967E-01; w[ 99] = 0.12895813488012114694E-01; w[100] = 0.12978202239537399286E-01; w[101] = 0.13057836688353048840E-01; w[102] = 0.13134690091960152836E-01; w[103] = 0.13208736697529129966E-01; w[104] = 0.13279951743930530650E-01; w[105] = 0.13348311463725179953E-01; w[106] = 0.13413793085110098513E-01; w[107] = 0.13476374833816515982E-01; w[108] = 0.13536035934956213614E-01; w[109] = 0.13592756614812395910E-01; w[110] = 0.13646518102571291428E-01; w[111] = 0.13697302631990716258E-01; w[112] = 0.13745093443001896632E-01; w[113] = 0.13789874783240936517E-01; w[114] = 0.13831631909506428676E-01; w[115] = 0.13870351089139840997E-01; w[116] = 0.13906019601325461264E-01; w[117] = 0.13938625738306850804E-01; w[118] = 0.13968158806516938516E-01; w[119] = 0.13994609127619079852E-01; w[120] = 0.14017968039456608810E-01; w[121] = 0.14038227896908623303E-01; w[122] = 0.14055382072649964277E-01; w[123] = 0.14069424957813575318E-01; w[124] = 0.14080351962553661325E-01; w[125] = 0.14088159516508301065E-01; w[126] = 0.14092845069160408355E-01; w[127] = 0.14094407090096179347E-01; w[128] = 0.14092845069160408355E-01; w[129] = 0.14088159516508301065E-01; w[130] = 0.14080351962553661325E-01; w[131] = 0.14069424957813575318E-01; w[132] = 0.14055382072649964277E-01; w[133] = 0.14038227896908623303E-01; w[134] = 0.14017968039456608810E-01; w[135] = 0.13994609127619079852E-01; w[136] = 0.13968158806516938516E-01; w[137] = 0.13938625738306850804E-01; w[138] = 0.13906019601325461264E-01; w[139] = 0.13870351089139840997E-01; w[140] = 0.13831631909506428676E-01; w[141] = 0.13789874783240936517E-01; w[142] = 0.13745093443001896632E-01; w[143] = 0.13697302631990716258E-01; w[144] = 0.13646518102571291428E-01; w[145] = 0.13592756614812395910E-01; w[146] = 0.13536035934956213614E-01; w[147] = 0.13476374833816515982E-01; w[148] = 0.13413793085110098513E-01; w[149] = 0.13348311463725179953E-01; w[150] = 0.13279951743930530650E-01; w[151] = 0.13208736697529129966E-01; w[152] = 0.13134690091960152836E-01; w[153] = 0.13057836688353048840E-01; w[154] = 0.12978202239537399286E-01; w[155] = 0.12895813488012114694E-01; w[156] = 0.12810698163877361967E-01; w[157] = 0.12722884982732382906E-01; w[158] = 0.12632403643542078765E-01; w[159] = 0.12539284826474884353E-01; w[160] = 0.12443560190714035263E-01; w[161] = 0.12345262372243838455E-01; w[162] = 0.12244424981611985899E-01; w[163] = 0.12141082601668299679E-01; w[164] = 0.12035270785279562630E-01; w[165] = 0.11927026053019270040E-01; w[166] = 0.11816385890830235763E-01; w[167] = 0.11703388747657003101E-01; w[168] = 0.11588074033043952568E-01; w[169] = 0.11470482114693874380E-01; w[170] = 0.11350654315980596602E-01; w[171] = 0.11228632913408049354E-01; w[172] = 0.11104461134006926537E-01; w[173] = 0.10978183152658912470E-01; w[174] = 0.10849844089337314099E-01; w[175] = 0.10719490006251933623E-01; w[176] = 0.10587167904885197931E-01; w[177] = 0.10452925722906011926E-01; w[178] = 0.10316812330947621682E-01; w[179] = 0.10178877529236079733E-01; w[180] = 0.10039172044056840798E-01; w[181] = 0.98977475240487497440E-02; w[182] = 0.97546565363174114611E-02; w[183] = 0.96099525623638830097E-02; w[184] = 0.94636899938300652943E-02; w[185] = 0.93159241280693950932E-02; w[186] = 0.91667111635607884067E-02; w[187] = 0.90161081951956431600E-02; w[188] = 0.88641732094824942641E-02; w[189] = 0.87109650797320868736E-02; w[190] = 0.85565435613076896192E-02; w[191] = 0.84009692870519326354E-02; w[192] = 0.82443037630328680306E-02; w[193] = 0.80866093647888599710E-02; w[194] = 0.79279493342948491103E-02; w[195] = 0.77683877779219912200E-02; w[196] = 0.76079896657190565832E-02; w[197] = 0.74468208324075910174E-02; w[198] = 0.72849479805538070639E-02; w[199] = 0.71224386864583871532E-02; w[200] = 0.69593614093904229394E-02; w[201] = 0.67957855048827733948E-02; w[202] = 0.66317812429018878941E-02; w[203] = 0.64674198318036867274E-02; w[204] = 0.63027734490857587172E-02; w[205] = 0.61379152800413850435E-02; w[206] = 0.59729195655081658049E-02; w[207] = 0.58078616599775673635E-02; w[208] = 0.56428181013844441585E-02; w[209] = 0.54778666939189508240E-02; w[210] = 0.53130866051870565663E-02; w[211] = 0.51485584789781777618E-02; w[212] = 0.49843645647655386012E-02; w[213] = 0.48205888648512683476E-02; w[214] = 0.46573172997568547773E-02; w[215] = 0.44946378920320678616E-02; w[216] = 0.43326409680929828545E-02; w[217] = 0.41714193769840788528E-02; w[218] = 0.40110687240750233989E-02; w[219] = 0.38516876166398709241E-02; w[220] = 0.36933779170256508183E-02; w[221] = 0.35362449977167777340E-02; w[222] = 0.33803979910869203823E-02; w[223] = 0.32259500250878684614E-02; w[224] = 0.30730184347025783234E-02; w[225] = 0.29217249379178197538E-02; w[226] = 0.27721957645934509940E-02; w[227] = 0.26245617274044295626E-02; w[228] = 0.24789582266575679307E-02; w[229] = 0.23355251860571608737E-02; w[230] = 0.21944069253638388388E-02; w[231] = 0.20557519893273465236E-02; w[232] = 0.19197129710138724125E-02; w[233] = 0.17864463917586498247E-02; w[234] = 0.16561127281544526052E-02; w[235] = 0.15288767050877655684E-02; w[236] = 0.14049079956551446427E-02; w[237] = 0.12843824718970101768E-02; w[238] = 0.11674841174299594077E-02; w[239] = 0.10544076228633167722E-02; w[240] = 0.94536151685852538246E-03; w[241] = 0.84057143271072246365E-03; w[242] = 0.74028280424450333046E-03; w[243] = 0.64476204130572477933E-03; w[244] = 0.55429531493037471492E-03; w[245] = 0.46918492424785040975E-03; w[246] = 0.38974528447328229322E-03; w[247] = 0.31630366082226447689E-03; w[248] = 0.24921240048299729402E-03; w[249] = 0.18887326450650491366E-03; w[250] = 0.13575491094922871973E-03; w[251] = 0.90372734658751149261E-04; w[252] = 0.53275293669780613125E-04; w[253] = 0.25157870384280661489E-04; w[254] = 0.69379364324108267170E-05; } else if ( n == 511 ) { x[ 0] = -0.999999672956734384381; x[ 1] = -0.999997596379748464620; x[ 2] = -0.999992298136257588028; x[ 3] = -0.999982430354891598580; x[ 4] = -0.999966730098486276883; x[ 5] = -0.999943996207054375764; x[ 6] = -0.999913081144678282800; x[ 7] = -0.999872888120357611938; x[ 8] = -0.999822363679787739196; x[ 9] = -0.999760490924432047330; x[ 10] = -0.999686286448317731776; x[ 11] = -0.999598799671910683252; x[ 12] = -0.999497112467187190535; x[ 13] = -0.999380338025023581928; x[ 14] = -0.999247618943342473599; x[ 15] = -0.999098124967667597662; x[ 16] = -0.998931050830810562236; x[ 17] = -0.998745614468095114704; x[ 18] = -0.998541055697167906027; x[ 19] = -0.998316635318407392531; x[ 20] = -0.998071634524930323302; x[ 21] = -0.997805354495957274562; x[ 22] = -0.997517116063472399965; x[ 23] = -0.997206259372221959076; x[ 24] = -0.996872143485260161299; x[ 25] = -0.996514145914890273849; x[ 26] = -0.996131662079315037786; x[ 27] = -0.995724104698407188509; x[ 28] = -0.995290903148810302261; x[ 29] = -0.994831502800621000519; x[ 30] = -0.994345364356723405931; x[ 31] = -0.993831963212755022209; x[ 32] = -0.993290788851684966211; x[ 33] = -0.992721344282788615328; x[ 34] = -0.992123145530863117683; x[ 35] = -0.991495721178106132399; x[ 36] = -0.990838611958294243677; x[ 37] = -0.990151370400770159181; x[ 38] = -0.989433560520240838716; x[ 39] = -0.988684757547429479939; x[ 40] = -0.987904547695124280467; x[ 41] = -0.987092527954034067190; x[ 42] = -0.986248305913007552681; x[ 43] = -0.985371499598520371114; x[ 44] = -0.984461737328814534596; x[ 45] = -0.983518657578632728762; x[ 46] = -0.982541908851080604251; x[ 47] = -0.981531149553740106867; x[ 48] = -0.980486047876721339416; x[ 49] = -0.979406281670862683806; x[ 50] = -0.978291538324758539526; x[ 51] = -0.977141514639705714156; x[ 52] = -0.975955916702011753129; x[ 53] = -0.974734459752402667761; x[ 54] = -0.973476868052506926773; x[ 55] = -0.972182874748581796578; x[ 56] = -0.970852221732792443256; x[ 57] = -0.969484659502459231771; x[ 58] = -0.968079947017759947964; x[ 59] = -0.966637851558416567092; x[ 60] = -0.965158148579915665979; x[ 61] = -0.963640621569812132521; x[ 62] = -0.962085061904651475741; x[ 63] = -0.960491268708020283423; x[ 64] = -0.958859048710200221356; x[ 65] = -0.957188216109860962736; x[ 66] = -0.955478592438183697574; x[ 67] = -0.953730006425761136415; x[ 68] = -0.951942293872573589498; x[ 69] = -0.950115297521294876558; x[ 70] = -0.948248866934137357063; x[ 71] = -0.946342858373402905148; x[ 72] = -0.944397134685866648591; x[ 73] = -0.942411565191083059813; x[ 74] = -0.940386025573669721370; x[ 75] = -0.938320397779592883655; x[ 76] = -0.936214569916450806625; x[ 77] = -0.934068436157725787999; x[ 78] = -0.931881896650953639345; x[ 79] = -0.929654857429740056670; x[ 80] = -0.927387230329536696843; x[ 81] = -0.925078932907075652364; x[ 82] = -0.922729888363349241523; x[ 83] = -0.920340025470012420730; x[ 84] = -0.917909278499077501636; x[ 85] = -0.915437587155765040644; x[ 86] = -0.912924896514370590080; x[ 87] = -0.910371156957004292498; x[ 88] = -0.907776324115058903624; x[ 89] = -0.905140358813261595189; x[ 90] = -0.902463227016165675048; x[ 91] = -0.899744899776940036639; x[ 92] = -0.896985353188316590376; x[ 93] = -0.894184568335559022859; x[ 94] = -0.891342531251319871666; x[ 95] = -0.888459232872256998890; x[ 96] = -0.885534668997285008926; x[ 97] = -0.882568840247341906842; x[ 98] = -0.879561752026556262568; x[ 99] = -0.876513414484705269742; x[100] = -0.873423842480859310192; x[101] = -0.870293055548113905851; x[102] = -0.867121077859315215614; x[103] = -0.863907938193690477146; x[104] = -0.860653669904299969802; x[105] = -0.857358310886232156525; x[106] = -0.854021903545468625813; x[107] = -0.850644494768350279758; x[108] = -0.847226135891580884381; x[109] = -0.843766882672708601038; x[110] = -0.840266795261030442350; x[111] = -0.836725938168868735503; x[112] = -0.833144380243172624728; x[113] = -0.829522194637401400178; x[114] = -0.825859458783650001088; x[115] = -0.822156254364980407373; x[116] = -0.818412667287925807395; x[117] = -0.814628787655137413436; x[118] = -0.810804709738146594361; x[119] = -0.806940531950217611856; x[120] = -0.803036356819268687782; x[121] = -0.799092290960841401800; x[122] = -0.795108445051100526780; x[123] = -0.791084933799848361435; x[124] = -0.787021875923539422170; x[125] = -0.782919394118283016385; x[126] = -0.778777615032822744702; x[127] = -0.774596669241483377036; x[128] = -0.770376691217076824278; x[129] = -0.766117819303760090717; x[130] = -0.761820195689839149173; x[131] = -0.757483966380513637926; x[132] = -0.753109281170558142523; x[133] = -0.748696293616936602823; x[134] = -0.744245161011347082309; x[135] = -0.739756044352694758677; x[136] = -0.735229108319491547663; x[137] = -0.730664521242181261329; x[138] = -0.726062455075389632685; x[139] = -0.721423085370098915485; x[140] = -0.716746591245747095767; x[141] = -0.712033155362252034587; x[142] = -0.707282963891961103412; x[143] = -0.702496206491527078610; x[144] = -0.697673076273711232906; x[145] = -0.692813769779114702895; x[146] = -0.687918486947839325756; x[147] = -0.682987431091079228087; x[148] = -0.678020808862644517838; x[149] = -0.673018830230418479199; x[150] = -0.667981708447749702165; x[151] = -0.662909660024780595461; x[152] = -0.657802904699713735422; x[153] = -0.652661665410017496101; x[154] = -0.647486168263572388782; x[155] = -0.642276642509759513774; x[156] = -0.637033320510492495071; x[157] = -0.631756437711194230414; x[158] = -0.626446232611719746542; x[159] = -0.621102946737226402941; x[160] = -0.615726824608992638014; x[161] = -0.610318113715186400156; x[162] = -0.604877064481584353319; x[163] = -0.599403930242242892974; x[164] = -0.593898967210121954393; x[165] = -0.588362434447662541434; x[166] = -0.582794593837318850840; x[167] = -0.577195710052045814844; x[168] = -0.571566050525742833992; x[169] = -0.565905885423654422623; x[170] = -0.560215487612728441818; x[171] = -0.554495132631932548866; x[172] = -0.548745098662529448608; x[173] = -0.542965666498311490492; x[174] = -0.537157119515795115982; x[175] = -0.531319743644375623972; x[176] = -0.525453827336442687395; x[177] = -0.519559661537457021993; x[178] = -0.513637539655988578507; x[179] = -0.507687757533716602155; x[180] = -0.501710613415391878251; x[181] = -0.495706407918761460170; x[182] = -0.489675444004456155436; x[183] = -0.483618026945841027562; x[184] = -0.477534464298829155284; x[185] = -0.471425065871658876934; x[186] = -0.465290143694634735858; x[187] = -0.459130011989832332874; x[188] = -0.452944987140767283784; x[189] = -0.446735387662028473742; x[190] = -0.440501534168875795783; x[191] = -0.434243749346802558002; x[192] = -0.427962357921062742583; x[193] = -0.421657686626163300056; x[194] = -0.415330064175321663764; x[195] = -0.408979821229888672409; x[196] = -0.402607290368737092671; x[197] = -0.396212806057615939183; x[198] = -0.389796704618470795479; x[199] = -0.383359324198730346916; x[200] = -0.376901004740559344802; x[201] = -0.370422087950078230138; x[202] = -0.363922917266549655269; x[203] = -0.357403837831532152376; x[204] = -0.350865196458001209011; x[205] = -0.344307341599438022777; x[206] = -0.337730623318886219621; x[207] = -0.331135393257976833093; x[208] = -0.324522004605921855207; x[209] = -0.317890812068476683182; x[210] = -0.311242171836871800300; x[211] = -0.304576441556714043335; x[212] = -0.297893980296857823437; x[213] = -0.291195148518246681964; x[214] = -0.284480308042725577496; x[215] = -0.277749822021824315065; x[216] = -0.271004054905512543536; x[217] = -0.264243372410926761945; x[218] = -0.257468141491069790481; x[219] = -0.250678730303483176613; x[220] = -0.243875508178893021593; x[221] = -0.237058845589829727213; x[222] = -0.230229114119222177156; x[223] = -0.223386686428966881628; x[224] = -0.216531936228472628081; x[225] = -0.209665238243181194766; x[226] = -0.202786968183064697557; x[227] = -0.195897502711100153915; x[228] = -0.188997219411721861059; x[229] = -0.182086496759252198246; x[230] = -0.175165714086311475707; x[231] = -0.168235251552207464982; x[232] = -0.161295490111305257361; x[233] = -0.154346811481378108692; x[234] = -0.147389598111939940054; x[235] = -0.140424233152560174594; x[236] = -0.133451100421161601344; x[237] = -0.126470584372301966851; x[238] = -0.119483070065440005133; x[239] = -0.112488943133186625746; x[240] = -0.105488589749541988533; x[241] = -0.984823965981192020903E-01; x[242] = -0.914707508403553909095E-01; x[243] = -0.844540400837108837102E-01; x[244] = -0.774326523498572825675E-01; x[245] = -0.704069760428551790633E-01; x[246] = -0.633773999173222898797E-01; x[247] = -0.563443130465927899720E-01; x[248] = -0.493081047908686267156E-01; x[249] = -0.422691647653636032124E-01; x[250] = -0.352278828084410232603E-01; x[251] = -0.281846489497456943394E-01; x[252] = -0.211398533783310883350E-01; x[253] = -0.140938864107824626142E-01; x[254] = -0.704713845933674648514E-02; x[255] = +0.000000000000000000000; x[256] = +0.704713845933674648514E-02; x[257] = +0.140938864107824626142E-01; x[258] = +0.211398533783310883350E-01; x[259] = +0.281846489497456943394E-01; x[260] = +0.352278828084410232603E-01; x[261] = +0.422691647653636032124E-01; x[262] = +0.493081047908686267156E-01; x[263] = +0.563443130465927899720E-01; x[264] = +0.633773999173222898797E-01; x[265] = +0.704069760428551790633E-01; x[266] = +0.774326523498572825675E-01; x[267] = +0.844540400837108837102E-01; x[268] = +0.914707508403553909095E-01; x[269] = +0.984823965981192020903E-01; x[270] = +0.105488589749541988533; x[271] = +0.112488943133186625746; x[272] = +0.119483070065440005133; x[273] = +0.126470584372301966851; x[274] = +0.133451100421161601344; x[275] = +0.140424233152560174594; x[276] = +0.147389598111939940054; x[277] = +0.154346811481378108692; x[278] = +0.161295490111305257361; x[279] = +0.168235251552207464982; x[280] = +0.175165714086311475707; x[281] = +0.182086496759252198246; x[282] = +0.188997219411721861059; x[283] = +0.195897502711100153915; x[284] = +0.202786968183064697557; x[285] = +0.209665238243181194766; x[286] = +0.216531936228472628081; x[287] = +0.223386686428966881628; x[288] = +0.230229114119222177156; x[289] = +0.237058845589829727213; x[290] = +0.243875508178893021593; x[291] = +0.250678730303483176613; x[292] = +0.257468141491069790481; x[293] = +0.264243372410926761945; x[294] = +0.271004054905512543536; x[295] = +0.277749822021824315065; x[296] = +0.284480308042725577496; x[297] = +0.291195148518246681964; x[298] = +0.297893980296857823437; x[299] = +0.304576441556714043335; x[300] = +0.311242171836871800300; x[301] = +0.317890812068476683182; x[302] = +0.324522004605921855207; x[303] = +0.331135393257976833093; x[304] = +0.337730623318886219621; x[305] = +0.344307341599438022777; x[306] = +0.350865196458001209011; x[307] = +0.357403837831532152376; x[308] = +0.363922917266549655269; x[309] = +0.370422087950078230138; x[310] = +0.376901004740559344802; x[311] = +0.383359324198730346916; x[312] = +0.389796704618470795479; x[313] = +0.396212806057615939183; x[314] = +0.402607290368737092671; x[315] = +0.408979821229888672409; x[316] = +0.415330064175321663764; x[317] = +0.421657686626163300056; x[318] = +0.427962357921062742583; x[319] = +0.434243749346802558002; x[320] = +0.440501534168875795783; x[321] = +0.446735387662028473742; x[322] = +0.452944987140767283784; x[323] = +0.459130011989832332874; x[324] = +0.465290143694634735858; x[325] = +0.471425065871658876934; x[326] = +0.477534464298829155284; x[327] = +0.483618026945841027562; x[328] = +0.489675444004456155436; x[329] = +0.495706407918761460170; x[330] = +0.501710613415391878251; x[331] = +0.507687757533716602155; x[332] = +0.513637539655988578507; x[333] = +0.519559661537457021993; x[334] = +0.525453827336442687395; x[335] = +0.531319743644375623972; x[336] = +0.537157119515795115982; x[337] = +0.542965666498311490492; x[338] = +0.548745098662529448608; x[339] = +0.554495132631932548866; x[340] = +0.560215487612728441818; x[341] = +0.565905885423654422623; x[342] = +0.571566050525742833992; x[343] = +0.577195710052045814844; x[344] = +0.582794593837318850840; x[345] = +0.588362434447662541434; x[346] = +0.593898967210121954393; x[347] = +0.599403930242242892974; x[348] = +0.604877064481584353319; x[349] = +0.610318113715186400156; x[350] = +0.615726824608992638014; x[351] = +0.621102946737226402941; x[352] = +0.626446232611719746542; x[353] = +0.631756437711194230414; x[354] = +0.637033320510492495071; x[355] = +0.642276642509759513774; x[356] = +0.647486168263572388782; x[357] = +0.652661665410017496101; x[358] = +0.657802904699713735422; x[359] = +0.662909660024780595461; x[360] = +0.667981708447749702165; x[361] = +0.673018830230418479199; x[362] = +0.678020808862644517838; x[363] = +0.682987431091079228087; x[364] = +0.687918486947839325756; x[365] = +0.692813769779114702895; x[366] = +0.697673076273711232906; x[367] = +0.702496206491527078610; x[368] = +0.707282963891961103412; x[369] = +0.712033155362252034587; x[370] = +0.716746591245747095767; x[371] = +0.721423085370098915485; x[372] = +0.726062455075389632685; x[373] = +0.730664521242181261329; x[374] = +0.735229108319491547663; x[375] = +0.739756044352694758677; x[376] = +0.744245161011347082309; x[377] = +0.748696293616936602823; x[378] = +0.753109281170558142523; x[379] = +0.757483966380513637926; x[380] = +0.761820195689839149173; x[381] = +0.766117819303760090717; x[382] = +0.770376691217076824278; x[383] = +0.774596669241483377036; x[384] = +0.778777615032822744702; x[385] = +0.782919394118283016385; x[386] = +0.787021875923539422170; x[387] = +0.791084933799848361435; x[388] = +0.795108445051100526780; x[389] = +0.799092290960841401800; x[390] = +0.803036356819268687782; x[391] = +0.806940531950217611856; x[392] = +0.810804709738146594361; x[393] = +0.814628787655137413436; x[394] = +0.818412667287925807395; x[395] = +0.822156254364980407373; x[396] = +0.825859458783650001088; x[397] = +0.829522194637401400178; x[398] = +0.833144380243172624728; x[399] = +0.836725938168868735503; x[400] = +0.840266795261030442350; x[401] = +0.843766882672708601038; x[402] = +0.847226135891580884381; x[403] = +0.850644494768350279758; x[404] = +0.854021903545468625813; x[405] = +0.857358310886232156525; x[406] = +0.860653669904299969802; x[407] = +0.863907938193690477146; x[408] = +0.867121077859315215614; x[409] = +0.870293055548113905851; x[410] = +0.873423842480859310192; x[411] = +0.876513414484705269742; x[412] = +0.879561752026556262568; x[413] = +0.882568840247341906842; x[414] = +0.885534668997285008926; x[415] = +0.888459232872256998890; x[416] = +0.891342531251319871666; x[417] = +0.894184568335559022859; x[418] = +0.896985353188316590376; x[419] = +0.899744899776940036639; x[420] = +0.902463227016165675048; x[421] = +0.905140358813261595189; x[422] = +0.907776324115058903624; x[423] = +0.910371156957004292498; x[424] = +0.912924896514370590080; x[425] = +0.915437587155765040644; x[426] = +0.917909278499077501636; x[427] = +0.920340025470012420730; x[428] = +0.922729888363349241523; x[429] = +0.925078932907075652364; x[430] = +0.927387230329536696843; x[431] = +0.929654857429740056670; x[432] = +0.931881896650953639345; x[433] = +0.934068436157725787999; x[434] = +0.936214569916450806625; x[435] = +0.938320397779592883655; x[436] = +0.940386025573669721370; x[437] = +0.942411565191083059813; x[438] = +0.944397134685866648591; x[439] = +0.946342858373402905148; x[440] = +0.948248866934137357063; x[441] = +0.950115297521294876558; x[442] = +0.951942293872573589498; x[443] = +0.953730006425761136415; x[444] = +0.955478592438183697574; x[445] = +0.957188216109860962736; x[446] = +0.958859048710200221356; x[447] = +0.960491268708020283423; x[448] = +0.962085061904651475741; x[449] = +0.963640621569812132521; x[450] = +0.965158148579915665979; x[451] = +0.966637851558416567092; x[452] = +0.968079947017759947964; x[453] = +0.969484659502459231771; x[454] = +0.970852221732792443256; x[455] = +0.972182874748581796578; x[456] = +0.973476868052506926773; x[457] = +0.974734459752402667761; x[458] = +0.975955916702011753129; x[459] = +0.977141514639705714156; x[460] = +0.978291538324758539526; x[461] = +0.979406281670862683806; x[462] = +0.980486047876721339416; x[463] = +0.981531149553740106867; x[464] = +0.982541908851080604251; x[465] = +0.983518657578632728762; x[466] = +0.984461737328814534596; x[467] = +0.985371499598520371114; x[468] = +0.986248305913007552681; x[469] = +0.987092527954034067190; x[470] = +0.987904547695124280467; x[471] = +0.988684757547429479939; x[472] = +0.989433560520240838716; x[473] = +0.990151370400770159181; x[474] = +0.990838611958294243677; x[475] = +0.991495721178106132399; x[476] = +0.992123145530863117683; x[477] = +0.992721344282788615328; x[478] = +0.993290788851684966211; x[479] = +0.993831963212755022209; x[480] = +0.994345364356723405931; x[481] = +0.994831502800621000519; x[482] = +0.995290903148810302261; x[483] = +0.995724104698407188509; x[484] = +0.996131662079315037786; x[485] = +0.996514145914890273849; x[486] = +0.996872143485260161299; x[487] = +0.997206259372221959076; x[488] = +0.997517116063472399965; x[489] = +0.997805354495957274562; x[490] = +0.998071634524930323302; x[491] = +0.998316635318407392531; x[492] = +0.998541055697167906027; x[493] = +0.998745614468095114704; x[494] = +0.998931050830810562236; x[495] = +0.999098124967667597662; x[496] = +0.999247618943342473599; x[497] = +0.999380338025023581928; x[498] = +0.999497112467187190535; x[499] = +0.999598799671910683252; x[500] = +0.999686286448317731776; x[501] = +0.999760490924432047330; x[502] = +0.999822363679787739196; x[503] = +0.999872888120357611938; x[504] = +0.999913081144678282800; x[505] = +0.999943996207054375764; x[506] = +0.999966730098486276883; x[507] = +0.999982430354891598580; x[508] = +0.999992298136257588028; x[509] = +0.999997596379748464620; x[510] = +0.999999672956734384381; w[ 0] = 0.945715933950007048827E-06; w[ 1] = 0.345456507169149134898E-05; w[ 2] = 0.736624069102321668857E-05; w[ 3] = 0.125792781889592743525E-04; w[ 4] = 0.190213681905875816679E-04; w[ 5] = 0.266376412339000901358E-04; w[ 6] = 0.353751372055189588628E-04; w[ 7] = 0.451863674126296143105E-04; w[ 8] = 0.560319507856164252140E-04; w[ 9] = 0.678774554733972416227E-04; w[ 10] = 0.806899228014035293851E-04; w[ 11] = 0.944366322532705527066E-04; w[ 12] = 0.109085545645741522051E-03; w[ 13] = 0.124606200241498368482E-03; w[ 14] = 0.140970302204104791413E-03; w[ 15] = 0.158151830411132242924E-03; w[ 16] = 0.176126765545083195474E-03; w[ 17] = 0.194872642236641146532E-03; w[ 18] = 0.214368090034216937149E-03; w[ 19] = 0.234592462123925204879E-03; w[ 20] = 0.255525589595236862014E-03; w[ 21] = 0.277147657465187357459E-03; w[ 22] = 0.299439176850911730874E-03; w[ 23] = 0.322381020652862389664E-03; w[ 24] = 0.345954492129903871350E-03; w[ 25] = 0.370141402122251665232E-03; w[ 26] = 0.394924138246873704434E-03; w[ 27] = 0.420285716355361231823E-03; w[ 28] = 0.446209810101403247488E-03; w[ 29] = 0.472680758429262691232E-03; w[ 30] = 0.499683553312800484519E-03; w[ 31] = 0.527203811431658386125E-03; w[ 32] = 0.555227733977307579715E-03; w[ 33] = 0.583742058714979703847E-03; w[ 34] = 0.612734008012225209294E-03; w[ 35] = 0.642191235948505088403E-03; w[ 36] = 0.672101776960108194646E-03; w[ 37] = 0.702453997827572321358E-03; w[ 38] = 0.733236554224767912055E-03; w[ 39] = 0.764438352543882784191E-03; w[ 40] = 0.796048517297550871506E-03; w[ 41] = 0.828056364077226302608E-03; w[ 42] = 0.860451377808527848128E-03; w[ 43] = 0.893223195879324912340E-03; w[ 44] = 0.926361595613111283368E-03; w[ 45] = 0.959856485506936206261E-03; w[ 46] = 0.993697899638760857945E-03; w[ 47] = 0.102787599466367326179E-02; w[ 48] = 0.106238104885340071375E-02; w[ 49] = 0.109720346268191941940E-02; w[ 50] = 0.113233376051597664917E-02; w[ 51] = 0.116776259302858043685E-02; w[ 52] = 0.120348074001265964881E-02; w[ 53] = 0.123947911332878396534E-02; w[ 54] = 0.127574875977346947345E-02; w[ 55] = 0.131228086370221478128E-02; w[ 56] = 0.134906674928353113127E-02; w[ 57] = 0.138609788229672549700E-02; w[ 58] = 0.142336587141720519900E-02; w[ 59] = 0.146086246895890987689E-02; w[ 60] = 0.149857957106456636214E-02; w[ 61] = 0.153650921735128916170E-02; w[ 62] = 0.157464359003212166189E-02; w[ 63] = 0.161297501254393423070E-02; w[ 64] = 0.165149594771914570655E-02; w[ 65] = 0.169019899554346019117E-02; w[ 66] = 0.172907689054461607168E-02; w[ 67] = 0.176812249885838886701E-02; w[ 68] = 0.180732881501808930079E-02; w[ 69] = 0.184668895851282540913E-02; w[ 70] = 0.188619617015808475394E-02; w[ 71] = 0.192584380831993546204E-02; w[ 72] = 0.196562534503150547732E-02; w[ 73] = 0.200553436203751169944E-02; w[ 74] = 0.204556454679958293446E-02; w[ 75] = 0.208570968849203942640E-02; w[ 76] = 0.212596367401472533045E-02; w[ 77] = 0.216632048404649142727E-02; w[ 78] = 0.220677418916003329194E-02; w[ 79] = 0.224731894601603393082E-02; w[ 80] = 0.228794899365195972378E-02; w[ 81] = 0.232865864987842738864E-02; w[ 82] = 0.236944230779380495146E-02; w[ 83] = 0.241029443242563417382E-02; w[ 84] = 0.245120955750556483923E-02; w[ 85] = 0.249218228238276930060E-02; w[ 86] = 0.253320726907925325750E-02; w[ 87] = 0.257427923948908888092E-02; w[ 88] = 0.261539297272236109225E-02; w[ 89] = 0.265654330259352828314E-02; w[ 90] = 0.269772511525294586667E-02; w[ 91] = 0.273893334695947541201E-02; w[ 92] = 0.278016298199139435045E-02; w[ 93] = 0.282140905069222207923E-02; w[ 94] = 0.286266662764757868253E-02; w[ 95] = 0.290393082998878368175E-02; w[ 96] = 0.294519681581857582284E-02; w[ 97] = 0.298645978275408290247E-02; w[ 98] = 0.302771496658198544480E-02; w[ 99] = 0.306895764002069252174E-02; w[100] = 0.311018311158427546158E-02; w[101] = 0.315138672454287935858E-02; w[102] = 0.319256385597434736790E-02; w[103] = 0.323370991590184336368E-02; w[104] = 0.327482034651233969564E-02; w[105] = 0.331589062145094394706E-02; w[106] = 0.335691624518616761342E-02; w[107] = 0.339789275244138669739E-02; w[108] = 0.343881570768790591876E-02; w[109] = 0.347968070469521146972E-02; w[110] = 0.352048336613417922682E-02; w[111] = 0.356121934322919357659E-02; w[112] = 0.360188431545532431869E-02; w[113] = 0.364247399027690353194E-02; w[114] = 0.368298410292403911967E-02; w[115] = 0.372341041620379550870E-02; w[116] = 0.376374872034296338241E-02; w[117] = 0.380399483285952829161E-02; w[118] = 0.384414459846013158917E-02; w[119] = 0.388419388896099560998E-02; w[120] = 0.392413860322995774660E-02; w[121] = 0.396397466714742455513E-02; w[122] = 0.400369803358421688562E-02; w[123] = 0.404330468239442998549E-02; w[124] = 0.408279062042157838350E-02; w[125] = 0.412215188151643401528E-02; w[126] = 0.416138452656509745764E-02; w[127] = 0.420048464352596631772E-02; w[128] = 0.423944834747438184434E-02; w[129] = 0.427827178065384480959E-02; w[130] = 0.431695111253279479928E-02; w[131] = 0.435548253986604343679E-02; w[132] = 0.439386228676004195260E-02; w[133] = 0.443208660474124713206E-02; w[134] = 0.447015177282692726900E-02; w[135] = 0.450805409759782158001E-02; w[136] = 0.454578991327213285488E-02; w[137] = 0.458335558178039420335E-02; w[138] = 0.462074749284080687482E-02; w[139] = 0.465796206403469754658E-02; w[140] = 0.469499574088179046532E-02; w[141] = 0.473184499691503264714E-02; w[142] = 0.476850633375474925263E-02; w[143] = 0.480497628118194150483E-02; w[144] = 0.484125139721057135214E-02; w[145] = 0.487732826815870573054E-02; w[146] = 0.491320350871841897367E-02; w[147] = 0.494887376202437487201E-02; w[148] = 0.498433569972103029914E-02; w[149] = 0.501958602202842039909E-02; w[150] = 0.505462145780650125058E-02; w[151] = 0.508943876461803986674E-02; w[152] = 0.512403472879005351831E-02; w[153] = 0.515840616547381084096E-02; w[154] = 0.519254991870341614863E-02; w[155] = 0.522646286145300596306E-02; w[156] = 0.526014189569259311205E-02; w[157] = 0.529358395244259896547E-02; w[158] = 0.532678599182711857974E-02; w[159] = 0.535974500312596681161E-02; w[160] = 0.539245800482555593606E-02; w[161] = 0.542492204466865704951E-02; w[162] = 0.545713419970309863995E-02; w[163] = 0.548909157632945623482E-02; w[164] = 0.552079131034778706457E-02; w[165] = 0.555223056700346326850E-02; w[166] = 0.558340654103215637610E-02; w[167] = 0.561431645670402467678E-02; w[168] = 0.564495756786715368885E-02; w[169] = 0.567532715799029830087E-02; w[170] = 0.570542254020497332312E-02; w[171] = 0.573524105734693719020E-02; w[172] = 0.576478008199711142954E-02; w[173] = 0.579403701652197628421E-02; w[174] = 0.582300929311348057702E-02; w[175] = 0.585169437382850155033E-02; w[176] = 0.588008975062788803205E-02; w[177] = 0.590819294541511788161E-02; w[178] = 0.593600151007459827614E-02; w[179] = 0.596351302650963502011E-02; w[180] = 0.599072510668009471472E-02; w[181] = 0.601763539263978131522E-02; w[182] = 0.604424155657354634589E-02; w[183] = 0.607054130083414983949E-02; w[184] = 0.609653235797888692923E-02; w[185] = 0.612221249080599294931E-02; w[186] = 0.614757949239083790214E-02; w[187] = 0.617263118612191922727E-02; w[188] = 0.619736542573665996342E-02; w[189] = 0.622178009535701763157E-02; w[190] = 0.624587310952490748541E-02; w[191] = 0.626964241323744217671E-02; w[192] = 0.629308598198198836688E-02; w[193] = 0.631620182177103938227E-02; w[194] = 0.633898796917690165912E-02; w[195] = 0.636144249136619145314E-02; w[196] = 0.638356348613413709795E-02; w[197] = 0.640534908193868098342E-02; w[198] = 0.642679743793437438922E-02; w[199] = 0.644790674400605734710E-02; w[200] = 0.646867522080231481688E-02; w[201] = 0.648910111976869964292E-02; w[202] = 0.650918272318071200827E-02; w[203] = 0.652891834417652442012E-02; w[204] = 0.654830632678944064054E-02; w[205] = 0.656734504598007641819E-02; w[206] = 0.658603290766824937794E-02; w[207] = 0.660436834876456498276E-02; w[208] = 0.662234983720168509457E-02; w[209] = 0.663997587196526532519E-02; w[210] = 0.665724498312454708217E-02; w[211] = 0.667415573186258997654E-02; w[212] = 0.669070671050613006584E-02; w[213] = 0.670689654255504925648E-02; w[214] = 0.672272388271144108036E-02; w[215] = 0.673818741690825799086E-02; w[216] = 0.675328586233752529078E-02; w[217] = 0.676801796747810680683E-02; w[218] = 0.678238251212300746082E-02; w[219] = 0.679637830740619795480E-02; w[220] = 0.681000419582894688374E-02; w[221] = 0.682325905128564571420E-02; w[222] = 0.683614177908911221841E-02; w[223] = 0.684865131599535812903E-02; w[224] = 0.686078663022780697951E-02; w[225] = 0.687254672150094831613E-02; w[226] = 0.688393062104341470995E-02; w[227] = 0.689493739162046825872E-02; w[228] = 0.690556612755588354803E-02; w[229] = 0.691581595475321433825E-02; w[230] = 0.692568603071643155621E-02; w[231] = 0.693517554456992049848E-02; w[232] = 0.694428371707782549438E-02; w[233] = 0.695300980066273063177E-02; w[234] = 0.696135307942366551493E-02; w[235] = 0.696931286915342540213E-02; w[236] = 0.697688851735519545845E-02; w[237] = 0.698407940325846925786E-02; w[238] = 0.699088493783425207545E-02; w[239] = 0.699730456380953992594E-02; w[240] = 0.700333775568106572820E-02; w[241] = 0.700898401972830440494E-02; w[242] = 0.701424289402572916425E-02; w[243] = 0.701911394845431165171E-02; w[244] = 0.702359678471225911031E-02; w[245] = 0.702769103632498213858E-02; w[246] = 0.703139636865428709508E-02; w[247] = 0.703471247890678765907E-02; w[248] = 0.703763909614153052319E-02; w[249] = 0.704017598127683066242E-02; w[250] = 0.704232292709631209597E-02; w[251] = 0.704407975825415053266E-02; w[252] = 0.704544633127951476780E-02; w[253] = 0.704642253458020417748E-02; w[254] = 0.704700828844548013730E-02; w[255] = 0.704720354504808967346E-02; w[256] = 0.704700828844548013730E-02; w[257] = 0.704642253458020417748E-02; w[258] = 0.704544633127951476780E-02; w[259] = 0.704407975825415053266E-02; w[260] = 0.704232292709631209597E-02; w[261] = 0.704017598127683066242E-02; w[262] = 0.703763909614153052319E-02; w[263] = 0.703471247890678765907E-02; w[264] = 0.703139636865428709508E-02; w[265] = 0.702769103632498213858E-02; w[266] = 0.702359678471225911031E-02; w[267] = 0.701911394845431165171E-02; w[268] = 0.701424289402572916425E-02; w[269] = 0.700898401972830440494E-02; w[270] = 0.700333775568106572820E-02; w[271] = 0.699730456380953992594E-02; w[272] = 0.699088493783425207545E-02; w[273] = 0.698407940325846925786E-02; w[274] = 0.697688851735519545845E-02; w[275] = 0.696931286915342540213E-02; w[276] = 0.696135307942366551493E-02; w[277] = 0.695300980066273063177E-02; w[278] = 0.694428371707782549438E-02; w[279] = 0.693517554456992049848E-02; w[280] = 0.692568603071643155621E-02; w[281] = 0.691581595475321433825E-02; w[282] = 0.690556612755588354803E-02; w[283] = 0.689493739162046825872E-02; w[284] = 0.688393062104341470995E-02; w[285] = 0.687254672150094831613E-02; w[286] = 0.686078663022780697951E-02; w[287] = 0.684865131599535812903E-02; w[288] = 0.683614177908911221841E-02; w[289] = 0.682325905128564571420E-02; w[290] = 0.681000419582894688374E-02; w[291] = 0.679637830740619795480E-02; w[292] = 0.678238251212300746082E-02; w[293] = 0.676801796747810680683E-02; w[294] = 0.675328586233752529078E-02; w[295] = 0.673818741690825799086E-02; w[296] = 0.672272388271144108036E-02; w[297] = 0.670689654255504925648E-02; w[298] = 0.669070671050613006584E-02; w[299] = 0.667415573186258997654E-02; w[300] = 0.665724498312454708217E-02; w[301] = 0.663997587196526532519E-02; w[302] = 0.662234983720168509457E-02; w[303] = 0.660436834876456498276E-02; w[304] = 0.658603290766824937794E-02; w[305] = 0.656734504598007641819E-02; w[306] = 0.654830632678944064054E-02; w[307] = 0.652891834417652442012E-02; w[308] = 0.650918272318071200827E-02; w[309] = 0.648910111976869964292E-02; w[310] = 0.646867522080231481688E-02; w[311] = 0.644790674400605734710E-02; w[312] = 0.642679743793437438922E-02; w[313] = 0.640534908193868098342E-02; w[314] = 0.638356348613413709795E-02; w[315] = 0.636144249136619145314E-02; w[316] = 0.633898796917690165912E-02; w[317] = 0.631620182177103938227E-02; w[318] = 0.629308598198198836688E-02; w[319] = 0.626964241323744217671E-02; w[320] = 0.624587310952490748541E-02; w[321] = 0.622178009535701763157E-02; w[322] = 0.619736542573665996342E-02; w[323] = 0.617263118612191922727E-02; w[324] = 0.614757949239083790214E-02; w[325] = 0.612221249080599294931E-02; w[326] = 0.609653235797888692923E-02; w[327] = 0.607054130083414983949E-02; w[328] = 0.604424155657354634589E-02; w[329] = 0.601763539263978131522E-02; w[330] = 0.599072510668009471472E-02; w[331] = 0.596351302650963502011E-02; w[332] = 0.593600151007459827614E-02; w[333] = 0.590819294541511788161E-02; w[334] = 0.588008975062788803205E-02; w[335] = 0.585169437382850155033E-02; w[336] = 0.582300929311348057702E-02; w[337] = 0.579403701652197628421E-02; w[338] = 0.576478008199711142954E-02; w[339] = 0.573524105734693719020E-02; w[340] = 0.570542254020497332312E-02; w[341] = 0.567532715799029830087E-02; w[342] = 0.564495756786715368885E-02; w[343] = 0.561431645670402467678E-02; w[344] = 0.558340654103215637610E-02; w[345] = 0.555223056700346326850E-02; w[346] = 0.552079131034778706457E-02; w[347] = 0.548909157632945623482E-02; w[348] = 0.545713419970309863995E-02; w[349] = 0.542492204466865704951E-02; w[350] = 0.539245800482555593606E-02; w[351] = 0.535974500312596681161E-02; w[352] = 0.532678599182711857974E-02; w[353] = 0.529358395244259896547E-02; w[354] = 0.526014189569259311205E-02; w[355] = 0.522646286145300596306E-02; w[356] = 0.519254991870341614863E-02; w[357] = 0.515840616547381084096E-02; w[358] = 0.512403472879005351831E-02; w[359] = 0.508943876461803986674E-02; w[360] = 0.505462145780650125058E-02; w[361] = 0.501958602202842039909E-02; w[362] = 0.498433569972103029914E-02; w[363] = 0.494887376202437487201E-02; w[364] = 0.491320350871841897367E-02; w[365] = 0.487732826815870573054E-02; w[366] = 0.484125139721057135214E-02; w[367] = 0.480497628118194150483E-02; w[368] = 0.476850633375474925263E-02; w[369] = 0.473184499691503264714E-02; w[370] = 0.469499574088179046532E-02; w[371] = 0.465796206403469754658E-02; w[372] = 0.462074749284080687482E-02; w[373] = 0.458335558178039420335E-02; w[374] = 0.454578991327213285488E-02; w[375] = 0.450805409759782158001E-02; w[376] = 0.447015177282692726900E-02; w[377] = 0.443208660474124713206E-02; w[378] = 0.439386228676004195260E-02; w[379] = 0.435548253986604343679E-02; w[380] = 0.431695111253279479928E-02; w[381] = 0.427827178065384480959E-02; w[382] = 0.423944834747438184434E-02; w[383] = 0.420048464352596631772E-02; w[384] = 0.416138452656509745764E-02; w[385] = 0.412215188151643401528E-02; w[386] = 0.408279062042157838350E-02; w[387] = 0.404330468239442998549E-02; w[388] = 0.400369803358421688562E-02; w[389] = 0.396397466714742455513E-02; w[390] = 0.392413860322995774660E-02; w[391] = 0.388419388896099560998E-02; w[392] = 0.384414459846013158917E-02; w[393] = 0.380399483285952829161E-02; w[394] = 0.376374872034296338241E-02; w[395] = 0.372341041620379550870E-02; w[396] = 0.368298410292403911967E-02; w[397] = 0.364247399027690353194E-02; w[398] = 0.360188431545532431869E-02; w[399] = 0.356121934322919357659E-02; w[400] = 0.352048336613417922682E-02; w[401] = 0.347968070469521146972E-02; w[402] = 0.343881570768790591876E-02; w[403] = 0.339789275244138669739E-02; w[404] = 0.335691624518616761342E-02; w[405] = 0.331589062145094394706E-02; w[406] = 0.327482034651233969564E-02; w[407] = 0.323370991590184336368E-02; w[408] = 0.319256385597434736790E-02; w[409] = 0.315138672454287935858E-02; w[410] = 0.311018311158427546158E-02; w[411] = 0.306895764002069252174E-02; w[412] = 0.302771496658198544480E-02; w[413] = 0.298645978275408290247E-02; w[414] = 0.294519681581857582284E-02; w[415] = 0.290393082998878368175E-02; w[416] = 0.286266662764757868253E-02; w[417] = 0.282140905069222207923E-02; w[418] = 0.278016298199139435045E-02; w[419] = 0.273893334695947541201E-02; w[420] = 0.269772511525294586667E-02; w[421] = 0.265654330259352828314E-02; w[422] = 0.261539297272236109225E-02; w[423] = 0.257427923948908888092E-02; w[424] = 0.253320726907925325750E-02; w[425] = 0.249218228238276930060E-02; w[426] = 0.245120955750556483923E-02; w[427] = 0.241029443242563417382E-02; w[428] = 0.236944230779380495146E-02; w[429] = 0.232865864987842738864E-02; w[430] = 0.228794899365195972378E-02; w[431] = 0.224731894601603393082E-02; w[432] = 0.220677418916003329194E-02; w[433] = 0.216632048404649142727E-02; w[434] = 0.212596367401472533045E-02; w[435] = 0.208570968849203942640E-02; w[436] = 0.204556454679958293446E-02; w[437] = 0.200553436203751169944E-02; w[438] = 0.196562534503150547732E-02; w[439] = 0.192584380831993546204E-02; w[440] = 0.188619617015808475394E-02; w[441] = 0.184668895851282540913E-02; w[442] = 0.180732881501808930079E-02; w[443] = 0.176812249885838886701E-02; w[444] = 0.172907689054461607168E-02; w[445] = 0.169019899554346019117E-02; w[446] = 0.165149594771914570655E-02; w[447] = 0.161297501254393423070E-02; w[448] = 0.157464359003212166189E-02; w[449] = 0.153650921735128916170E-02; w[450] = 0.149857957106456636214E-02; w[451] = 0.146086246895890987689E-02; w[452] = 0.142336587141720519900E-02; w[453] = 0.138609788229672549700E-02; w[454] = 0.134906674928353113127E-02; w[455] = 0.131228086370221478128E-02; w[456] = 0.127574875977346947345E-02; w[457] = 0.123947911332878396534E-02; w[458] = 0.120348074001265964881E-02; w[459] = 0.116776259302858043685E-02; w[460] = 0.113233376051597664917E-02; w[461] = 0.109720346268191941940E-02; w[462] = 0.106238104885340071375E-02; w[463] = 0.102787599466367326179E-02; w[464] = 0.993697899638760857945E-03; w[465] = 0.959856485506936206261E-03; w[466] = 0.926361595613111283368E-03; w[467] = 0.893223195879324912340E-03; w[468] = 0.860451377808527848128E-03; w[469] = 0.828056364077226302608E-03; w[470] = 0.796048517297550871506E-03; w[471] = 0.764438352543882784191E-03; w[472] = 0.733236554224767912055E-03; w[473] = 0.702453997827572321358E-03; w[474] = 0.672101776960108194646E-03; w[475] = 0.642191235948505088403E-03; w[476] = 0.612734008012225209294E-03; w[477] = 0.583742058714979703847E-03; w[478] = 0.555227733977307579715E-03; w[479] = 0.527203811431658386125E-03; w[480] = 0.499683553312800484519E-03; w[481] = 0.472680758429262691232E-03; w[482] = 0.446209810101403247488E-03; w[483] = 0.420285716355361231823E-03; w[484] = 0.394924138246873704434E-03; w[485] = 0.370141402122251665232E-03; w[486] = 0.345954492129903871350E-03; w[487] = 0.322381020652862389664E-03; w[488] = 0.299439176850911730874E-03; w[489] = 0.277147657465187357459E-03; w[490] = 0.255525589595236862014E-03; w[491] = 0.234592462123925204879E-03; w[492] = 0.214368090034216937149E-03; w[493] = 0.194872642236641146532E-03; w[494] = 0.176126765545083195474E-03; w[495] = 0.158151830411132242924E-03; w[496] = 0.140970302204104791413E-03; w[497] = 0.124606200241498368482E-03; w[498] = 0.109085545645741522051E-03; w[499] = 0.944366322532705527066E-04; w[500] = 0.806899228014035293851E-04; w[501] = 0.678774554733972416227E-04; w[502] = 0.560319507856164252140E-04; w[503] = 0.451863674126296143105E-04; w[504] = 0.353751372055189588628E-04; w[505] = 0.266376412339000901358E-04; w[506] = 0.190213681905875816679E-04; w[507] = 0.125792781889592743525E-04; w[508] = 0.736624069102321668857E-05; w[509] = 0.345456507169149134898E-05; w[510] = 0.945715933950007048827E-06; } else { cout << "\n"; cout << "PATTERSON_SET - Fatal error!\n"; cout << " Illegal input value of N.\n"; cout << " N must be 1, 3, 7, 15, 31, 63, 127, 255, or 511.\n"; exit ( 1 ); } return; } //****************************************************************************80 void r8mat_write ( string output_filename, int m, int n, double table[] ) //****************************************************************************80 // // Purpose: // // R8MAT_WRITE writes an R8MAT file with no header. // // Licensing: // // This code is distributed under the MIT license. // // Modified: // // 29 June 2009 // // Author: // // John Burkardt // // Parameters: // // Input, string OUTPUT_FILENAME, the output filename. // // Input, int M, the spatial dimension. // // Input, int N, the number of points. // // Input, double TABLE[M*N], the table data. // { int i; int j; ofstream output; // // Open the file. // output.open ( output_filename.c_str ( ) ); if ( !output ) { cerr << "\n"; cerr << "R8MAT_WRITE - Fatal error!\n"; cerr << " Could not open the output file.\n"; return; } // // Write the data. // for ( j = 0; j < n; j++ ) { for ( i = 0; i < m; i++ ) { output << " " << setw(24) << setprecision(16) << table[i+j*m]; } output << "\n"; } // // Close the file. // output.close ( ); return; } //****************************************************************************80 void rescale ( double a, double b, int n, double x[], double w[] ) //****************************************************************************80 // // Purpose: // // RESCALE rescales a Legendre quadrature rule from [-1,+1] to [A,B]. // // Licensing: // // This code is distributed under the MIT license. // // Modified: // // 18 October 2009 // // Author: // // John Burkardt. // // Reference: // // Andreas Glaser, Xiangtao Liu, Vladimir Rokhlin, // A fast algorithm for the calculation of the roots of special functions, // SIAM Journal on Scientific Computing, // Volume 29, Number 4, pages 1420-1438, 2007. // // Parameters: // // Input, double A, B, the endpoints of the new interval. // // Input, int N, the order. // // Input/output, double X[N], on input, the abscissas for [-1,+1]. // On output, the abscissas for [A,B]. // // Input/output, double W[N], on input, the weights for [-1,+1]. // On output, the weights for [A,B]. // { int i; for ( i = 0; i < n; i++ ) { x[i] = ( ( a + b ) + ( b - a ) * x[i] ) / 2.0; } for ( i = 0; i < n; i++ ) { w[i] = ( b - a ) * w[i] / 2.0; } return; } //****************************************************************************80 void rule_write ( int order, string filename, double x[], double w[], double r[] ) //****************************************************************************80 // // Purpose: // // RULE_WRITE writes a quadrature rule to three files. // // Licensing: // // This code is distributed under the MIT license. // // Modified: // // 18 February 2010 // // Author: // // John Burkardt // // Parameters: // // Input, int ORDER, the order of the rule. // // Input, double A, the left endpoint. // // Input, double B, the right endpoint. // // Input, string FILENAME, specifies the output filenames. // "filename_w.txt", "filename_x.txt", "filename_r.txt" // defining weights, abscissas, and region. // { string filename_r; string filename_w; string filename_x; filename_w = filename + "_w.txt"; filename_x = filename + "_x.txt"; filename_r = filename + "_r.txt"; cout << "\n"; cout << " Creating quadrature files.\n"; cout << "\n"; cout << " Root file name is \"" << filename << "\".\n"; cout << "\n"; cout << " Weight file will be \"" << filename_w << "\".\n"; cout << " Abscissa file will be \"" << filename_x << "\".\n"; cout << " Region file will be \"" << filename_r << "\".\n"; r8mat_write ( filename_w, 1, order, w ); r8mat_write ( filename_x, 1, order, x ); r8mat_write ( filename_r, 1, 2, r ); return; } //****************************************************************************80 void timestamp ( ) //****************************************************************************80 // // Purpose: // // TIMESTAMP prints the current YMDHMS date as a time stamp. // // Example: // // 31 May 2001 09:45:54 AM // // Licensing: // // This code is distributed under the MIT license. // // Modified: // // 08 July 2009 // // Author: // // John Burkardt // // Parameters: // // None // { # define TIME_SIZE 40 static char time_buffer[TIME_SIZE]; const struct std::tm *tm_ptr; std::time_t now; now = std::time ( NULL ); tm_ptr = std::localtime ( &now ); std::strftime ( time_buffer, TIME_SIZE, "%d %B %Y %I:%M:%S %p", tm_ptr ); std::cout << time_buffer << "\n"; return; # undef TIME_SIZE }