#! /usr/bin/env python3 # def cauchy_principal_value ( f, a, b, n ): #*****************************************************************************80 # ## cauchy_principal_value() estimates the Cauchy Principal Value of an integral. # # Discussion: # # This function can be used to estimate the Cauchy Principal Value of # a singular integral of the form # Integral f(t)/(t-x) dt # over an interval which includes the singularity point t=x. # # Isolate the singularity at x in a symmetric interval of finite size delta: # # cauchy_principal_value ( Integral ( a <= t <= b ) p(t) / ( t - x ) dt ) # = Integral ( a <= t <= x - delta ) p(t) / ( t - x ) dt # + cauchy_principal_value ( Integral ( x - delta <= t <= x + delta ) p(t) / ( t - x ) dt ) # + Integral ( x + delta <= t <= b ) p(t) / ( t - x ) dt. # # We assume the first and third integrals can be handled in the usual way. # The second integral can be rewritten as # Integral ( -1 <= s <= +1 ) ( p(s*delta+x) - p(x) ) / s ds # and approximated by # Sum ( 1 <= i <= N ) w(i) * ( p(xi*delta+x) - p(x) ) / xi(i) # = Sum ( 1 <= i <= N ) w(i) * ( p(xi*delta+x) ) / xi(i) # if we assume that N is even, so that coefficients of p(x) sum to zero. # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 02 September 2021 # # Author: # # John Burkardt # # Reference: # # Julian Noble, # Gauss-Legendre Principal Value Integration, # Computing in Science and Engineering, # Volume 2, Number 1, January-February 2000, pages 92-95. # # Input: # # real F ( X ), the function that evaluates the # integrand. # # real A, B, the endpoints of the symmetric interval, # which contains a singularity of the form 1/(X-(A+B)/2). # # integer N, the number of Gauss points to use. # N must be even. # # Output: # # real VALUE, the estimate for the Cauchy Principal Value. # # # N must be even. # if ( ( n % 2 ) != 0 ): print ( '' ) print ( 'cauchy_principal_value - Fatal error!' ) print ( ' N must be even.' ) raise Exception ( 'cauchy_principal_value - Fatal error.' ) # # Get the Gauss-Legendre rule. # [ x, w ] = legendre_set ( n ); # # Estimate the integral. # value = 0.0; for i in range ( 0, n ): x2 = ( ( 1.0 - x[i] ) * a \ + ( 1.0 + x[i] ) * b ) \ / 2.0 value = value + w[i] * ( f ( x2 ) ) / x[i] return value def cauchy_principal_value_test01 ( ): #*****************************************************************************80 # ## cauchy_principal_value_test01() seeks CPV of Integral ( -1 <= t <= 1 ) exp(t) / t dt # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 02 April 2015 # # Author: # # John Burkardt # import platform print ( '' ) print ( 'cauchy_principal_value_test01():' ) print ( ' Python version: %s' % ( platform.python_version ( ) ) ) print ( ' cauchy_principal_value() for Integral ( -1 <= t <= 1 ) exp(t) / t dt' ) print ( '' ) print ( ' N Estimate Error' ) print ( '' ) exact = 2.11450175075 a = -1.0 b = +1.0 for n in range ( 2, 10, 2 ): value = cauchy_principal_value ( f01, a, b, n ) print ( ' %2d %24.16g %14.6g' % ( n, value, abs ( value - exact ) ) ) # # Terminate. # print ( '' ) print ( 'cauchy_principal_value_test01():' ) print ( ' Normal end of execution.' ) return def f01 ( t ): #*****************************************************************************80 # ## f01() evaluates the integrand of Integral ( -1 <= t <= 1 ) exp(t) / t dt # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 01 April 2015 # # Author: # # John Burkardt # # Input: # # real T, the argument. # # Output: # # real VALUE, the value of the integrand. # import numpy as np value = np.exp ( t ) return value def cauchy_principal_value_test02 ( ): #*****************************************************************************80 # ## cauchy_principal_value_test02() is another test. # # Discussion: # # We seek # cauchy_principal_value ( Integral ( 1-delta <= t <= 1+delta ) 1/(1-t)^3 dt ) # which we must rewrite as # cauchy_principal_value ( Integral ( 1-delta <= t <= 1+delta ) 1/(1+t+t^2) 1/(1-t) dt ) # so that our "integrand" is 1/(1+t+t^2). # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 01 April 2015 # # Author: # # John Burkardt # import numpy as np import platform print ( '' ) print ( 'cauchy_principal_value_test02():' ) print ( ' Python version: %s' % ( platform.python_version ( ) ) ) print ( ' cauchy_principal_value ( Integral ( 1-delta <= t <= 1+delta ) 1/(1-t)^3 dt )' ) print ( ' Try this for delta = 1, 1/2, 1/4.' ) print ( '' ) print ( ' N Estimate Exact Error' ) delta = 1.0 for k in range ( 0, 3 ): print ( '' ) r1 = ( delta + 1.5 ) ** 2 + 0.75 r2 = ( - delta + 1.5 ) ** 2 + 0.75 r3 = np.arctan ( np.sqrt ( 0.75 ) / ( delta + 1.5 ) ) r4 = np.arctan ( np.sqrt ( 0.75 ) / ( - delta + 1.5 ) ) exact = - np.log ( r1 / r2 ) / 6.0 + ( r3 - r4 ) / np.sqrt ( 3.0 ) for n in range ( 2, 10, 2 ): a = 1.0 - delta b = 1.0 + delta value = cauchy_principal_value ( f02, a, b, n ) print ( ' %2d %24.16g %24.16g %14.6g' \ % ( n, value, exact, abs ( value - exact ) ) ) delta = delta / 2.0 # # Terminate. # print ( '' ) print ( 'cauchy_principal_value_test02():' ) print ( ' Normal end of execution.' ) return def f02 ( t ): #*****************************************************************************80 # ## f02(): integrand of Integral ( 1-delta <= t <= 1+delta ) 1/(1-t^3) dt # # Discussion: # # 1/(1-t^3) = 1/(1+t+t^2) * 1/(1-t) # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 01 April 2015 # # Author: # # John Burkardt # # Input: # # real T, the argument. # # Output: # # real VALUE, the value of the integrand at T. # value = 1.0 / ( 1.0 + t + t * t ) return value def cauchy_principal_value_test ( ): #*****************************************************************************80 # ## cauchy_principal_value_test() tests cauchy_principal_value(). # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 02 April 2015 # # Author: # # John Burkardt # import platform print ( '' ) print ( 'cauchy_principal_value_test():' ) print ( ' Python version: %s' % ( platform.python_version ( ) ) ) print ( ' Test cauchy_principal_value().' ) cauchy_principal_value_test01 ( ) cauchy_principal_value_test02 ( ) legendre_set_test01 ( ) # # Terminate. # print ( '' ) print ( 'cauchy_principal_value_test():' ) print ( ' Normal end of execution.' ) return def legendre_set ( n ): #*****************************************************************************80 # ## legendre_set() sets abscissas and weights for Gauss-Legendre quadrature. # # Discussion: # # The integral: # # integral ( -1 <= x <= 1 ) f(x) dx # # The quadrature rule: # # sum ( 1 <= i <= n ) w(i) * f ( x(i) ) # # The quadrature rule is exact for 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 MIT license. # # Modified: # # 01 April 2015 # # 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. # # Input: # # integer N, the order. # N must be between 1 and 33 or 63/64/65, 127/128/129, # 255/256/257. # # Output: # # real X(N), the abscissas. # # real W(N), the weights. # import numpy as np if ( n == 1 ): x = np.array ( [ \ 0.000000000000000000000000000000 \ ] ) w = np.array ( [ \ 2.000000000000000000000000000000 \ ] ) elif ( n == 2 ): x = np.array ( [ \ -0.577350269189625764509148780502, \ 0.577350269189625764509148780502 \ ] ) w = np.array ( [ \ 1.000000000000000000000000000000, \ 1.000000000000000000000000000000 \ ] ) elif ( n == 3 ): x = np.array ( [ \ -0.774596669241483377035853079956, \ 0.000000000000000000000000000000, \ 0.774596669241483377035853079956 \ ] ) w = np.array ( [ \ 0.555555555555555555555555555556, \ 0.888888888888888888888888888889, \ 0.555555555555555555555555555556 \ ] ) elif ( n == 4 ): x = np.array ( [ \ -0.861136311594052575223946488893, \ -0.339981043584856264802665759103, \ 0.339981043584856264802665759103, \ 0.861136311594052575223946488893 \ ] ) w = np.array ( [ \ 0.347854845137453857373063949222, \ 0.652145154862546142626936050778, \ 0.652145154862546142626936050778, \ 0.347854845137453857373063949222 \ ] ) elif ( n == 5 ): x = np.array ( [ \ -0.906179845938663992797626878299, \ -0.538469310105683091036314420700, \ 0.000000000000000000000000000000, \ 0.538469310105683091036314420700, \ 0.906179845938663992797626878299 \ ] ) w = np.array ( [ \ 0.236926885056189087514264040720, \ 0.478628670499366468041291514836, \ 0.568888888888888888888888888889, \ 0.478628670499366468041291514836, \ 0.236926885056189087514264040720 \ ] ) elif ( n == 6 ): x = np.array ( [ \ -0.932469514203152027812301554494, \ -0.661209386466264513661399595020, \ -0.238619186083196908630501721681, \ 0.238619186083196908630501721681, \ 0.661209386466264513661399595020, \ 0.932469514203152027812301554494 \ ] ) w = np.array ( [ \ 0.171324492379170345040296142173, \ 0.360761573048138607569833513838, \ 0.467913934572691047389870343990, \ 0.467913934572691047389870343990, \ 0.360761573048138607569833513838, \ 0.171324492379170345040296142173 \ ] ) elif ( n == 7 ): x = np.array ( [ \ -0.949107912342758524526189684048, \ -0.741531185599394439863864773281, \ -0.405845151377397166906606412077, \ 0.000000000000000000000000000000, \ 0.405845151377397166906606412077, \ 0.741531185599394439863864773281, \ 0.949107912342758524526189684048 \ ] ) w = np.array ( [ \ 0.129484966168869693270611432679, \ 0.279705391489276667901467771424, \ 0.381830050505118944950369775489, \ 0.417959183673469387755102040816, \ 0.381830050505118944950369775489, \ 0.279705391489276667901467771424, \ 0.129484966168869693270611432679 \ ] ) elif ( n == 8 ): x = np.array ( [ \ -0.960289856497536231683560868569, \ -0.796666477413626739591553936476, \ -0.525532409916328985817739049189, \ -0.183434642495649804939476142360, \ 0.183434642495649804939476142360, \ 0.525532409916328985817739049189, \ 0.796666477413626739591553936476, \ 0.960289856497536231683560868569 \ ] ) w = np.array ( [ \ 0.101228536290376259152531354310, \ 0.222381034453374470544355994426, \ 0.313706645877887287337962201987, \ 0.362683783378361982965150449277, \ 0.362683783378361982965150449277, \ 0.313706645877887287337962201987, \ 0.222381034453374470544355994426, \ 0.101228536290376259152531354310 \ ] ) elif ( n == 9 ): x = np.array ( [ \ -0.968160239507626089835576203, \ -0.836031107326635794299429788, \ -0.613371432700590397308702039, \ -0.324253423403808929038538015, \ 0.000000000000000000000000000, \ 0.324253423403808929038538015, \ 0.613371432700590397308702039, \ 0.836031107326635794299429788, \ 0.968160239507626089835576203 \ ] ) w = np.array ( [ \ 0.081274388361574411971892158111, \ 0.18064816069485740405847203124, \ 0.26061069640293546231874286942, \ 0.31234707704000284006863040658, \ 0.33023935500125976316452506929, \ 0.31234707704000284006863040658, \ 0.26061069640293546231874286942, \ 0.18064816069485740405847203124, \ 0.081274388361574411971892158111 \ ] ) elif ( n == 10 ): x = np.array ( [ \ -0.973906528517171720077964012, \ -0.865063366688984510732096688, \ -0.679409568299024406234327365, \ -0.433395394129247190799265943, \ -0.148874338981631210884826001, \ 0.148874338981631210884826001, \ 0.433395394129247190799265943, \ 0.679409568299024406234327365, \ 0.865063366688984510732096688, \ 0.973906528517171720077964012 \ ] ) w = np.array ( [ \ 0.066671344308688137593568809893, \ 0.14945134915058059314577633966, \ 0.21908636251598204399553493423, \ 0.26926671930999635509122692157, \ 0.29552422471475287017389299465, \ 0.29552422471475287017389299465, \ 0.26926671930999635509122692157, \ 0.21908636251598204399553493423, \ 0.14945134915058059314577633966, \ 0.066671344308688137593568809893 \ ] ) elif ( n == 11 ): x = np.array ( [ \ -0.978228658146056992803938001, \ -0.887062599768095299075157769, \ -0.730152005574049324093416252, \ -0.519096129206811815925725669, \ -0.269543155952344972331531985, \ 0.000000000000000000000000000, \ 0.269543155952344972331531985, \ 0.519096129206811815925725669, \ 0.730152005574049324093416252, \ 0.887062599768095299075157769, \ 0.978228658146056992803938001 \ ] ) w = np.array ( [ \ 0.055668567116173666482753720443, \ 0.12558036946490462463469429922, \ 0.18629021092773425142609764143, \ 0.23319376459199047991852370484, \ 0.26280454451024666218068886989, \ 0.27292508677790063071448352834, \ 0.26280454451024666218068886989, \ 0.23319376459199047991852370484, \ 0.18629021092773425142609764143, \ 0.12558036946490462463469429922, \ 0.055668567116173666482753720443 \ ] ) elif ( n == 12 ): x = np.array ( [ \ -0.981560634246719250690549090, \ -0.904117256370474856678465866, \ -0.769902674194304687036893833, \ -0.587317954286617447296702419, \ -0.367831498998180193752691537, \ -0.125233408511468915472441369, \ 0.125233408511468915472441369, \ 0.367831498998180193752691537, \ 0.587317954286617447296702419, \ 0.769902674194304687036893833, \ 0.904117256370474856678465866, \ 0.981560634246719250690549090 \ ] ) w = np.array ( [ \ 0.047175336386511827194615961485, \ 0.10693932599531843096025471819, \ 0.16007832854334622633465252954, \ 0.20316742672306592174906445581, \ 0.23349253653835480876084989892, \ 0.24914704581340278500056243604, \ 0.24914704581340278500056243604, \ 0.23349253653835480876084989892, \ 0.20316742672306592174906445581, \ 0.16007832854334622633465252954, \ 0.10693932599531843096025471819, \ 0.047175336386511827194615961485 \ ] ) elif ( n == 13 ): x = np.array ( [ \ -0.984183054718588149472829449, \ -0.917598399222977965206547837, \ -0.801578090733309912794206490, \ -0.642349339440340220643984607, \ -0.448492751036446852877912852, \ -0.230458315955134794065528121, \ 0.000000000000000000000000000, \ 0.230458315955134794065528121, \ 0.448492751036446852877912852, \ 0.642349339440340220643984607, \ 0.80157809073330991279420649, \ 0.91759839922297796520654784, \ 0.98418305471858814947282945 \ ] ) w = np.array ( [ \ 0.040484004765315879520021592201, \ 0.092121499837728447914421775954, \ 0.13887351021978723846360177687, \ 0.17814598076194573828004669200, \ 0.20781604753688850231252321931, \ 0.22628318026289723841209018604, \ 0.23255155323087391019458951527, \ 0.22628318026289723841209018604, \ 0.20781604753688850231252321931, \ 0.17814598076194573828004669200, \ 0.13887351021978723846360177687, \ 0.092121499837728447914421775954, \ 0.040484004765315879520021592201 \ ] ) elif ( n == 14 ): x = np.array ( [ \ -0.986283808696812338841597267, \ -0.928434883663573517336391139, \ -0.827201315069764993189794743, \ -0.687292904811685470148019803, \ -0.515248636358154091965290719, \ -0.319112368927889760435671824, \ -0.108054948707343662066244650, \ 0.108054948707343662066244650, \ 0.31911236892788976043567182, \ 0.51524863635815409196529072, \ 0.68729290481168547014801980, \ 0.82720131506976499318979474, \ 0.92843488366357351733639114, \ 0.98628380869681233884159727 \ ] ) w = np.array ( [ \ 0.035119460331751863031832876138, \ 0.08015808715976020980563327706, \ 0.12151857068790318468941480907, \ 0.15720316715819353456960193862, \ 0.18553839747793781374171659013, \ 0.20519846372129560396592406566, \ 0.21526385346315779019587644332, \ 0.21526385346315779019587644332, \ 0.20519846372129560396592406566, \ 0.18553839747793781374171659013, \ 0.15720316715819353456960193862, \ 0.12151857068790318468941480907, \ 0.08015808715976020980563327706, \ 0.035119460331751863031832876138 \ ] ) elif ( n == 15 ): x = np.array ( [ \ -0.987992518020485428489565719, \ -0.937273392400705904307758948, \ -0.848206583410427216200648321, \ -0.724417731360170047416186055, \ -0.570972172608538847537226737, \ -0.394151347077563369897207371, \ -0.201194093997434522300628303, \ 0.00000000000000000000000000, \ 0.20119409399743452230062830, \ 0.39415134707756336989720737, \ 0.57097217260853884753722674, \ 0.72441773136017004741618605, \ 0.84820658341042721620064832, \ 0.93727339240070590430775895, \ 0.98799251802048542848956572 \ ] ) w = np.array ( [ \ 0.030753241996117268354628393577, \ 0.070366047488108124709267416451, \ 0.107159220467171935011869546686, \ 0.13957067792615431444780479451, \ 0.16626920581699393355320086048, \ 0.18616100001556221102680056187, \ 0.19843148532711157645611832644, \ 0.20257824192556127288062019997, \ 0.19843148532711157645611832644, \ 0.18616100001556221102680056187, \ 0.16626920581699393355320086048, \ 0.13957067792615431444780479451, \ 0.107159220467171935011869546686, \ 0.070366047488108124709267416451, \ 0.030753241996117268354628393577 \ ] ) elif ( n == 16 ): x = np.array ( [ \ -0.989400934991649932596154173, \ -0.944575023073232576077988416, \ -0.865631202387831743880467898, \ -0.755404408355003033895101195, \ -0.617876244402643748446671764, \ -0.458016777657227386342419443, \ -0.281603550779258913230460501, \ -0.09501250983763744018531934, \ 0.09501250983763744018531934, \ 0.28160355077925891323046050, \ 0.45801677765722738634241944, \ 0.61787624440264374844667176, \ 0.75540440835500303389510119, \ 0.86563120238783174388046790, \ 0.94457502307323257607798842, \ 0.98940093499164993259615417 \ ] ) w = np.array ( [ \ 0.027152459411754094851780572456, \ 0.062253523938647892862843836994, \ 0.09515851168249278480992510760, \ 0.12462897125553387205247628219, \ 0.14959598881657673208150173055, \ 0.16915651939500253818931207903, \ 0.18260341504492358886676366797, \ 0.18945061045506849628539672321, \ 0.18945061045506849628539672321, \ 0.18260341504492358886676366797, \ 0.16915651939500253818931207903, \ 0.14959598881657673208150173055, \ 0.12462897125553387205247628219, \ 0.09515851168249278480992510760, \ 0.062253523938647892862843836994, \ 0.027152459411754094851780572456 \ ] ) elif ( n == 17 ): x = np.array ( [ \ -0.990575475314417335675434020, \ -0.950675521768767761222716958, \ -0.880239153726985902122955694, \ -0.781514003896801406925230056, \ -0.657671159216690765850302217, \ -0.512690537086476967886246569, \ -0.35123176345387631529718552, \ -0.17848418149584785585067749, \ 0.00000000000000000000000000, \ 0.17848418149584785585067749, \ 0.35123176345387631529718552, \ 0.51269053708647696788624657, \ 0.65767115921669076585030222, \ 0.78151400389680140692523006, \ 0.88023915372698590212295569, \ 0.95067552176876776122271696, \ 0.99057547531441733567543402 \ ] ) w = np.array ( [ \ 0.024148302868547931960110026288, \ 0.055459529373987201129440165359, \ 0.085036148317179180883535370191, \ 0.111883847193403971094788385626, \ 0.13513636846852547328631998170, \ 0.15404576107681028808143159480, \ 0.16800410215645004450997066379, \ 0.17656270536699264632527099011, \ 0.17944647035620652545826564426, \ 0.17656270536699264632527099011, \ 0.16800410215645004450997066379, \ 0.15404576107681028808143159480, \ 0.13513636846852547328631998170, \ 0.111883847193403971094788385626, \ 0.085036148317179180883535370191, \ 0.055459529373987201129440165359, \ 0.024148302868547931960110026288 \ ] ) elif ( n == 18 ): x = np.array ( [ \ -0.991565168420930946730016005, \ -0.955823949571397755181195893, \ -0.892602466497555739206060591, \ -0.803704958972523115682417455, \ -0.691687043060353207874891081, \ -0.55977083107394753460787155, \ -0.41175116146284264603593179, \ -0.25188622569150550958897285, \ -0.08477501304173530124226185, \ 0.08477501304173530124226185, \ 0.25188622569150550958897285, \ 0.41175116146284264603593179, \ 0.55977083107394753460787155, \ 0.69168704306035320787489108, \ 0.80370495897252311568241746, \ 0.89260246649755573920606059, \ 0.95582394957139775518119589, \ 0.99156516842093094673001600 \ ] ) w = np.array ( [ \ 0.021616013526483310313342710266, \ 0.049714548894969796453334946203, \ 0.07642573025488905652912967762, \ 0.10094204410628716556281398492, \ 0.12255520671147846018451912680, \ 0.14064291467065065120473130375, \ 0.15468467512626524492541800384, \ 0.16427648374583272298605377647, \ 0.16914238296314359184065647013, \ 0.16914238296314359184065647013, \ 0.16427648374583272298605377647, \ 0.15468467512626524492541800384, \ 0.14064291467065065120473130375, \ 0.12255520671147846018451912680, \ 0.10094204410628716556281398492, \ 0.07642573025488905652912967762, \ 0.049714548894969796453334946203, \ 0.021616013526483310313342710266 \ ] ) elif ( n == 19 ): x = np.array ( [ \ -0.992406843843584403189017670, \ -0.960208152134830030852778841, \ -0.903155903614817901642660929, \ -0.822714656537142824978922487, \ -0.72096617733522937861709586, \ -0.60054530466168102346963816, \ -0.46457074137596094571726715, \ -0.31656409996362983199011733, \ -0.16035864564022537586809612, \ 0.00000000000000000000000000, \ 0.16035864564022537586809612, \ 0.31656409996362983199011733, \ 0.46457074137596094571726715, \ 0.60054530466168102346963816, \ 0.72096617733522937861709586, \ 0.82271465653714282497892249, \ 0.90315590361481790164266093, \ 0.96020815213483003085277884, \ 0.99240684384358440318901767 \ ] ) w = np.array ( [ \ 0.019461788229726477036312041464, \ 0.044814226765699600332838157402, \ 0.069044542737641226580708258006, \ 0.091490021622449999464462094124, \ 0.111566645547333994716023901682, \ 0.12875396253933622767551578486, \ 0.14260670217360661177574610944, \ 0.15276604206585966677885540090, \ 0.15896884339395434764995643946, \ 0.16105444984878369597916362532, \ 0.15896884339395434764995643946, \ 0.15276604206585966677885540090, \ 0.14260670217360661177574610944, \ 0.12875396253933622767551578486, \ 0.111566645547333994716023901682, \ 0.091490021622449999464462094124, \ 0.069044542737641226580708258006, \ 0.044814226765699600332838157402, \ 0.019461788229726477036312041464 \ ] ) elif ( n == 20 ): x = np.array ( [ \ -0.993128599185094924786122388, \ -0.963971927277913791267666131, \ -0.912234428251325905867752441, \ -0.83911697182221882339452906, \ -0.74633190646015079261430507, \ -0.63605368072651502545283670, \ -0.51086700195082709800436405, \ -0.37370608871541956067254818, \ -0.22778585114164507808049620, \ -0.07652652113349733375464041, \ 0.07652652113349733375464041, \ 0.22778585114164507808049620, \ 0.37370608871541956067254818, \ 0.51086700195082709800436405, \ 0.63605368072651502545283670, \ 0.74633190646015079261430507, \ 0.83911697182221882339452906, \ 0.91223442825132590586775244, \ 0.96397192727791379126766613, \ 0.99312859918509492478612239 \ ] ) w = np.array ( [ \ 0.017614007139152118311861962352, \ 0.040601429800386941331039952275, \ 0.062672048334109063569506535187, \ 0.08327674157670474872475814322, \ 0.10193011981724043503675013548, \ 0.11819453196151841731237737771, \ 0.13168863844917662689849449975, \ 0.14209610931838205132929832507, \ 0.14917298647260374678782873700, \ 0.15275338713072585069808433195, \ 0.15275338713072585069808433195, \ 0.14917298647260374678782873700, \ 0.14209610931838205132929832507, \ 0.13168863844917662689849449975, \ 0.11819453196151841731237737771, \ 0.10193011981724043503675013548, \ 0.08327674157670474872475814322, \ 0.062672048334109063569506535187, \ 0.040601429800386941331039952275, \ 0.017614007139152118311861962352 \ ] ) elif ( n == 21 ): x = np.array ( [ \ -0.99375217062038950026024204, \ -0.96722683856630629431662221, \ -0.92009933415040082879018713, \ -0.85336336458331728364725064, \ -0.76843996347567790861587785, \ -0.66713880419741231930596667, \ -0.55161883588721980705901880, \ -0.42434212020743878357366889, \ -0.28802131680240109660079252, \ -0.14556185416089509093703098, \ 0.00000000000000000000000000, \ +0.14556185416089509093703098, \ +0.28802131680240109660079252, \ +0.42434212020743878357366889, \ +0.55161883588721980705901880, \ +0.66713880419741231930596667, \ +0.76843996347567790861587785, \ +0.85336336458331728364725064, \ +0.92009933415040082879018713, \ +0.96722683856630629431662221, \ +0.99375217062038950026024204 \ ] ) w = np.array ( [ \ 0.016017228257774333324224616858, \ 0.036953789770852493799950668299, \ 0.057134425426857208283635826472, \ 0.076100113628379302017051653300, \ 0.093444423456033861553289741114, \ 0.108797299167148377663474578070, \ 0.12183141605372853419536717713, \ 0.13226893863333746178105257450, \ 0.13988739479107315472213342387, \ 0.14452440398997005906382716655, \ 0.14608113364969042719198514768, \ 0.14452440398997005906382716655, \ 0.13988739479107315472213342387, \ 0.13226893863333746178105257450, \ 0.12183141605372853419536717713, \ 0.108797299167148377663474578070, \ 0.093444423456033861553289741114, \ 0.076100113628379302017051653300, \ 0.057134425426857208283635826472, \ 0.036953789770852493799950668299, \ 0.016017228257774333324224616858 \ ] ) elif ( n == 22 ): x = np.array ( [ \ -0.99429458548239929207303142, \ -0.97006049783542872712395099, \ -0.92695677218717400052069294, \ -0.86581257772030013653642564, \ -0.78781680597920816200427796, \ -0.69448726318668278005068984, \ -0.58764040350691159295887693, \ -0.46935583798675702640633071, \ -0.34193582089208422515814742, \ -0.20786042668822128547884653, \ -0.06973927331972222121384180, \ 0.06973927331972222121384180, \ 0.20786042668822128547884653, \ 0.34193582089208422515814742, \ 0.46935583798675702640633071, \ 0.58764040350691159295887693, \ 0.69448726318668278005068984, \ 0.78781680597920816200427796, \ 0.86581257772030013653642564, \ 0.92695677218717400052069294, \ 0.97006049783542872712395099, \ 0.99429458548239929207303142 \ ] ) w = np.array ( [ \ 0.014627995298272200684991098047, \ 0.033774901584814154793302246866, \ 0.052293335152683285940312051273, \ 0.06979646842452048809496141893, \ 0.08594160621706772741444368137, \ 0.10041414444288096493207883783, \ 0.11293229608053921839340060742, \ 0.12325237681051242428556098615, \ 0.13117350478706237073296499253, \ 0.13654149834601517135257383123, \ 0.13925187285563199337541024834, \ 0.13925187285563199337541024834, \ 0.13654149834601517135257383123, \ 0.13117350478706237073296499253, \ 0.12325237681051242428556098615, \ 0.11293229608053921839340060742, \ 0.10041414444288096493207883783, \ 0.08594160621706772741444368137, \ 0.06979646842452048809496141893, \ 0.052293335152683285940312051273, \ 0.033774901584814154793302246866, \ 0.014627995298272200684991098047 \ ] ) elif ( n == 23 ): x = np.array ( [ \ -0.99476933499755212352392572, \ -0.97254247121811523195602408, \ -0.93297108682601610234919699, \ -0.87675235827044166737815689, \ -0.80488840161883989215111841, \ -0.71866136313195019446162448, \ -0.61960987576364615638509731, \ -0.50950147784600754968979305, \ -0.39030103803029083142148887, \ -0.26413568097034493053386954, \ -0.13325682429846611093174268, \ 0.00000000000000000000000000, \ 0.13325682429846611093174268, \ 0.26413568097034493053386954, \ 0.39030103803029083142148887, \ 0.50950147784600754968979305, \ 0.61960987576364615638509731, \ 0.71866136313195019446162448, \ 0.80488840161883989215111841, \ 0.87675235827044166737815689, \ 0.93297108682601610234919699, \ 0.97254247121811523195602408, \ 0.99476933499755212352392572 \ ] ) w = np.array ( [ \ 0.013411859487141772081309493459, \ 0.030988005856979444310694219642, \ 0.048037671731084668571641071632, \ 0.064232421408525852127169615159, \ 0.079281411776718954922892524742, \ 0.092915766060035147477018617370, \ 0.104892091464541410074086185015, \ 0.11499664022241136494164351293, \ 0.12304908430672953046757840067, \ 0.12890572218808214997859533940, \ 0.13246203940469661737164246470, \ 0.13365457218610617535145711055, \ 0.13246203940469661737164246470, \ 0.12890572218808214997859533940, \ 0.12304908430672953046757840067, \ 0.11499664022241136494164351293, \ 0.104892091464541410074086185015, \ 0.092915766060035147477018617370, \ 0.079281411776718954922892524742, \ 0.064232421408525852127169615159, \ 0.048037671731084668571641071632, \ 0.030988005856979444310694219642, \ 0.013411859487141772081309493459 \ ] ) elif ( n == 24 ): x = np.array ( [ \ -0.99518721999702136017999741, \ -0.97472855597130949819839199, \ -0.93827455200273275852364900, \ -0.88641552700440103421315434, \ -0.82000198597390292195394987, \ -0.74012419157855436424382810, \ -0.64809365193697556925249579, \ -0.54542147138883953565837562, \ -0.43379350762604513848708423, \ -0.31504267969616337438679329, \ -0.19111886747361630915863982, \ -0.06405689286260562608504308, \ 0.06405689286260562608504308, \ 0.19111886747361630915863982, \ 0.31504267969616337438679329, \ 0.43379350762604513848708423, \ 0.54542147138883953565837562, \ 0.64809365193697556925249579, \ 0.74012419157855436424382810, \ 0.82000198597390292195394987, \ 0.88641552700440103421315434, \ 0.93827455200273275852364900, \ 0.97472855597130949819839199, \ 0.99518721999702136017999741 \ ] ) w = np.array ( [ \ 0.012341229799987199546805667070, \ 0.028531388628933663181307815952, \ 0.044277438817419806168602748211, \ 0.059298584915436780746367758500, \ 0.07334648141108030573403361525, \ 0.08619016153195327591718520298, \ 0.09761865210411388826988066446, \ 0.10744427011596563478257734245, \ 0.11550566805372560135334448391, \ 0.12167047292780339120446315348, \ 0.12583745634682829612137538251, \ 0.12793819534675215697405616522, \ 0.12793819534675215697405616522, \ 0.12583745634682829612137538251, \ 0.12167047292780339120446315348, \ 0.11550566805372560135334448391, \ 0.10744427011596563478257734245, \ 0.09761865210411388826988066446, \ 0.08619016153195327591718520298, \ 0.07334648141108030573403361525, \ 0.059298584915436780746367758500, \ 0.044277438817419806168602748211, \ 0.028531388628933663181307815952, \ 0.012341229799987199546805667070 \ ] ) elif ( n == 25 ): x = np.array ( [ \ -0.99555696979049809790878495, \ -0.97666392145951751149831539, \ -0.94297457122897433941401117, \ -0.89499199787827536885104201, \ -0.83344262876083400142102111, \ -0.75925926303735763057728287, \ -0.67356636847346836448512063, \ -0.57766293024122296772368984, \ -0.47300273144571496052218212, \ -0.36117230580938783773582173, \ -0.24386688372098843204519036, \ -0.12286469261071039638735982, \ 0.00000000000000000000000000, \ 0.12286469261071039638735982, \ 0.24386688372098843204519036, \ 0.36117230580938783773582173, \ 0.47300273144571496052218212, \ 0.57766293024122296772368984, \ 0.67356636847346836448512063, \ 0.75925926303735763057728287, \ 0.83344262876083400142102111, \ 0.89499199787827536885104201, \ 0.94297457122897433941401117, \ 0.97666392145951751149831539, \ 0.99555696979049809790878495 \ ] ) w = np.array ( [ \ 0.0113937985010262879479029641132, \ 0.026354986615032137261901815295, \ 0.040939156701306312655623487712, \ 0.054904695975835191925936891541, \ 0.068038333812356917207187185657, \ 0.080140700335001018013234959669, \ 0.091028261982963649811497220703, \ 0.100535949067050644202206890393, \ 0.108519624474263653116093957050, \ 0.11485825914571164833932554587, \ 0.11945576353578477222817812651, \ 0.12224244299031004168895951895, \ 0.12317605372671545120390287308, \ 0.12224244299031004168895951895, \ 0.11945576353578477222817812651, \ 0.11485825914571164833932554587, \ 0.108519624474263653116093957050, \ 0.100535949067050644202206890393, \ 0.091028261982963649811497220703, \ 0.080140700335001018013234959669, \ 0.068038333812356917207187185657, \ 0.054904695975835191925936891541, \ 0.040939156701306312655623487712, \ 0.026354986615032137261901815295, \ 0.0113937985010262879479029641132 \ ] ) elif ( n == 26 ): x = np.array ( [ \ -0.99588570114561692900321696, \ -0.97838544595647099110058035, \ -0.94715906666171425013591528, \ -0.90263786198430707421766560, \ -0.84544594278849801879750706, \ -0.77638594882067885619296725, \ -0.69642726041995726486381391, \ -0.60669229301761806323197875, \ -0.50844071482450571769570306, \ -0.40305175512348630648107738, \ -0.29200483948595689514283538, \ -0.17685882035689018396905775, \ -0.05923009342931320709371858, \ 0.05923009342931320709371858, \ 0.17685882035689018396905775, \ 0.29200483948595689514283538, \ 0.40305175512348630648107738, \ 0.50844071482450571769570306, \ 0.60669229301761806323197875, \ 0.69642726041995726486381391, \ 0.77638594882067885619296725, \ 0.84544594278849801879750706, \ 0.90263786198430707421766560, \ 0.94715906666171425013591528, \ 0.97838544595647099110058035, \ 0.99588570114561692900321696 \ ] ) w = np.array ( [ \ 0.010551372617343007155651187685, \ 0.024417851092631908789615827520, \ 0.037962383294362763950303141249, \ 0.050975825297147811998319900724, \ 0.063274046329574835539453689907, \ 0.07468414976565974588707579610, \ 0.08504589431348523921044776508, \ 0.09421380035591414846366488307, \ 0.10205916109442542323841407025, \ 0.10847184052857659065657942673, \ 0.11336181654631966654944071844, \ 0.11666044348529658204466250754, \ 0.11832141527926227651637108570, \ 0.11832141527926227651637108570, \ 0.11666044348529658204466250754, \ 0.11336181654631966654944071844, \ 0.10847184052857659065657942673, \ 0.10205916109442542323841407025, \ 0.09421380035591414846366488307, \ 0.08504589431348523921044776508, \ 0.07468414976565974588707579610, \ 0.063274046329574835539453689907, \ 0.050975825297147811998319900724, \ 0.037962383294362763950303141249, \ 0.024417851092631908789615827520, \ 0.010551372617343007155651187685 \ ] ) elif ( n == 27 ): x = np.array ( [ \ -0.99617926288898856693888721, \ -0.97992347596150122285587336, \ -0.95090055781470500685190803, \ -0.90948232067749110430064502, \ -0.85620790801829449030273722, \ -0.79177163907050822714439734, \ -0.71701347373942369929481621, \ -0.63290797194649514092773464, \ -0.54055156457945689490030094, \ -0.44114825175002688058597416, \ -0.33599390363850889973031903, \ -0.22645936543953685885723911, \ -0.11397258560952996693289498, \ 0.00000000000000000000000000, \ 0.11397258560952996693289498, \ 0.22645936543953685885723911, \ 0.33599390363850889973031903, \ 0.44114825175002688058597416, \ 0.54055156457945689490030094, \ 0.63290797194649514092773464, \ 0.71701347373942369929481621, \ 0.79177163907050822714439734, \ 0.85620790801829449030273722, \ 0.90948232067749110430064502, \ 0.95090055781470500685190803, \ 0.97992347596150122285587336, \ 0.99617926288898856693888721 \ ] ) w = np.array ( [ \ 0.0097989960512943602611500550912, \ 0.022686231596180623196034206447, \ 0.035297053757419711022578289305, \ 0.047449412520615062704096710114, \ 0.058983536859833599110300833720, \ 0.069748823766245592984322888357, \ 0.079604867773057771263074959010, \ 0.088423158543756950194322802854, \ 0.096088727370028507565652646558, \ 0.102501637817745798671247711533, \ 0.107578285788533187212162984427, \ 0.111252488356845192672163096043, \ 0.113476346108965148620369948092, \ 0.11422086737895698904504573690, \ 0.113476346108965148620369948092, \ 0.111252488356845192672163096043, \ 0.107578285788533187212162984427, \ 0.102501637817745798671247711533, \ 0.096088727370028507565652646558, \ 0.088423158543756950194322802854, \ 0.079604867773057771263074959010, \ 0.069748823766245592984322888357, \ 0.058983536859833599110300833720, \ 0.047449412520615062704096710114, \ 0.035297053757419711022578289305, \ 0.022686231596180623196034206447, \ 0.0097989960512943602611500550912 \ ] ) elif ( n == 28 ): x = np.array ( [ \ -0.99644249757395444995043639, \ -0.98130316537087275369455995, \ -0.95425928062893819725410184, \ -0.91563302639213207386968942, \ -0.86589252257439504894225457, \ -0.80564137091717917144788596, \ -0.73561087801363177202814451, \ -0.65665109403886496121989818, \ -0.56972047181140171930800328, \ -0.47587422495511826103441185, \ -0.37625151608907871022135721, \ -0.27206162763517807767682636, \ -0.16456928213338077128147178, \ -0.05507928988403427042651653, \ 0.05507928988403427042651653, \ 0.16456928213338077128147178, \ 0.27206162763517807767682636, \ 0.37625151608907871022135721, \ 0.47587422495511826103441185, \ 0.56972047181140171930800328, \ 0.65665109403886496121989818, \ 0.73561087801363177202814451, \ 0.80564137091717917144788596, \ 0.86589252257439504894225457, \ 0.91563302639213207386968942, \ 0.95425928062893819725410184, \ 0.98130316537087275369455995, \ 0.99644249757395444995043639 \ ] ) w = np.array ( [ \ 0.009124282593094517738816153923, \ 0.021132112592771259751500380993, \ 0.032901427782304379977630819171, \ 0.044272934759004227839587877653, \ 0.055107345675716745431482918227, \ 0.06527292396699959579339756678, \ 0.07464621423456877902393188717, \ 0.08311341722890121839039649824, \ 0.09057174439303284094218603134, \ 0.09693065799792991585048900610, \ 0.10211296757806076981421663851, \ 0.10605576592284641791041643700, \ 0.10871119225829413525357151930, \ 0.11004701301647519628237626560, \ 0.11004701301647519628237626560, \ 0.10871119225829413525357151930, \ 0.10605576592284641791041643700, \ 0.10211296757806076981421663851, \ 0.09693065799792991585048900610, \ 0.09057174439303284094218603134, \ 0.08311341722890121839039649824, \ 0.07464621423456877902393188717, \ 0.06527292396699959579339756678, \ 0.055107345675716745431482918227, \ 0.044272934759004227839587877653, \ 0.032901427782304379977630819171, \ 0.021132112592771259751500380993, \ 0.009124282593094517738816153923 \ ] ) elif ( n == 29 ): x = np.array ( [ \ -0.99667944226059658616319153, \ -0.98254550526141317487092602, \ -0.95728559577808772579820804, \ -0.92118023295305878509375344, \ -0.87463780492010279041779342, \ -0.81818548761525244498957221, \ -0.75246285173447713391261008, \ -0.67821453760268651515618501, \ -0.59628179713822782037958621, \ -0.50759295512422764210262792, \ -0.41315288817400866389070659, \ -0.31403163786763993494819592, \ -0.21135228616600107450637573, \ -0.10627823013267923017098239, \ 0.00000000000000000000000000, \ 0.10627823013267923017098239, \ 0.21135228616600107450637573, \ 0.31403163786763993494819592, \ 0.41315288817400866389070659, \ 0.50759295512422764210262792, \ 0.59628179713822782037958621, \ 0.67821453760268651515618501, \ 0.75246285173447713391261008, \ 0.81818548761525244498957221, \ 0.87463780492010279041779342, \ 0.92118023295305878509375344, \ 0.95728559577808772579820804, \ 0.98254550526141317487092602, \ 0.99667944226059658616319153 \ ] ) w = np.array ( [ \ 0.0085169038787464096542638133022, \ 0.019732085056122705983859801640, \ 0.030740492202093622644408525375, \ 0.041402062518682836104830010114, \ 0.051594826902497923912594381180, \ 0.061203090657079138542109848024, \ 0.070117933255051278569581486949, \ 0.078238327135763783828144888660, \ 0.085472257366172527545344849297, \ 0.091737757139258763347966411077, \ 0.096963834094408606301900074883, \ 0.101091273759914966121820546907, \ 0.104073310077729373913328471285, \ 0.105876155097320941406591327852, \ 0.10647938171831424424651112691, \ 0.105876155097320941406591327852, \ 0.104073310077729373913328471285, \ 0.101091273759914966121820546907, \ 0.096963834094408606301900074883, \ 0.091737757139258763347966411077, \ 0.085472257366172527545344849297, \ 0.078238327135763783828144888660, \ 0.070117933255051278569581486949, \ 0.061203090657079138542109848024, \ 0.051594826902497923912594381180, \ 0.041402062518682836104830010114, \ 0.030740492202093622644408525375, \ 0.019732085056122705983859801640, \ 0.0085169038787464096542638133022 \ ] ) elif ( n == 30 ): x = np.array ( [ \ -0.99689348407464954027163005, \ -0.98366812327974720997003258, \ -0.96002186496830751221687103, \ -0.92620004742927432587932428, \ -0.88256053579205268154311646, \ -0.82956576238276839744289812, \ -0.76777743210482619491797734, \ -0.69785049479331579693229239, \ -0.62052618298924286114047756, \ -0.53662414814201989926416979, \ -0.44703376953808917678060990, \ -0.35270472553087811347103721, \ -0.25463692616788984643980513, \ -0.15386991360858354696379467, \ -0.05147184255531769583302521, \ 0.05147184255531769583302521, \ 0.15386991360858354696379467, \ 0.25463692616788984643980513, \ 0.35270472553087811347103721, \ 0.44703376953808917678060990, \ 0.53662414814201989926416979, \ 0.62052618298924286114047756, \ 0.69785049479331579693229239, \ 0.76777743210482619491797734, \ 0.82956576238276839744289812, \ 0.88256053579205268154311646, \ 0.92620004742927432587932428, \ 0.96002186496830751221687103, \ 0.98366812327974720997003258, \ 0.99689348407464954027163005 \ ] ) w = np.array ( [ \ 0.007968192496166605615465883475, \ 0.018466468311090959142302131912, \ 0.028784707883323369349719179611, \ 0.038799192569627049596801936446, \ 0.048402672830594052902938140423, \ 0.057493156217619066481721689402, \ 0.06597422988218049512812851512, \ 0.07375597473770520626824385002, \ 0.08075589522942021535469493846, \ 0.08689978720108297980238753072, \ 0.09212252223778612871763270709, \ 0.09636873717464425963946862635, \ 0.09959342058679526706278028210, \ 0.10176238974840550459642895217, \ 0.10285265289355884034128563671, \ 0.10285265289355884034128563671, \ 0.10176238974840550459642895217, \ 0.09959342058679526706278028210, \ 0.09636873717464425963946862635, \ 0.09212252223778612871763270709, \ 0.08689978720108297980238753072, \ 0.08075589522942021535469493846, \ 0.07375597473770520626824385002, \ 0.06597422988218049512812851512, \ 0.057493156217619066481721689402, \ 0.048402672830594052902938140423, \ 0.038799192569627049596801936446, \ 0.028784707883323369349719179611, \ 0.018466468311090959142302131912, \ 0.007968192496166605615465883475 \ ] ) elif ( n == 31 ): x = np.array ( [ \ -0.99708748181947707405562655, \ -0.98468590966515248400246517, \ -0.96250392509294966178905240, \ -0.93075699789664816495694576, \ -0.88976002994827104337419201, \ -0.83992032014626734008690454, \ -0.78173314841662494040636002, \ -0.71577678458685328390597087, \ -0.64270672292426034618441820, \ -0.56324916140714926272094492, \ -0.47819378204490248044059404, \ -0.38838590160823294306135146, \ -0.29471806998170161661790390, \ -0.19812119933557062877241300, \ -0.09955531215234152032517479, \ 0.00000000000000000000000000, \ 0.09955531215234152032517479, \ 0.19812119933557062877241300, \ 0.29471806998170161661790390, \ 0.38838590160823294306135146, \ 0.47819378204490248044059404, \ 0.56324916140714926272094492, \ 0.64270672292426034618441820, \ 0.71577678458685328390597087, \ 0.78173314841662494040636002, \ 0.83992032014626734008690454, \ 0.88976002994827104337419201, \ 0.93075699789664816495694576, \ 0.96250392509294966178905240, \ 0.98468590966515248400246517, \ 0.99708748181947707405562655 \ ] ) w = np.array ( [ \ 0.0074708315792487758586968750322, \ 0.017318620790310582463157996087, \ 0.027009019184979421800608708092, \ 0.036432273912385464024392010468, \ 0.045493707527201102902315857895, \ 0.054103082424916853711666259087, \ 0.062174786561028426910343543687, \ 0.069628583235410366167756126255, \ 0.076390386598776616426357674901, \ 0.082392991761589263903823367432, \ 0.087576740608477876126198069695, \ 0.091890113893641478215362871607, \ 0.095290242912319512807204197488, \ 0.097743335386328725093474010979, \ 0.099225011226672307874875514429, \ 0.09972054479342645142753383373, \ 0.099225011226672307874875514429, \ 0.097743335386328725093474010979, \ 0.095290242912319512807204197488, \ 0.091890113893641478215362871607, \ 0.087576740608477876126198069695, \ 0.082392991761589263903823367432, \ 0.076390386598776616426357674901, \ 0.069628583235410366167756126255, \ 0.062174786561028426910343543687, \ 0.054103082424916853711666259087, \ 0.045493707527201102902315857895, \ 0.036432273912385464024392010468, \ 0.027009019184979421800608708092, \ 0.017318620790310582463157996087, \ 0.0074708315792487758586968750322 \ ] ) elif ( n == 32 ): x = np.array ( [ \ -0.99726386184948156354498113, \ -0.98561151154526833540017504, \ -0.96476225558750643077381193, \ -0.93490607593773968917091913, \ -0.89632115576605212396530724, \ -0.84936761373256997013369300, \ -0.79448379596794240696309730, \ -0.73218211874028968038742667, \ -0.66304426693021520097511517, \ -0.58771575724076232904074548, \ -0.50689990893222939002374747, \ -0.42135127613063534536411944, \ -0.33186860228212764977991681, \ -0.23928736225213707454460321, \ -0.14447196158279649348518637, \ -0.04830766568773831623481257, \ 0.04830766568773831623481257, \ 0.14447196158279649348518637, \ 0.23928736225213707454460321, \ 0.33186860228212764977991681, \ 0.42135127613063534536411944, \ 0.50689990893222939002374747, \ 0.58771575724076232904074548, \ 0.66304426693021520097511517, \ 0.73218211874028968038742667, \ 0.79448379596794240696309730, \ 0.84936761373256997013369300, \ 0.89632115576605212396530724, \ 0.93490607593773968917091913, \ 0.96476225558750643077381193, \ 0.98561151154526833540017504, \ 0.99726386184948156354498113 \ ] ) w = np.array ( [ \ 0.007018610009470096600407063739, \ 0.016274394730905670605170562206, \ 0.025392065309262059455752589789, \ 0.034273862913021433102687732252, \ 0.042835898022226680656878646606, \ 0.050998059262376176196163244690, \ 0.058684093478535547145283637300, \ 0.06582222277636184683765006371, \ 0.07234579410884850622539935648, \ 0.07819389578707030647174091883, \ 0.08331192422694675522219907460, \ 0.08765209300440381114277146275, \ 0.09117387869576388471286857711, \ 0.09384439908080456563918023767, \ 0.09563872007927485941908200220, \ 0.09654008851472780056676483006, \ 0.09654008851472780056676483006, \ 0.09563872007927485941908200220, \ 0.09384439908080456563918023767, \ 0.09117387869576388471286857711, \ 0.08765209300440381114277146275, \ 0.08331192422694675522219907460, \ 0.07819389578707030647174091883, \ 0.07234579410884850622539935648, \ 0.06582222277636184683765006371, \ 0.058684093478535547145283637300, \ 0.050998059262376176196163244690, \ 0.042835898022226680656878646606, \ 0.034273862913021433102687732252, \ 0.025392065309262059455752589789, \ 0.016274394730905670605170562206, \ 0.007018610009470096600407063739 \ ] ) elif ( n == 33 ): x = np.array ( [ \ -0.99742469424645521726616802, \ -0.98645572623064248811037570, \ -0.96682290968999276892837771, \ -0.93869437261116835035583512, \ -0.90231676774343358304053133, \ -0.85800965267650406464306148, \ -0.80616235627416658979620087, \ -0.74723049644956215785905512, \ -0.68173195996974278626821595, \ -0.61024234583637902730728751, \ -0.53338990478634764354889426, \ -0.45185001727245069572599328, \ -0.36633925774807334107022062, \ -0.27760909715249702940324807, \ -0.18643929882799157233579876, \ -0.09363106585473338567074292, \ 0.00000000000000000000000000, \ 0.09363106585473338567074292, \ 0.18643929882799157233579876, \ 0.27760909715249702940324807, \ 0.36633925774807334107022062, \ 0.45185001727245069572599328, \ 0.53338990478634764354889426, \ 0.61024234583637902730728751, \ 0.68173195996974278626821595, \ 0.74723049644956215785905512, \ 0.80616235627416658979620087, \ 0.85800965267650406464306148, \ 0.90231676774343358304053133, \ 0.93869437261116835035583512, \ 0.96682290968999276892837771, \ 0.98645572623064248811037570, \ 0.99742469424645521726616802 \ ] ) w = np.array ( [ \ 0.0066062278475873780586492352085, \ 0.015321701512934676127945768534, \ 0.023915548101749480350533257529, \ 0.032300358632328953281561447250, \ 0.040401541331669591563409790527, \ 0.048147742818711695670146880138, \ 0.055470846631663561284944495439, \ 0.062306482530317480031627725771, \ 0.068594572818656712805955073015, \ 0.074279854843954149342472175919, \ 0.079312364794886738363908384942, \ 0.083647876067038707613928014518, \ 0.087248287618844337607281670945, \ 0.090081958660638577239743705500, \ 0.092123986643316846213240977717, \ 0.093356426065596116160999126274, \ 0.09376844616020999656730454155, \ 0.093356426065596116160999126274, \ 0.092123986643316846213240977717, \ 0.090081958660638577239743705500, \ 0.087248287618844337607281670945, \ 0.083647876067038707613928014518, \ 0.079312364794886738363908384942, \ 0.074279854843954149342472175919, \ 0.068594572818656712805955073015, \ 0.062306482530317480031627725771, \ 0.055470846631663561284944495439, \ 0.048147742818711695670146880138, \ 0.040401541331669591563409790527, \ 0.032300358632328953281561447250, \ 0.023915548101749480350533257529, \ 0.015321701512934676127945768534, \ 0.0066062278475873780586492352085 \ ] ) elif ( n == 63 ): x = np.array ( [ \ -0.99928298402912378037893614, \ -0.99622401277797010860219336, \ -0.99072854689218946681089467, \ -0.98280881059372723486251141, \ -0.97248403469757002280196068, \ -0.95977944975894192707035417, \ -0.94472613404100980296637532, \ -0.92736092062184320544703138, \ -0.90772630277853155803695313, \ -0.88587032850785342629029846, \ -0.86184648236412371953961184, \ -0.83571355431950284347180777, \ -0.80753549577345676005146599, \ -0.7773812629903723355633302, \ -0.7453246483178474178293217, \ -0.7114440995848458078514315, \ -0.6758225281149860901311033, \ -0.6385471058213653850003070, \ -0.5997090518776252357390089, \ -0.5594034094862850132676978, \ -0.5177288132900332481244776, \ -0.4747872479948043999222123, \ -0.4306837987951116006620889, \ -0.3855263942122478924776150, \ -0.3394255419745844024688344, \ -0.2924940585862514400361572, \ -0.2448467932459533627484046, \ -0.1966003467915066845576275, \ -0.1478727863578719685698391, \ -0.0987833564469452795297037, \ -0.0494521871161596272342338, \ 0.0000000000000000000000000, \ 0.0494521871161596272342338, \ 0.0987833564469452795297037, \ 0.1478727863578719685698391, \ 0.1966003467915066845576275, \ 0.2448467932459533627484046, \ 0.2924940585862514400361572, \ 0.3394255419745844024688344, \ 0.3855263942122478924776150, \ 0.4306837987951116006620889, \ 0.4747872479948043999222123, \ 0.5177288132900332481244776, \ 0.5594034094862850132676978, \ 0.5997090518776252357390089, \ 0.6385471058213653850003070, \ 0.6758225281149860901311033, \ 0.7114440995848458078514315, \ 0.7453246483178474178293217, \ 0.7773812629903723355633302, \ 0.8075354957734567600514660, \ 0.8357135543195028434718078, \ 0.8618464823641237195396118, \ 0.8858703285078534262902985, \ 0.9077263027785315580369531, \ 0.9273609206218432054470314, \ 0.9447261340410098029663753, \ 0.9597794497589419270703542, \ 0.9724840346975700228019607, \ 0.9828088105937272348625114, \ 0.9907285468921894668108947, \ 0.9962240127779701086021934, \ 0.9992829840291237803789361 \ ] ) w = np.array ( [ \ 0.0018398745955770841170924455540, \ 0.0042785083468637618660784110826, \ 0.0067102917659601362519069307298, \ 0.0091259686763266563540586454218, \ 0.011519376076880041750750606149, \ 0.013884612616115610824866086368, \ 0.016215878410338338882283672975, \ 0.018507464460161270409260545805, \ 0.020753761258039090775341953421, \ 0.022949271004889933148942319562, \ 0.025088620553344986618630138068, \ 0.027166574359097933225189839439, \ 0.029178047208280526945551502154, \ 0.031118116622219817508215988557, \ 0.032982034883779341765683179672, \ 0.034765240645355877697180504643, \ 0.036463370085457289630452409788, \ 0.038072267584349556763638324928, \ 0.039587995891544093984807928149, \ 0.041006845759666398635110037009, \ 0.042325345020815822982505485403, \ 0.043540267083027590798964315704, \ 0.044648638825941395370332669517, \ 0.045647747876292608685885992609, \ 0.046535149245383696510395418747, \ 0.047308671312268919080604988339, \ 0.047966421137995131411052756195, \ 0.048506789097883847864090099146, \ 0.048928452820511989944709361549, \ 0.049230380423747560785043116988, \ 0.049411833039918178967039646117, \ 0.04947236662393102088866936042, \ 0.049411833039918178967039646117, \ 0.049230380423747560785043116988, \ 0.048928452820511989944709361549, \ 0.048506789097883847864090099146, \ 0.047966421137995131411052756195, \ 0.047308671312268919080604988339, \ 0.046535149245383696510395418747, \ 0.045647747876292608685885992609, \ 0.044648638825941395370332669517, \ 0.043540267083027590798964315704, \ 0.042325345020815822982505485403, \ 0.041006845759666398635110037009, \ 0.039587995891544093984807928149, \ 0.038072267584349556763638324928, \ 0.036463370085457289630452409788, \ 0.034765240645355877697180504643, \ 0.032982034883779341765683179672, \ 0.031118116622219817508215988557, \ 0.029178047208280526945551502154, \ 0.027166574359097933225189839439, \ 0.025088620553344986618630138068, \ 0.022949271004889933148942319562, \ 0.020753761258039090775341953421, \ 0.018507464460161270409260545805, \ 0.016215878410338338882283672975, \ 0.013884612616115610824866086368, \ 0.011519376076880041750750606149, \ 0.0091259686763266563540586454218, \ 0.0067102917659601362519069307298, \ 0.0042785083468637618660784110826, \ 0.0018398745955770841170924455540 \ ] ) elif ( n == 64 ): x = np.array ( [ \ -0.99930504173577213945690562, \ -0.99634011677195527934692450, \ -0.99101337147674432073938238, \ -0.98333625388462595693129930, \ -0.97332682778991096374185351, \ -0.96100879965205371891861412, \ -0.94641137485840281606248149, \ -0.92956917213193957582149015, \ -0.91052213707850280575638067, \ -0.88931544599511410585340404, \ -0.86599939815409281976078339, \ -0.8406292962525803627516915, \ -0.8132653151227975597419233, \ -0.7839723589433414076102205, \ -0.7528199072605318966118638, \ -0.7198818501716108268489402, \ -0.6852363130542332425635584, \ -0.6489654712546573398577612, \ -0.6111553551723932502488530, \ -0.5718956462026340342838781, \ -0.5312794640198945456580139, \ -0.4894031457070529574785263, \ -0.4463660172534640879849477, \ -0.4022701579639916036957668, \ -0.3572201583376681159504426, \ -0.3113228719902109561575127, \ -0.2646871622087674163739642, \ -0.2174236437400070841496487, \ -0.1696444204239928180373136, \ -0.1214628192961205544703765, \ -0.0729931217877990394495429, \ -0.0243502926634244325089558, \ 0.0243502926634244325089558, \ 0.0729931217877990394495429, \ 0.1214628192961205544703765, \ 0.1696444204239928180373136, \ 0.2174236437400070841496487, \ 0.2646871622087674163739642, \ 0.3113228719902109561575127, \ 0.3572201583376681159504426, \ 0.4022701579639916036957668, \ 0.4463660172534640879849477, \ 0.4894031457070529574785263, \ 0.5312794640198945456580139, \ 0.5718956462026340342838781, \ 0.6111553551723932502488530, \ 0.6489654712546573398577612, \ 0.6852363130542332425635584, \ 0.7198818501716108268489402, \ 0.7528199072605318966118638, \ 0.7839723589433414076102205, \ 0.8132653151227975597419233, \ 0.8406292962525803627516915, \ 0.8659993981540928197607834, \ 0.8893154459951141058534040, \ 0.9105221370785028057563807, \ 0.9295691721319395758214902, \ 0.9464113748584028160624815, \ 0.9610087996520537189186141, \ 0.9733268277899109637418535, \ 0.9833362538846259569312993, \ 0.9910133714767443207393824, \ 0.9963401167719552793469245, \ 0.9993050417357721394569056 \ ] ) w = np.array ( [ \ 0.0017832807216964329472960791450, \ 0.0041470332605624676352875357286, \ 0.006504457968978362856117360400, \ 0.008846759826363947723030914660, \ 0.011168139460131128818590493019, \ 0.013463047896718642598060766686, \ 0.015726030476024719321965995298, \ 0.017951715775697343085045302001, \ 0.020134823153530209372340316729, \ 0.022270173808383254159298330384, \ 0.024352702568710873338177550409, \ 0.026377469715054658671691792625, \ 0.028339672614259483227511305200, \ 0.030234657072402478867974059820, \ 0.032057928354851553585467504348, \ 0.033805161837141609391565482111, \ 0.035472213256882383810693146715, \ 0.037055128540240046040415101810, \ 0.038550153178615629128962496947, \ 0.039953741132720341386656926128, \ 0.041262563242623528610156297474, \ 0.042473515123653589007339767909, \ 0.043583724529323453376827860974, \ 0.044590558163756563060134710031, \ 0.045491627927418144479770996971, \ 0.046284796581314417295953249232, \ 0.046968182816210017325326285755, \ 0.047540165714830308662282206944, \ 0.04799938859645830772812617987, \ 0.04834476223480295716976952716, \ 0.04857546744150342693479906678, \ 0.04869095700913972038336539073, \ 0.04869095700913972038336539073, \ 0.04857546744150342693479906678, \ 0.04834476223480295716976952716, \ 0.04799938859645830772812617987, \ 0.047540165714830308662282206944, \ 0.046968182816210017325326285755, \ 0.046284796581314417295953249232, \ 0.045491627927418144479770996971, \ 0.044590558163756563060134710031, \ 0.043583724529323453376827860974, \ 0.042473515123653589007339767909, \ 0.041262563242623528610156297474, \ 0.039953741132720341386656926128, \ 0.038550153178615629128962496947, \ 0.037055128540240046040415101810, \ 0.035472213256882383810693146715, \ 0.033805161837141609391565482111, \ 0.032057928354851553585467504348, \ 0.030234657072402478867974059820, \ 0.028339672614259483227511305200, \ 0.026377469715054658671691792625, \ 0.024352702568710873338177550409, \ 0.022270173808383254159298330384, \ 0.020134823153530209372340316729, \ 0.017951715775697343085045302001, \ 0.015726030476024719321965995298, \ 0.013463047896718642598060766686, \ 0.011168139460131128818590493019, \ 0.008846759826363947723030914660, \ 0.006504457968978362856117360400, \ 0.0041470332605624676352875357286, \ 0.0017832807216964329472960791450 \ ] ) elif ( n == 65 ): x = np.array ( [ \ -0.99932609707541287726569361, \ -0.99645094806184916305579494, \ -0.99128527617680166872182118, \ -0.98383981218703494137763778, \ -0.97413153983355116907496789, \ -0.96218275471805523771198375, \ -0.94802092816840750637376974, \ -0.93167862822874933796567699, \ -0.91319344054284626173654692, \ -0.89260788050473893142328554, \ -0.8699692949264070361941320, \ -0.8453297528999302839424500, \ -0.8187459259226514534339191, \ -0.7902789574921218430473804, \ -0.7599943224419997868739828, \ -0.7279616763294246790119737, \ -0.6942546952139916335526225, \ -0.6589509061936251330409408, \ -0.6221315090854002415825996, \ -0.5838811896604873133271545, \ -0.5442879248622271385455725, \ -0.5034427804550068823410431, \ -0.4614397015691450576978341, \ -0.4183752966234090092641990, \ -0.3743486151220660120087939, \ -0.3294609198374864076452867, \ -0.2838154539022487306176554, \ -0.2375172033464168065707124, \ -0.1906726556261427697749124, \ -0.1433895546989751711312496, \ -0.0957766532091975056522186, \ -0.0479434623531718575225298, \ 0.0000000000000000000000000, \ 0.0479434623531718575225298, \ 0.0957766532091975056522186, \ 0.1433895546989751711312496, \ 0.1906726556261427697749124, \ 0.2375172033464168065707124, \ 0.2838154539022487306176554, \ 0.3294609198374864076452867, \ 0.3743486151220660120087939, \ 0.4183752966234090092641990, \ 0.4614397015691450576978341, \ 0.5034427804550068823410431, \ 0.5442879248622271385455725, \ 0.5838811896604873133271545, \ 0.6221315090854002415825996, \ 0.6589509061936251330409408, \ 0.6942546952139916335526225, \ 0.7279616763294246790119737, \ 0.7599943224419997868739828, \ 0.7902789574921218430473804, \ 0.8187459259226514534339191, \ 0.8453297528999302839424500, \ 0.8699692949264070361941320, \ 0.8926078805047389314232855, \ 0.9131934405428462617365469, \ 0.9316786282287493379656770, \ 0.9480209281684075063737697, \ 0.9621827547180552377119837, \ 0.9741315398335511690749679, \ 0.9838398121870349413776378, \ 0.9912852761768016687218212, \ 0.9964509480618491630557949, \ 0.9993260970754128772656936 \ ] ) w = np.array ( [ \ 0.0017292582513002508983395851463, \ 0.0040215241720037363470786599528, \ 0.0063079425789717545501888719039, \ 0.0085801482668814598936358121592, \ 0.0108326787895979686215140551272, \ 0.013060311639994846336168342922, \ 0.015257912146448310349265388145, \ 0.017420421997670248495365759969, \ 0.019542865836750062826837429313, \ 0.021620361284934062841654274667, \ 0.023648129691287236698780978994, \ 0.025621506938037758214084978694, \ 0.027535954088450343942499722327, \ 0.029387067789310668062644859210, \ 0.031170590380189142464431845777, \ 0.032882419676368574984049638008, \ 0.034518618398549058625221276859, \ 0.036075423225565273932166270524, \ 0.037549253448257709809772223198, \ 0.038936719204051197616673806364, \ 0.040234629273005533815446337743, \ 0.041439998417240293022686299233, \ 0.042550054246755802719217150803, \ 0.043562243595800486532284821661, \ 0.044474238395082974427323504000, \ 0.045283941026300230657128240574, \ 0.045989489146651696963893390818, \ 0.046589259972233498302255136790, \ 0.047081874010454522246006808290, \ 0.047466198232885503152644458740, \ 0.047741348681240621559038972227, \ 0.047906692500495862031347289176, \ 0.04796184939446661812070762137, \ 0.047906692500495862031347289176, \ 0.047741348681240621559038972227, \ 0.047466198232885503152644458740, \ 0.047081874010454522246006808290, \ 0.046589259972233498302255136790, \ 0.045989489146651696963893390818, \ 0.045283941026300230657128240574, \ 0.044474238395082974427323504000, \ 0.043562243595800486532284821661, \ 0.042550054246755802719217150803, \ 0.041439998417240293022686299233, \ 0.040234629273005533815446337743, \ 0.038936719204051197616673806364, \ 0.037549253448257709809772223198, \ 0.036075423225565273932166270524, \ 0.034518618398549058625221276859, \ 0.032882419676368574984049638008, \ 0.031170590380189142464431845777, \ 0.029387067789310668062644859210, \ 0.027535954088450343942499722327, \ 0.025621506938037758214084978694, \ 0.023648129691287236698780978994, \ 0.021620361284934062841654274667, \ 0.019542865836750062826837429313, \ 0.017420421997670248495365759969, \ 0.015257912146448310349265388145, \ 0.013060311639994846336168342922, \ 0.0108326787895979686215140551272, \ 0.0085801482668814598936358121592, \ 0.0063079425789717545501888719039, \ 0.0040215241720037363470786599528, \ 0.0017292582513002508983395851463 \ ] ) elif ( n == 127 ): x = np.array ( [ \ -0.9998221304153061462673512, \ -0.9990629343553118951383159, \ -0.9976975661898046210744170, \ -0.9957265513520272266354334, \ -0.9931510492545171473611308, \ -0.9899726145914841576077867, \ -0.9861931740169316667104383, \ -0.9818150208038141100334631, \ -0.9768408123430703268174439, \ -0.9712735681615291922889469, \ -0.9651166679452921210908251, \ -0.9583738494252387711491029, \ -0.9510492060778803105479076, \ -0.9431471846248148273454496, \ -0.9346725823247379685736349, \ -0.9256305440562338491274647, \ -0.9160265591914658093130886, \ -0.9058664582618213828024613, \ -0.8951564094170837089690438, \ -0.8839029146800265699452579, \ -0.8721128059985607114196375, \ -0.8597932410977408098120313, \ -0.8469516991340975984533393, \ -0.8335959761548995143795572, \ -0.8197341803650786741551191, \ -0.8053747272046802146665608, \ -0.7905263342398137999454500, \ -0.7751980158702023824449628, \ -0.7593990778565366715566637, \ -0.7431391116709545129205669, \ -0.7264279886740726855356929, \ -0.7092758541221045609994446, \ -0.6916931210077006701564414, \ -0.6736904637382504853466825, \ -0.6552788116554826302767651, \ -0.6364693424002972413476082, \ -0.6172734751268582838576392, \ -0.5977028635700652293844120, \ -0.5777693889706125800032517, \ -0.5574851528619322329218619, \ -0.5368624697233975674581664, \ -0.5159138595042493572772773, \ -0.4946520400227821173949402, \ -0.4730899192454052416450999, \ -0.4512405874502662273318986, \ -0.4291173092801933762625441, \ -0.4067335156897825634086729, \ -0.3841027957915169357790778, \ -0.3612388886058697060709248, \ -0.3381556747203985013760003, \ -0.3148671678628949814860148, \ -0.2913875063937056207945188, \ -0.2677309447223886208883435, \ -0.2439118446539178579707132, \ -0.2199446666696875424545234, \ -0.1958439611486108515042816, \ -0.1716243595336421650083449, \ -0.1473005654490856693893293, \ -0.1228873457740829717260337, \ -0.0983995216776989707510918, \ -0.0738519596210485452734404, \ -0.0492595623319266303153793, \ -0.0246372597574209446148971, \ 0.0000000000000000000000000, \ 0.0246372597574209446148971, \ 0.0492595623319266303153793, \ 0.0738519596210485452734404, \ 0.0983995216776989707510918, \ 0.1228873457740829717260337, \ 0.1473005654490856693893293, \ 0.1716243595336421650083449, \ 0.1958439611486108515042816, \ 0.2199446666696875424545234, \ 0.2439118446539178579707132, \ 0.2677309447223886208883435, \ 0.2913875063937056207945188, \ 0.3148671678628949814860148, \ 0.3381556747203985013760003, \ 0.3612388886058697060709248, \ 0.3841027957915169357790778, \ 0.4067335156897825634086729, \ 0.4291173092801933762625441, \ 0.4512405874502662273318986, \ 0.4730899192454052416450999, \ 0.4946520400227821173949402, \ 0.5159138595042493572772773, \ 0.5368624697233975674581664, \ 0.5574851528619322329218619, \ 0.5777693889706125800032517, \ 0.5977028635700652293844120, \ 0.6172734751268582838576392, \ 0.6364693424002972413476082, \ 0.6552788116554826302767651, \ 0.6736904637382504853466825, \ 0.6916931210077006701564414, \ 0.7092758541221045609994446, \ 0.7264279886740726855356929, \ 0.7431391116709545129205669, \ 0.7593990778565366715566637, \ 0.7751980158702023824449628, \ 0.7905263342398137999454500, \ 0.8053747272046802146665608, \ 0.8197341803650786741551191, \ 0.8335959761548995143795572, \ 0.8469516991340975984533393, \ 0.8597932410977408098120313, \ 0.8721128059985607114196375, \ 0.8839029146800265699452579, \ 0.8951564094170837089690438, \ 0.9058664582618213828024613, \ 0.9160265591914658093130886, \ 0.9256305440562338491274647, \ 0.9346725823247379685736349, \ 0.9431471846248148273454496, \ 0.9510492060778803105479076, \ 0.9583738494252387711491029, \ 0.965116667945292121090825, \ 0.971273568161529192288947, \ 0.976840812343070326817444, \ 0.981815020803814110033463, \ 0.986193174016931666710438, \ 0.989972614591484157607787, \ 0.993151049254517147361131, \ 0.995726551352027226635433, \ 0.997697566189804621074417, \ 0.999062934355311895138316, \ 0.999822130415306146267351 \ ] ) w = np.array ( [ \ 0.00045645726109586662791936519265, \ 0.00106227668695384869596523598532, \ 0.0016683488125171936761028862915, \ 0.0022734860707492547802810840776, \ 0.0028772587656289004082883197514, \ 0.0034792893810051465908910894100, \ 0.0040792095178254605327114733457, \ 0.0046766539777779034772638165663, \ 0.0052712596565634400891303815906, \ 0.0058626653903523901033648343751, \ 0.0064505120486899171845442463869, \ 0.0070344427036681608755685893033, \ 0.0076141028256526859356393930849, \ 0.0081891404887415730817235884719, \ 0.0087592065795403145773316804234, \ 0.0093239550065309714787536985834, \ 0.0098830429087554914716648010900, \ 0.0104361308631410052256731719977, \ 0.0109828830900689757887996573761, \ 0.011522967656921087154811609735, \ 0.012056056679400848183529562145, \ 0.012581826520465013101514365424, \ 0.013099957986718627426172681913, \ 0.013610136522139249906034237534, \ 0.014112052399003395774044161634, \ 0.014605400905893418351737288079, \ 0.015089882532666922992635733981, \ 0.015565203152273955098532590263, \ 0.016031074199309941802254151843, \ 0.016487212845194879399346060358, \ 0.016933342169871654545878815295, \ 0.017369191329918731922164721250, \ 0.017794495722974774231027912900, \ 0.018208997148375106468721469154, \ 0.018612443963902310429440419899, \ 0.019004591238555646611148901045, \ 0.019385200901246454628112623489, \ 0.019754041885329183081815217323, \ 0.020110890268880247225644623956, \ 0.020455529410639508279497065713, \ 0.020787750081531811812652137291, \ 0.021107350591688713643523847922, \ 0.021414136912893259295449693234, \ 0.021707922796373466052301324695, \ 0.021988529885872983756478409759, \ 0.022255787825930280235631416460, \ 0.022509534365300608085694429903, \ 0.022749615455457959852242553241, \ 0.022975885344117206754377437839, \ 0.023188206663719640249922582982, \ 0.023386450514828194170722043497, \ 0.023570496544381716050033676844, \ 0.023740233018760777777714726703, \ 0.023895556891620665983864481754, \ 0.024036373866450369675132086026, \ 0.024162598453819584716522917711, \ 0.024274154023278979833195063937, \ 0.024370972849882214952813561907, \ 0.024452996155301467956140198472, \ 0.024520174143511508275183033290, \ 0.024572466031020653286354137335, \ 0.024609840071630254092545634003, \ 0.024632273575707679066033370218, \ 0.02463975292396109441957941748, \ 0.024632273575707679066033370218, \ 0.024609840071630254092545634003, \ 0.024572466031020653286354137335, \ 0.024520174143511508275183033290, \ 0.024452996155301467956140198472, \ 0.024370972849882214952813561907, \ 0.024274154023278979833195063937, \ 0.024162598453819584716522917711, \ 0.024036373866450369675132086026, \ 0.023895556891620665983864481754, \ 0.023740233018760777777714726703, \ 0.023570496544381716050033676844, \ 0.023386450514828194170722043497, \ 0.023188206663719640249922582982, \ 0.022975885344117206754377437839, \ 0.022749615455457959852242553241, \ 0.022509534365300608085694429903, \ 0.022255787825930280235631416460, \ 0.021988529885872983756478409759, \ 0.021707922796373466052301324695, \ 0.021414136912893259295449693234, \ 0.021107350591688713643523847922, \ 0.020787750081531811812652137291, \ 0.020455529410639508279497065713, \ 0.020110890268880247225644623956, \ 0.019754041885329183081815217323, \ 0.019385200901246454628112623489, \ 0.019004591238555646611148901045, \ 0.018612443963902310429440419899, \ 0.018208997148375106468721469154, \ 0.017794495722974774231027912900, \ 0.017369191329918731922164721250, \ 0.016933342169871654545878815295, \ 0.016487212845194879399346060358, \ 0.016031074199309941802254151843, \ 0.015565203152273955098532590263, \ 0.015089882532666922992635733981, \ 0.014605400905893418351737288079, \ 0.014112052399003395774044161634, \ 0.013610136522139249906034237534, \ 0.013099957986718627426172681913, \ 0.012581826520465013101514365424, \ 0.012056056679400848183529562145, \ 0.011522967656921087154811609735, \ 0.0109828830900689757887996573761, \ 0.0104361308631410052256731719977, \ 0.0098830429087554914716648010900, \ 0.0093239550065309714787536985834, \ 0.0087592065795403145773316804234, \ 0.0081891404887415730817235884719, \ 0.0076141028256526859356393930849, \ 0.0070344427036681608755685893033, \ 0.0064505120486899171845442463869, \ 0.0058626653903523901033648343751, \ 0.0052712596565634400891303815906, \ 0.0046766539777779034772638165663, \ 0.0040792095178254605327114733457, \ 0.0034792893810051465908910894100, \ 0.0028772587656289004082883197514, \ 0.0022734860707492547802810840776, \ 0.0016683488125171936761028862915, \ 0.00106227668695384869596523598532, \ 0.00045645726109586662791936519265 \ ] ) elif ( n == 128 ): x = np.array ( [ \ -0.9998248879471319144736081, \ -0.9990774599773758950119878, \ -0.9977332486255140198821574, \ -0.9957927585349811868641612, \ -0.9932571129002129353034372, \ -0.9901278184917343833379303, \ -0.9864067427245862088712355, \ -0.9820961084357185360247656, \ -0.9771984914639073871653744, \ -0.9717168187471365809043384, \ -0.9656543664319652686458290, \ -0.9590147578536999280989185, \ -0.9518019613412643862177963, \ -0.9440202878302201821211114, \ -0.9356743882779163757831268, \ -0.9267692508789478433346245, \ -0.9173101980809605370364836, \ -0.9073028834017568139214859, \ -0.8967532880491581843864474, \ -0.8856677173453972174082924, \ -0.8740527969580317986954180, \ -0.8619154689395484605906323, \ -0.8492629875779689691636001, \ -0.8361029150609068471168753, \ -0.8224431169556438424645942, \ -0.8082917575079136601196422, \ -0.7936572947621932902433329, \ -0.7785484755064119668504941, \ -0.7629743300440947227797691, \ -0.7469441667970619811698824, \ -0.7304675667419088064717369, \ -0.7135543776835874133438599, \ -0.6962147083695143323850866, \ -0.6784589224477192593677557, \ -0.6602976322726460521059468, \ -0.6417416925623075571535249, \ -0.6228021939105849107615396, \ -0.6034904561585486242035732, \ -0.5838180216287630895500389, \ -0.5637966482266180839144308, \ -0.5434383024128103634441936, \ -0.5227551520511754784539479, \ -0.5017595591361444642896063, \ -0.4804640724041720258582757, \ -0.4588814198335521954490891, \ -0.4370245010371041629370429, \ -0.4149063795522750154922739, \ -0.3925402750332674427356482, \ -0.3699395553498590266165917, \ -0.3471177285976355084261628, \ -0.3240884350244133751832523, \ -0.3008654388776772026671541, \ -0.2774626201779044028062316, \ -0.2538939664226943208556180, \ -0.2301735642266599864109866, \ -0.2063155909020792171540580, \ -0.1823343059853371824103826, \ -0.1582440427142249339974755, \ -0.1340591994611877851175753, \ -0.1097942311276437466729747, \ -0.0854636405045154986364980, \ -0.0610819696041395681037870, \ -0.0366637909687334933302153, \ -0.0122236989606157641980521, \ 0.0122236989606157641980521, \ 0.0366637909687334933302153, \ 0.0610819696041395681037870, \ 0.0854636405045154986364980, \ 0.1097942311276437466729747, \ 0.1340591994611877851175753, \ 0.1582440427142249339974755, \ 0.1823343059853371824103826, \ 0.2063155909020792171540580, \ 0.2301735642266599864109866, \ 0.2538939664226943208556180, \ 0.2774626201779044028062316, \ 0.3008654388776772026671541, \ 0.3240884350244133751832523, \ 0.3471177285976355084261628, \ 0.3699395553498590266165917, \ 0.3925402750332674427356482, \ 0.4149063795522750154922739, \ 0.4370245010371041629370429, \ 0.4588814198335521954490891, \ 0.4804640724041720258582757, \ 0.5017595591361444642896063, \ 0.5227551520511754784539479, \ 0.5434383024128103634441936, \ 0.5637966482266180839144308, \ 0.5838180216287630895500389, \ 0.6034904561585486242035732, \ 0.6228021939105849107615396, \ 0.6417416925623075571535249, \ 0.6602976322726460521059468, \ 0.6784589224477192593677557, \ 0.6962147083695143323850866, \ 0.7135543776835874133438599, \ 0.7304675667419088064717369, \ 0.7469441667970619811698824, \ 0.7629743300440947227797691, \ 0.7785484755064119668504941, \ 0.7936572947621932902433329, \ 0.8082917575079136601196422, \ 0.8224431169556438424645942, \ 0.8361029150609068471168753, \ 0.8492629875779689691636001, \ 0.8619154689395484605906323, \ 0.8740527969580317986954180, \ 0.8856677173453972174082924, \ 0.8967532880491581843864474, \ 0.9073028834017568139214859, \ 0.9173101980809605370364836, \ 0.926769250878947843334625, \ 0.935674388277916375783127, \ 0.944020287830220182121111, \ 0.951801961341264386217796, \ 0.959014757853699928098919, \ 0.965654366431965268645829, \ 0.971716818747136580904338, \ 0.977198491463907387165374, \ 0.982096108435718536024766, \ 0.986406742724586208871236, \ 0.990127818491734383337930, \ 0.993257112900212935303437, \ 0.995792758534981186864161, \ 0.997733248625514019882157, \ 0.999077459977375895011988, \ 0.999824887947131914473608 \ ] ) w = np.array ( [ \ 0.00044938096029209037639429223999, \ 0.0010458126793403487793128516001, \ 0.0016425030186690295387908755948, \ 0.0022382884309626187436220542727, \ 0.0028327514714579910952857346468, \ 0.0034255260409102157743377846601, \ 0.0040162549837386423131943434863, \ 0.0046045842567029551182905419803, \ 0.0051901618326763302050707671348, \ 0.0057726375428656985893346176261, \ 0.006351663161707188787214327826, \ 0.006926892566898813563426670360, \ 0.007497981925634728687671962688, \ 0.008064589890486057972928598698, \ 0.008626377798616749704978843782, \ 0.009183009871660874334478743688, \ 0.009734153415006805863548266094, \ 0.010279479015832157133215340326, \ 0.010818660739503076247659646277, \ 0.011351376324080416693281668453, \ 0.011877307372740279575891106926, \ 0.012396139543950922968821728197, \ 0.012907562739267347220442834004, \ 0.013411271288616332314488951616, \ 0.013906964132951985244288007396, \ 0.014394345004166846176823892009, \ 0.014873122602147314252385498520, \ 0.015343010768865144085990853741, \ 0.015803728659399346858965631687, \ 0.016255000909785187051657456477, \ 0.016696557801589204589091507954, \ 0.017128135423111376830680987619, \ 0.017549475827117704648706925634, \ 0.017960327185008685940196927525, \ 0.018360443937331343221289290991, \ 0.018749586940544708650919548474, \ 0.019127523609950945486518531668, \ 0.019494028058706602823021918681, \ 0.019848881232830862219944413265, \ 0.020191871042130041180673158406, \ 0.020522792486960069432284967788, \ 0.020841447780751149113583948423, \ 0.021147646468221348537019535180, \ 0.021441205539208460137111853878, \ 0.021721949538052075375260957768, \ 0.021989710668460491434122106599, \ 0.022244328893799765104629133607, \ 0.022485652032744966871824603941, \ 0.022713535850236461309712635923, \ 0.022927844143686846920410987209, \ 0.023128448824387027879297902403, \ 0.023315229994062760122415671273, \ 0.023488076016535913153025273282, \ 0.023646883584447615143651392303, \ 0.023791557781003400638780709885, \ 0.023922012136703455672450408817, \ 0.024038168681024052637587316820, \ 0.024139957989019284997716653890, \ 0.024227319222815248120093308442, \ 0.024300200167971865323442606364, \ 0.024358557264690625853268520246, \ 0.024402355633849582093297989694, \ 0.02443156909785004505484856143, \ 0.02444618019626251821132585261, \ 0.02444618019626251821132585261, \ 0.02443156909785004505484856143, \ 0.024402355633849582093297989694, \ 0.024358557264690625853268520246, \ 0.024300200167971865323442606364, \ 0.024227319222815248120093308442, \ 0.024139957989019284997716653890, \ 0.024038168681024052637587316820, \ 0.023922012136703455672450408817, \ 0.023791557781003400638780709885, \ 0.023646883584447615143651392303, \ 0.023488076016535913153025273282, \ 0.023315229994062760122415671273, \ 0.023128448824387027879297902403, \ 0.022927844143686846920410987209, \ 0.022713535850236461309712635923, \ 0.022485652032744966871824603941, \ 0.022244328893799765104629133607, \ 0.021989710668460491434122106599, \ 0.021721949538052075375260957768, \ 0.021441205539208460137111853878, \ 0.021147646468221348537019535180, \ 0.020841447780751149113583948423, \ 0.020522792486960069432284967788, \ 0.020191871042130041180673158406, \ 0.019848881232830862219944413265, \ 0.019494028058706602823021918681, \ 0.019127523609950945486518531668, \ 0.018749586940544708650919548474, \ 0.018360443937331343221289290991, \ 0.017960327185008685940196927525, \ 0.017549475827117704648706925634, \ 0.017128135423111376830680987619, \ 0.016696557801589204589091507954, \ 0.016255000909785187051657456477, \ 0.015803728659399346858965631687, \ 0.015343010768865144085990853741, \ 0.014873122602147314252385498520, \ 0.014394345004166846176823892009, \ 0.013906964132951985244288007396, \ 0.013411271288616332314488951616, \ 0.012907562739267347220442834004, \ 0.012396139543950922968821728197, \ 0.011877307372740279575891106926, \ 0.011351376324080416693281668453, \ 0.010818660739503076247659646277, \ 0.010279479015832157133215340326, \ 0.009734153415006805863548266094, \ 0.009183009871660874334478743688, \ 0.008626377798616749704978843782, \ 0.008064589890486057972928598698, \ 0.007497981925634728687671962688, \ 0.006926892566898813563426670360, \ 0.006351663161707188787214327826, \ 0.0057726375428656985893346176261, \ 0.0051901618326763302050707671348, \ 0.0046045842567029551182905419803, \ 0.0040162549837386423131943434863, \ 0.0034255260409102157743377846601, \ 0.0028327514714579910952857346468, \ 0.0022382884309626187436220542727, \ 0.0016425030186690295387908755948, \ 0.0010458126793403487793128516001, \ 0.00044938096029209037639429223999 \ ] ) elif ( n == 129 ): x = np.array ( [ \ -0.9998275818477487191077441, \ -0.9990916504696409986514389, \ -0.9977681080525852721429460, \ -0.9958574393142831982149111, \ -0.9933607326210712814854011, \ -0.9902794486488178389207689, \ -0.9866153978313475022005761, \ -0.9823707352517413115507418, \ -0.9775479582993672474447814, \ -0.9721499048427034297274163, \ -0.9661797514202097197778763, \ -0.9596410113101918904168119, \ -0.9525375324342090471027732, \ -0.9448734950776734726784764, \ -0.9366534094216514605284616, \ -0.9278821128840036204317296, \ -0.9185647672698286252225115, \ -0.9087068557320696331245539, \ -0.8983141795436338850435985, \ -0.8873928546826803665034968, \ -0.8759493082329433892035217, \ -0.8639902746011257878940216, \ -0.8515227915535356930243826, \ -0.8385541960742664442975407, \ -0.8250921200473358809210133, \ -0.8111444857653120742087717, \ -0.7967195012670592680339606, \ -0.7818256555073413245387500, \ -0.7664717133611208816717785, \ -0.7506667104654910227632368, \ -0.7344199479022727047791516, \ -0.7177409867244055767721220, \ -0.7006396423293521790044710, \ -0.6831259786828258512462248, \ -0.6652103023962409818802202, \ -0.6469031566613704719753373, \ -0.6282153150457794374886895, \ -0.6091577751526861909563306, \ -0.5897417521489813916767844, \ -0.5699786721652138894754096, \ -0.5498801655714271702189358, \ -0.5294580601328034000099406, \ -0.5087243740491428186199463, \ -0.4876913088822746111853066, \ -0.4663712423755613514331869, \ -0.4447767211697226217818454, \ -0.4229204534192644388475065, \ -0.4008153013138596117693121, \ -0.3784742735090801012801265, \ -0.3559105174709357969672656, \ -0.3331373117387248575049982, \ -0.3101680581107488341147318, \ -0.2870162737574911929568755, \ -0.2636955832669005409666949, \ -0.2402197106264598167721148, \ -0.2166024711467599103221439, \ -0.1928577633313305998663880, \ -0.1689995606975133227390302, \ -0.1450419035531891084328306, \ -0.1209988907342009817690539, \ -0.0968846713073332753086909, \ -0.0727134362437305599118207, \ -0.0484994100676562986191764, \ -0.0242568424855058415749954, \ 0.0000000000000000000000000, \ 0.0242568424855058415749954, \ 0.0484994100676562986191764, \ 0.0727134362437305599118207, \ 0.0968846713073332753086909, \ 0.1209988907342009817690539, \ 0.1450419035531891084328306, \ 0.1689995606975133227390302, \ 0.1928577633313305998663880, \ 0.2166024711467599103221439, \ 0.2402197106264598167721148, \ 0.2636955832669005409666949, \ 0.2870162737574911929568755, \ 0.3101680581107488341147318, \ 0.3331373117387248575049982, \ 0.3559105174709357969672656, \ 0.3784742735090801012801265, \ 0.4008153013138596117693121, \ 0.4229204534192644388475065, \ 0.4447767211697226217818454, \ 0.4663712423755613514331869, \ 0.4876913088822746111853066, \ 0.5087243740491428186199463, \ 0.5294580601328034000099406, \ 0.5498801655714271702189358, \ 0.5699786721652138894754096, \ 0.5897417521489813916767844, \ 0.6091577751526861909563306, \ 0.6282153150457794374886895, \ 0.6469031566613704719753373, \ 0.6652103023962409818802202, \ 0.6831259786828258512462248, \ 0.7006396423293521790044710, \ 0.7177409867244055767721220, \ 0.7344199479022727047791516, \ 0.7506667104654910227632368, \ 0.7664717133611208816717785, \ 0.7818256555073413245387500, \ 0.7967195012670592680339606, \ 0.8111444857653120742087717, \ 0.8250921200473358809210133, \ 0.8385541960742664442975407, \ 0.8515227915535356930243826, \ 0.8639902746011257878940216, \ 0.875949308232943389203522, \ 0.887392854682680366503497, \ 0.898314179543633885043599, \ 0.908706855732069633124554, \ 0.918564767269828625222511, \ 0.927882112884003620431730, \ 0.936653409421651460528462, \ 0.944873495077673472678476, \ 0.952537532434209047102773, \ 0.959641011310191890416812, \ 0.966179751420209719777876, \ 0.972149904842703429727416, \ 0.977547958299367247444781, \ 0.982370735251741311550742, \ 0.986615397831347502200576, \ 0.990279448648817838920769, \ 0.993360732621071281485401, \ 0.995857439314283198214911, \ 0.997768108052585272142946, \ 0.999091650469640998651439, \ 0.999827581847748719107744 \ ] ) w = np.array ( [ \ 0.00044246794182939296923668005717, \ 0.00102972844619622394463273519315, \ 0.0016172530556785534682413679271, \ 0.0022039015180966937075786419741, \ 0.0027892681877797554940944677057, \ 0.0033729979506246246117755709288, \ 0.0039547444682113562172392974765, \ 0.0045341644298525434513226874954, \ 0.0051109164669246267289761565766, \ 0.0056846609912469045788016012203, \ 0.0062550602724461408889348709586, \ 0.0068217785893519121070498527769, \ 0.0073844824072454014447165055698, \ 0.0079428405646668029041114107832, \ 0.0084965244635723279730542832506, \ 0.0090452082602137316404219313819, \ 0.0095885690555104190787301294510, \ 0.0101262870842733548093160774580, \ 0.0106580459029055185304204093001, \ 0.0111835325753305049735380697538, \ 0.011702437856964778185746436834, \ 0.012214456376582979416221105914, \ 0.012719286815944623465099036330, \ 0.013216632087061724231482387345, \ 0.013706199506993971244060563234, \ 0.014187700970062900419317230938, \ 0.014660853117380060971041027493, \ 0.015125377503587024690403432771, \ 0.015581000760707523415881287558, \ 0.016027454759014214436403950465, \ 0.016464476764814667467169189640, \ 0.016891809595063204177526208819, \ 0.017309201768707240731293596444, \ 0.017716407654678809269702031810, \ 0.018113187616443980503999783812, \ 0.018499308153024985727791918518, \ 0.018874542036411948181617592169, \ 0.019238668445283284085199492202, \ 0.019591473094956024580283987216, \ 0.019932748363489542089706675388, \ 0.020262293413868438317104423081, \ 0.020579914312192665948185517085, \ 0.020885424141805311409990024684, \ 0.021178643113290860912881038703, \ 0.021459398670279205389981598196, \ 0.021727525590993110687305178710, \ 0.021982866085479386179554968899, \ 0.022225269888466526554736910919, \ 0.022454594347794176432066564511, \ 0.022670704508362374313093970958, \ 0.022873473191551169638592083492, \ 0.023062781070063872924670495006, \ 0.023238516738149892544490435771, \ 0.023400576777165831146714346635, \ 0.023548865816436258377269094263, \ 0.023683296589378342897341543485, \ 0.023803789984857314051325299744, \ 0.023910275093742530302367230296, \ 0.024002689250636756075547029720, \ 0.024080978070754089272959634041, \ 0.024145095481924836783843156014, \ 0.024195003751708503129818111597, \ 0.024230673509598936275508460625, \ 0.024252083764308562906498864071, \ 0.02425922191612154143202867472, \ 0.024252083764308562906498864071, \ 0.024230673509598936275508460625, \ 0.024195003751708503129818111597, \ 0.024145095481924836783843156014, \ 0.024080978070754089272959634041, \ 0.024002689250636756075547029720, \ 0.023910275093742530302367230296, \ 0.023803789984857314051325299744, \ 0.023683296589378342897341543485, \ 0.023548865816436258377269094263, \ 0.023400576777165831146714346635, \ 0.023238516738149892544490435771, \ 0.023062781070063872924670495006, \ 0.022873473191551169638592083492, \ 0.022670704508362374313093970958, \ 0.022454594347794176432066564511, \ 0.022225269888466526554736910919, \ 0.021982866085479386179554968899, \ 0.021727525590993110687305178710, \ 0.021459398670279205389981598196, \ 0.021178643113290860912881038703, \ 0.020885424141805311409990024684, \ 0.020579914312192665948185517085, \ 0.020262293413868438317104423081, \ 0.019932748363489542089706675388, \ 0.019591473094956024580283987216, \ 0.019238668445283284085199492202, \ 0.018874542036411948181617592169, \ 0.018499308153024985727791918518, \ 0.018113187616443980503999783812, \ 0.017716407654678809269702031810, \ 0.017309201768707240731293596444, \ 0.016891809595063204177526208819, \ 0.016464476764814667467169189640, \ 0.016027454759014214436403950465, \ 0.015581000760707523415881287558, \ 0.015125377503587024690403432771, \ 0.014660853117380060971041027493, \ 0.014187700970062900419317230938, \ 0.013706199506993971244060563234, \ 0.013216632087061724231482387345, \ 0.012719286815944623465099036330, \ 0.012214456376582979416221105914, \ 0.011702437856964778185746436834, \ 0.0111835325753305049735380697538, \ 0.0106580459029055185304204093001, \ 0.0101262870842733548093160774580, \ 0.0095885690555104190787301294510, \ 0.0090452082602137316404219313819, \ 0.0084965244635723279730542832506, \ 0.0079428405646668029041114107832, \ 0.0073844824072454014447165055698, \ 0.0068217785893519121070498527769, \ 0.0062550602724461408889348709586, \ 0.0056846609912469045788016012203, \ 0.0051109164669246267289761565766, \ 0.0045341644298525434513226874954, \ 0.0039547444682113562172392974765, \ 0.0033729979506246246117755709288, \ 0.0027892681877797554940944677057, \ 0.0022039015180966937075786419741, \ 0.0016172530556785534682413679271, \ 0.00102972844619622394463273519315, \ 0.00044246794182939296923668005717 \ ] ) elif ( n == 255 ): x = np.array ( [ \ -0.999955705317563751730191, \ -0.999766621312000569367063, \ -0.999426474680169959344386, \ -0.998935241284654635142155, \ -0.998292986136967889228248, \ -0.997499804126615814044844, \ -0.996555814435198617028738, \ -0.995461159480026294089975, \ -0.994216004616630164799381, \ -0.992820538021989138984811, \ -0.991274970630385567164523, \ -0.989579536085920123498574, \ -0.987734490699732356281248, \ -0.985740113407419277752900, \ -0.983596705724776358640192, \ -0.981304591701017185126565, \ -0.978864117869068155239121, \ -0.976275653192735980815246, \ -0.973539589010643617645393, \ -0.970656338976880365477697, \ -0.967626338998338798105523, \ -0.964450047168726298761719, \ -0.961127943699247839572910, \ -0.957660530845962076295490, \ -0.954048332833816317950921, \ -0.950291895777368285733522, \ -0.946391787598204251752103, \ -0.942348597939064408301480, \ -0.938162938074687317626793, \ -0.933835440819386124349338, \ -0.929366760431369935739045, \ -0.924757572513824425220425, \ -0.920008573912766315142721, \ -0.915120482611686961035103, \ -0.910094037623000801254172, \ -0.904929998876314959753358, \ -0.899629147103536800144342, \ -0.894192283720836729335637, \ -0.888620230707484040924981, \ -0.882913830481574073645470, \ -0.877073945772665439532627, \ -0.871101459491346550796200, \ -0.864997274595751144137121, \ -0.858762313955042966785823, \ -0.852397520209890250084237, \ -0.845903855629951054143931, \ -0.839282301968391021084600, \ -0.832533860313455524647230, \ -0.825659550937118650611534, \ -0.818660413140831885432406, \ -0.811537505098395829833580, \ -0.804291903695978689734633, \ -0.796924704369305728807154, \ -0.789437020938044295117764, \ -0.781829985437409458675147, \ -0.774104747947015717207115, \ -0.766262476417000644100858, \ -0.758304356491446765092016, \ -0.750231591329128358931528, \ -0.742045401421610281838045, \ -0.733747024408726316001889, \ -0.725337714891464938687812, \ -0.716818744242290800531501, \ -0.708191400412930589382399, \ -0.699456987739652339456557, \ -0.690616826746067624571761, \ -0.681672253943486448787259, \ -0.672624621628855017806731, \ -0.663475297680306939970658, \ -0.654225665350358766508700, \ -0.644877123056781136890077, \ -0.635431084171177146547142, \ -0.625888976805299900901619, \ -0.616252243595141561442344, \ -0.606522341482826526536576, \ -0.596700741496341721653202, \ -0.586788928527137300685706, \ -0.576788401105631382036211, \ -0.566700671174652760010815, \ -0.556527263860855843833077, \ -0.546269717244142383159817, \ -0.535929582125124840335150, \ -0.525508421790666565699453, \ -0.515007811777534223035005, \ -0.504429339634198197635551, \ -0.493774604680816999489812, \ -0.483045217767441948626854, \ -0.472242801030478698742627, \ -0.461368987647442418771401, \ -0.450425421590043710043279, \ -0.439413757375642589040685, \ -0.428335659817108112494341, \ -0.417192803771121462605751, \ -0.405986873884960545511889, \ -0.394719564341804385683361, \ -0.383392578604595822734854, \ -0.372007629158501235092510, \ -0.360566437252006227074021, \ -0.349070732636686422161576, \ -0.337522253305692705554261, \ -0.325922745230990453444769, \ -0.314273962099392474845918, \ -0.302577665047425574167140, \ -0.290835622395070819082047, \ -0.279049609378417768508970, \ -0.267221407881273079721012, \ -0.255352806165764071686080, \ -0.243445598601977973686482, \ -0.231501585396677734059116, \ -0.219522572321135403508985, \ -0.207510370438124240859625, \ -0.195466795828110816293869, \ -0.183393669314688508087976, \ -0.171292816189293903533225, \ -0.159166065935247723154292, \ -0.147015251951161989456661, \ -0.134842211273755257250625, \ -0.122648784300117812092492, \ -0.110436814509468826540991, \ -0.098208148184447540736015, \ -0.085964634131980604256000, \ -0.073708123403767780288977, \ -0.061440469016428270850728, \ -0.049163525671349973093019, \ -0.036879149474284021657652, \ -0.024589197654727010541405, \ -0.012295528285133320036860, \ 0.000000000000000000000000, \ 0.012295528285133320036860, \ 0.024589197654727010541405, \ 0.036879149474284021657652, \ 0.049163525671349973093019, \ 0.061440469016428270850728, \ 0.073708123403767780288977, \ 0.085964634131980604256000, \ 0.098208148184447540736015, \ 0.110436814509468826540991, \ 0.122648784300117812092492, \ 0.134842211273755257250625, \ 0.147015251951161989456661, \ 0.159166065935247723154292, \ 0.171292816189293903533225, \ 0.183393669314688508087976, \ 0.195466795828110816293869, \ 0.207510370438124240859625, \ 0.219522572321135403508985, \ 0.231501585396677734059116, \ 0.243445598601977973686482, \ 0.255352806165764071686080, \ 0.267221407881273079721012, \ 0.279049609378417768508970, \ 0.290835622395070819082047, \ 0.302577665047425574167140, \ 0.314273962099392474845918, \ 0.325922745230990453444769, \ 0.337522253305692705554261, \ 0.349070732636686422161576, \ 0.360566437252006227074021, \ 0.372007629158501235092510, \ 0.383392578604595822734854, \ 0.394719564341804385683361, \ 0.405986873884960545511889, \ 0.417192803771121462605751, \ 0.428335659817108112494341, \ 0.439413757375642589040685, \ 0.450425421590043710043279, \ 0.461368987647442418771401, \ 0.472242801030478698742627, \ 0.483045217767441948626854, \ 0.493774604680816999489812, \ 0.504429339634198197635551, \ 0.515007811777534223035005, \ 0.525508421790666565699453, \ 0.535929582125124840335150, \ 0.546269717244142383159817, \ 0.556527263860855843833077, \ 0.566700671174652760010815, \ 0.576788401105631382036211, \ 0.586788928527137300685706, \ 0.596700741496341721653202, \ 0.606522341482826526536576, \ 0.616252243595141561442344, \ 0.625888976805299900901619, \ 0.635431084171177146547142, \ 0.644877123056781136890077, \ 0.654225665350358766508700, \ 0.663475297680306939970658, \ 0.672624621628855017806731, \ 0.681672253943486448787259, \ 0.690616826746067624571761, \ 0.699456987739652339456557, \ 0.708191400412930589382399, \ 0.716818744242290800531501, \ 0.725337714891464938687812, \ 0.733747024408726316001889, \ 0.742045401421610281838045, \ 0.750231591329128358931528, \ 0.758304356491446765092016, \ 0.766262476417000644100858, \ 0.774104747947015717207115, \ 0.781829985437409458675147, \ 0.789437020938044295117764, \ 0.796924704369305728807154, \ 0.804291903695978689734633, \ 0.811537505098395829833580, \ 0.818660413140831885432406, \ 0.825659550937118650611534, \ 0.832533860313455524647230, \ 0.839282301968391021084600, \ 0.845903855629951054143931, \ 0.852397520209890250084237, \ 0.858762313955042966785823, \ 0.864997274595751144137121, \ 0.871101459491346550796200, \ 0.877073945772665439532627, \ 0.882913830481574073645470, \ 0.888620230707484040924981, \ 0.894192283720836729335637, \ 0.899629147103536800144342, \ 0.904929998876314959753358, \ 0.910094037623000801254172, \ 0.915120482611686961035103, \ 0.920008573912766315142721, \ 0.924757572513824425220425, \ 0.929366760431369935739045, \ 0.933835440819386124349338, \ 0.938162938074687317626793, \ 0.942348597939064408301480, \ 0.946391787598204251752103, \ 0.950291895777368285733522, \ 0.954048332833816317950921, \ 0.957660530845962076295490, \ 0.961127943699247839572910, \ 0.964450047168726298761719, \ 0.967626338998338798105523, \ 0.970656338976880365477697, \ 0.973539589010643617645393, \ 0.976275653192735980815246, \ 0.978864117869068155239121, \ 0.981304591701017185126565, \ 0.983596705724776358640192, \ 0.985740113407419277752900, \ 0.987734490699732356281248, \ 0.989579536085920123498574, \ 0.991274970630385567164523, \ 0.992820538021989138984811, \ 0.994216004616630164799381, \ 0.995461159480026294089975, \ 0.996555814435198617028738, \ 0.997499804126615814044844, \ 0.998292986136967889228248, \ 0.998935241284654635142155, \ 0.999426474680169959344386, \ 0.999766621312000569367063, \ 0.999955705317563751730191 \ ] ) w = np.array ( [ \ 0.00011367361999142272115645954414, \ 0.00026459387119083065532790838855, \ 0.00041569762526823913616284210066, \ 0.00056675794564824918946626058353, \ 0.00071773647800611087798371518325, \ 0.00086860766611945667949717690640, \ 0.00101934797642732530281229369360, \ 0.0011699343729388079886897709773, \ 0.0013203439900221692090523602144, \ 0.0014705540427783843160097204304, \ 0.0016205417990415653896921100325, \ 0.0017702845706603213070421243905, \ 0.0019197597117132050055085980675, \ 0.0020689446195015801533643667413, \ 0.0022178167367540171700373764020, \ 0.0023663535543962867157201855305, \ 0.0025145326145997073931298921370, \ 0.0026623315139717112732749157331, \ 0.0028097279068204407457332299361, \ 0.0029566995084575002760043344138, \ 0.0031032240985191112621977893133, \ 0.0032492795242943133198690930777, \ 0.0033948437040533928255056951665, \ 0.0035398946303722552150296713510, \ 0.0036844103734499176530742235517, \ 0.0038283690844171626400743524999, \ 0.0039717489986349171988699773906, \ 0.0041145284389812475901826468094, \ 0.0042566858191260658425395494472, \ 0.0043981996467927779838546384780, \ 0.0045390485270061921259394035112, \ 0.0046792111653260640506279893190, \ 0.0048186663710656988918572043815, \ 0.0049573930604950563104281084148, \ 0.0050953702600278273039420404117, \ 0.0052325771093919661294970523234, \ 0.0053689928647831724787741258653, \ 0.0055045969020008281904902120813, \ 0.0056393687195659001929970994675, \ 0.0057732879418203275712033691864, \ 0.0059063343220074160130475409466, \ 0.0060384877453327676663371666884, \ 0.0061697282320052788060812561217, \ 0.0063000359402577418025981070425, \ 0.0064293911693465917826140832500, \ 0.0065577743625303421548456356354, \ 0.0066851661100262568757892743568, \ 0.0068115471519448109954345674817, \ 0.0069368983812014946719507501243, \ 0.0070612008464055194979848418291, \ 0.0071844357547249896530757997058, \ 0.0073065844747281040972736443146, \ 0.0074276285391999597581348419714, \ 0.0075475496479345294426435656724, \ 0.0076663296705013920315933272426, \ 0.0077839506489867963897419914623, \ 0.0079003948007086443529587296692, \ 0.0080156445209049821352946484008, \ 0.0081296823853955935356080649925, \ 0.0082424911532162924158504385939, \ 0.0083540537692255160718568405530, \ 0.0084643533666828253227353760036, \ 0.0085733732697989214067758505840, \ 0.0086810969962567940901133439612, \ 0.0087875082597036197689825483144, \ 0.0088925909722130327769834298578, \ 0.0089963292467173975949700110383, \ 0.0090987073994097142025303711406, \ 0.0091997099521147934060534414075, \ 0.0092993216346293436285393234867, \ 0.0093975273870306153500305317074, \ 0.0094943123619532541442165010292, \ 0.0095896619268340180657610209655, \ 0.0096835616661240200035669970076, \ 0.0097759973834681605268499842249, \ 0.0098669551038514217128483481814, \ 0.0099564210757116974565448593910, \ 0.0100443817730188408231888789497, \ 0.0101308238973196141129538950955, \ 0.0102157343797482324629939488415, \ 0.0102991003830021970147153502911, \ 0.0103809093032831189224876935085, \ 0.0104611487722022407735015844669, \ 0.0105398066586503673262517188088, \ 0.0106168710706319228563864391054, \ 0.0106923303570628578226139809571, \ 0.0107661731095321330311788312990, \ 0.0108383881640265149842990798832, \ 0.0109089646026184216450603134401, \ 0.0109778917551165634377595759712, \ 0.0110451592006791299277436662993, \ 0.0111107567693892782875426356195, \ 0.0111746745437926853557086684962, \ 0.0112369028603969308303734810332, \ 0.0112974323111324849102690558722, \ 0.0113562537447750795009464486204, \ 0.011413358268329247942299599697, \ 0.011468737248372824084374355981, \ 0.011522382312362197440930930031, \ 0.011574285349898127083439539046, \ 0.011624438513951922901227922331, \ 0.011672834222051808845465154244, \ 0.011719465157429288794653489478, \ 0.011764324270125341726399410909, \ 0.011807404778056278953532930501, \ 0.011848700168039102281222824051, \ 0.011888204196776208064673282076, \ 0.011925910891799288293359117699, \ 0.011961814552372285996633285380, \ 0.011995909750353268455989686823, \ 0.012028191331015087920350431142, \ 0.012058654413824705751531083631, \ 0.012087294393181062176578184854, \ 0.012114106939111380091025793650, \ 0.012139087997925797641334635250, \ 0.012162233792830230614908682534, \ 0.012183540824497371981177306326, \ 0.012203005871595742256331865516, \ 0.012220625991276710706457005806, \ 0.012236398519619413758040249691, \ 0.012250321072033503350218104906, \ 0.012262391543619664338660618398, \ 0.012272608109487846445745237751, \ 0.012280969225033162644659793962, \ 0.012287473626169412265336919908, \ 0.012292120329520193516690694701, \ 0.012294908632567576531532225710, \ 0.01229583811375831445681490730, \ 0.012294908632567576531532225710, \ 0.012292120329520193516690694701, \ 0.012287473626169412265336919908, \ 0.012280969225033162644659793962, \ 0.012272608109487846445745237751, \ 0.012262391543619664338660618398, \ 0.012250321072033503350218104906, \ 0.012236398519619413758040249691, \ 0.012220625991276710706457005806, \ 0.012203005871595742256331865516, \ 0.012183540824497371981177306326, \ 0.012162233792830230614908682534, \ 0.012139087997925797641334635250, \ 0.012114106939111380091025793650, \ 0.012087294393181062176578184854, \ 0.012058654413824705751531083631, \ 0.012028191331015087920350431142, \ 0.011995909750353268455989686823, \ 0.011961814552372285996633285380, \ 0.011925910891799288293359117699, \ 0.011888204196776208064673282076, \ 0.011848700168039102281222824051, \ 0.011807404778056278953532930501, \ 0.011764324270125341726399410909, \ 0.011719465157429288794653489478, \ 0.011672834222051808845465154244, \ 0.011624438513951922901227922331, \ 0.011574285349898127083439539046, \ 0.011522382312362197440930930031, \ 0.011468737248372824084374355981, \ 0.011413358268329247942299599697, \ 0.0113562537447750795009464486204, \ 0.0112974323111324849102690558722, \ 0.0112369028603969308303734810332, \ 0.0111746745437926853557086684962, \ 0.0111107567693892782875426356195, \ 0.0110451592006791299277436662993, \ 0.0109778917551165634377595759712, \ 0.0109089646026184216450603134401, \ 0.0108383881640265149842990798832, \ 0.0107661731095321330311788312990, \ 0.0106923303570628578226139809571, \ 0.0106168710706319228563864391054, \ 0.0105398066586503673262517188088, \ 0.0104611487722022407735015844669, \ 0.0103809093032831189224876935085, \ 0.0102991003830021970147153502911, \ 0.0102157343797482324629939488415, \ 0.0101308238973196141129538950955, \ 0.0100443817730188408231888789497, \ 0.0099564210757116974565448593910, \ 0.0098669551038514217128483481814, \ 0.0097759973834681605268499842249, \ 0.0096835616661240200035669970076, \ 0.0095896619268340180657610209655, \ 0.0094943123619532541442165010292, \ 0.0093975273870306153500305317074, \ 0.0092993216346293436285393234867, \ 0.0091997099521147934060534414075, \ 0.0090987073994097142025303711406, \ 0.0089963292467173975949700110383, \ 0.0088925909722130327769834298578, \ 0.0087875082597036197689825483144, \ 0.0086810969962567940901133439612, \ 0.0085733732697989214067758505840, \ 0.0084643533666828253227353760036, \ 0.0083540537692255160718568405530, \ 0.0082424911532162924158504385939, \ 0.0081296823853955935356080649925, \ 0.0080156445209049821352946484008, \ 0.0079003948007086443529587296692, \ 0.0077839506489867963897419914623, \ 0.0076663296705013920315933272426, \ 0.0075475496479345294426435656724, \ 0.0074276285391999597581348419714, \ 0.0073065844747281040972736443146, \ 0.0071844357547249896530757997058, \ 0.0070612008464055194979848418291, \ 0.0069368983812014946719507501243, \ 0.0068115471519448109954345674817, \ 0.0066851661100262568757892743568, \ 0.0065577743625303421548456356354, \ 0.0064293911693465917826140832500, \ 0.0063000359402577418025981070425, \ 0.0061697282320052788060812561217, \ 0.0060384877453327676663371666884, \ 0.0059063343220074160130475409466, \ 0.0057732879418203275712033691864, \ 0.0056393687195659001929970994675, \ 0.0055045969020008281904902120813, \ 0.0053689928647831724787741258653, \ 0.0052325771093919661294970523234, \ 0.0050953702600278273039420404117, \ 0.0049573930604950563104281084148, \ 0.0048186663710656988918572043815, \ 0.0046792111653260640506279893190, \ 0.0045390485270061921259394035112, \ 0.0043981996467927779838546384780, \ 0.0042566858191260658425395494472, \ 0.0041145284389812475901826468094, \ 0.0039717489986349171988699773906, \ 0.0038283690844171626400743524999, \ 0.0036844103734499176530742235517, \ 0.0035398946303722552150296713510, \ 0.0033948437040533928255056951665, \ 0.0032492795242943133198690930777, \ 0.0031032240985191112621977893133, \ 0.0029566995084575002760043344138, \ 0.0028097279068204407457332299361, \ 0.0026623315139717112732749157331, \ 0.0025145326145997073931298921370, \ 0.0023663535543962867157201855305, \ 0.0022178167367540171700373764020, \ 0.0020689446195015801533643667413, \ 0.0019197597117132050055085980675, \ 0.0017702845706603213070421243905, \ 0.0016205417990415653896921100325, \ 0.0014705540427783843160097204304, \ 0.0013203439900221692090523602144, \ 0.0011699343729388079886897709773, \ 0.00101934797642732530281229369360, \ 0.00086860766611945667949717690640, \ 0.00071773647800611087798371518325, \ 0.00056675794564824918946626058353, \ 0.00041569762526823913616284210066, \ 0.00026459387119083065532790838855, \ 0.00011367361999142272115645954414 \ ] ) elif ( n == 256 ): x = np.array ( [ \ -0.999956050018992230734801, \ -0.999768437409263186104879, \ -0.999430937466261408240854, \ -0.998943525843408856555026, \ -0.998306266473006444055500, \ -0.997519252756720827563409, \ -0.996582602023381540430504, \ -0.995496454481096356592647, \ -0.994260972922409664962878, \ -0.992876342608822117143534, \ -0.991342771207583086922189, \ -0.989660488745065218319244, \ -0.987829747564860608916488, \ -0.985850822286125956479245, \ -0.983724009760315496166686, \ -0.981449629025464405769303, \ -0.979028021257622038824238, \ -0.976459549719234155621011, \ -0.973744599704370405266079, \ -0.970883578480743029320923, \ -0.967876915228489454909004, \ -0.964725060975706430932612, \ -0.961428488530732144006407, \ -0.957987692411178129365790, \ -0.954403188769716241764448, \ -0.950675515316628276363852, \ -0.946805231239127481372052, \ -0.942792917117462443183076, \ -0.938639174837814804981926, \ -0.934344627502003094292477, \ -0.929909919334005641180246, \ -0.925335715583316202872730, \ -0.920622702425146495505047, \ -0.915771586857490384526670, \ -0.910783096595065011890907, \ -0.905657979960144647082682, \ -0.900397005770303544771620, \ -0.895000963223084577441223, \ -0.889470661777610888828677, \ -0.883806931033158284859826, \ -0.878010620604706543986435, \ -0.872082599995488289130046, \ -0.866023758466554519297515, \ -0.859835004903376350696173, \ -0.853517267679502965073036, \ -0.847071494517296207187072, \ -0.840498652345762713895068, \ -0.833799727155504894348444, \ -0.826975723850812514289093, \ -0.820027666098917067403478, \ -0.812956596176431543136410, \ -0.805763574812998623257389, \ -0.798449681032170758782543, \ -0.791016011989545994546707, \ -0.783463682808183820750670, \ -0.775793826411325739132053, \ -0.768007593352445635975891, \ -0.760106151642655454941907, \ -0.752090686575492059587530, \ -0.743962400549111568455683, \ -0.735722512885917834620373, \ -0.727372259649652126586894, \ -0.718912893459971448372640, \ -0.710345683304543313394566, \ -0.701671914348685159406084, \ -0.692892887742576960105342, \ -0.684009920426075953124877, \ -0.675024344931162763855919, \ -0.665937509182048559906408, \ -0.656750776292973221887500, \ -0.647465524363724862617016, \ -0.638083146272911368668689, \ -0.628605049469014975432210, \ -0.619032655759261219430968, \ -0.609367401096333939522311, \ -0.599610735362968321730388, \ -0.589764122154454300785786, \ -0.579829038559082944921832, \ -0.569806974936568759057668, \ -0.559699434694481145136907, \ -0.549507934062718557042427, \ -0.539234001866059181127936, \ -0.528879179294822261951476, \ -0.518445019673674476221662, \ -0.507933088228616036231925, \ -0.497344961852181477119512, \ -0.486682228866890350103621, \ -0.475946488786983306390738, \ -0.465139352078479313645570, \ -0.454262439917589998774455, \ -0.443317383947527357216926, \ -0.432305826033741309953441, \ -0.421229418017623824976812, \ -0.410089821468716550006434, \ -0.398888707435459127713463, \ -0.387627756194515583637985, \ -0.376308656998716390283056, \ -0.364933107823654018533465, \ -0.353502815112969989537790, \ -0.342019493522371636480730, \ -0.330484865662416976229187, \ -0.318900661840106275631683, \ -0.307268619799319076258610, \ -0.295590484460135614563787, \ -0.283868007657081741799766, \ -0.272102947876336609505245, \ -0.260297069991942541978561, \ -0.248452145001056666833243, \ -0.236569949758284018477508, \ -0.224652266709131967147878, \ -0.212700883622625957937040, \ -0.200717593323126670068001, \ -0.188704193421388826461504, \ -0.176662486044901997403722, \ -0.164594277567553849829285, \ -0.152501378338656395374607, \ -0.140385602411375885913025, \ -0.128248767270607094742050, \ -0.116092693560332804940735, \ -0.103919204810509403639197, \ -0.091730127163519552031146, \ -0.079527289100232965903227, \ -0.067312521165716400242290, \ -0.055087655694633984104561, \ -0.042854526536379098381242, \ -0.030614968779979029366279, \ -0.018370818478813665117926, \ -0.006123912375189529501170, \ 0.006123912375189529501170, \ 0.018370818478813665117926, \ 0.030614968779979029366279, \ 0.042854526536379098381242, \ 0.055087655694633984104561, \ 0.067312521165716400242290, \ 0.079527289100232965903227, \ 0.091730127163519552031146, \ 0.103919204810509403639197, \ 0.116092693560332804940735, \ 0.128248767270607094742050, \ 0.140385602411375885913025, \ 0.152501378338656395374607, \ 0.164594277567553849829285, \ 0.176662486044901997403722, \ 0.188704193421388826461504, \ 0.200717593323126670068001, \ 0.212700883622625957937040, \ 0.224652266709131967147878, \ 0.236569949758284018477508, \ 0.248452145001056666833243, \ 0.260297069991942541978561, \ 0.272102947876336609505245, \ 0.283868007657081741799766, \ 0.295590484460135614563787, \ 0.307268619799319076258610, \ 0.318900661840106275631683, \ 0.330484865662416976229187, \ 0.342019493522371636480730, \ 0.353502815112969989537790, \ 0.364933107823654018533465, \ 0.376308656998716390283056, \ 0.387627756194515583637985, \ 0.398888707435459127713463, \ 0.410089821468716550006434, \ 0.421229418017623824976812, \ 0.432305826033741309953441, \ 0.443317383947527357216926, \ 0.454262439917589998774455, \ 0.465139352078479313645570, \ 0.475946488786983306390738, \ 0.486682228866890350103621, \ 0.497344961852181477119512, \ 0.507933088228616036231925, \ 0.518445019673674476221662, \ 0.528879179294822261951476, \ 0.539234001866059181127936, \ 0.549507934062718557042427, \ 0.559699434694481145136907, \ 0.569806974936568759057668, \ 0.579829038559082944921832, \ 0.589764122154454300785786, \ 0.599610735362968321730388, \ 0.609367401096333939522311, \ 0.619032655759261219430968, \ 0.628605049469014975432210, \ 0.638083146272911368668689, \ 0.647465524363724862617016, \ 0.656750776292973221887500, \ 0.665937509182048559906408, \ 0.675024344931162763855919, \ 0.684009920426075953124877, \ 0.692892887742576960105342, \ 0.701671914348685159406084, \ 0.710345683304543313394566, \ 0.718912893459971448372640, \ 0.727372259649652126586894, \ 0.735722512885917834620373, \ 0.743962400549111568455683, \ 0.752090686575492059587530, \ 0.760106151642655454941907, \ 0.768007593352445635975891, \ 0.775793826411325739132053, \ 0.783463682808183820750670, \ 0.791016011989545994546707, \ 0.798449681032170758782543, \ 0.805763574812998623257389, \ 0.812956596176431543136410, \ 0.820027666098917067403478, \ 0.826975723850812514289093, \ 0.833799727155504894348444, \ 0.840498652345762713895068, \ 0.847071494517296207187072, \ 0.853517267679502965073036, \ 0.859835004903376350696173, \ 0.866023758466554519297515, \ 0.872082599995488289130046, \ 0.878010620604706543986435, \ 0.883806931033158284859826, \ 0.889470661777610888828677, \ 0.895000963223084577441223, \ 0.900397005770303544771620, \ 0.905657979960144647082682, \ 0.910783096595065011890907, \ 0.915771586857490384526670, \ 0.920622702425146495505047, \ 0.925335715583316202872730, \ 0.929909919334005641180246, \ 0.934344627502003094292477, \ 0.938639174837814804981926, \ 0.942792917117462443183076, \ 0.946805231239127481372052, \ 0.950675515316628276363852, \ 0.954403188769716241764448, \ 0.957987692411178129365790, \ 0.961428488530732144006407, \ 0.964725060975706430932612, \ 0.967876915228489454909004, \ 0.970883578480743029320923, \ 0.973744599704370405266079, \ 0.976459549719234155621011, \ 0.979028021257622038824238, \ 0.981449629025464405769303, \ 0.983724009760315496166686, \ 0.985850822286125956479245, \ 0.987829747564860608916488, \ 0.989660488745065218319244, \ 0.991342771207583086922189, \ 0.992876342608822117143534, \ 0.994260972922409664962878, \ 0.995496454481096356592647, \ 0.996582602023381540430504, \ 0.997519252756720827563409, \ 0.998306266473006444055500, \ 0.998943525843408856555026, \ 0.999430937466261408240854, \ 0.999768437409263186104879, \ 0.999956050018992230734801 \ ] ) w = np.array ( [ \ 0.00011278901782227217551253887725, \ 0.00026253494429644590628745756250, \ 0.00041246325442617632843218583774, \ 0.00056234895403140980281523674759, \ 0.0007121541634733206669089891511, \ 0.0008618537014200890378140934163, \ 0.0010114243932084404526058128414, \ 0.0011608435575677247239705981135, \ 0.0013100886819025044578316804271, \ 0.0014591373333107332010883864996, \ 0.0016079671307493272424499395690, \ 0.0017565557363307299936069145295, \ 0.0019048808534997184044191411746, \ 0.0020529202279661431745487818492, \ 0.0022006516498399104996848834189, \ 0.0023480529563273120170064609087, \ 0.0024951020347037068508395354372, \ 0.0026417768254274905641208292516, \ 0.0027880553253277068805747610763, \ 0.0029339155908297166460123254142, \ 0.0030793357411993375832053528316, \ 0.0032242939617941981570107134269, \ 0.0033687685073155510120191062489, \ 0.0035127377050563073309710549844, \ 0.0036561799581425021693892413052, \ 0.0037990737487662579981170192082, \ 0.0039413976414088336277290349840, \ 0.0040831302860526684085997759212, \ 0.0042242504213815362723565049060, \ 0.0043647368779680566815684200621, \ 0.0045045685814478970686417923159, \ 0.0046437245556800603139790923525, \ 0.0047821839258926913729317340448, \ 0.0049199259218138656695587765655, \ 0.0050569298807868423875578160762, \ 0.0051931752508692809303287536296, \ 0.0053286415939159303170811114788, \ 0.0054633085886443102775705318566, \ 0.0055971560336829100775514452572, \ 0.005730163850601437177384417555, \ 0.005862312086922653060661598801, \ 0.005993580919115338221127696870, \ 0.006123950655567932542389081187, \ 0.006253401739542401272063645975, \ 0.006381914752107880570375164275, \ 0.006509470415053660267809899951, \ 0.006636049593781065044590038355, \ 0.006761633300173798780927861108, \ 0.006886202695446320346713323775, \ 0.007009739092969822621234436194, \ 0.007132223961075390071672422986, \ 0.007253638925833913783829137214, \ 0.007373965773812346437572440695, \ 0.007493186454805883358599761133, \ 0.007611283084545659461618719618, \ 0.007728237947381555631110194958, \ 0.007844033498939711866810316151, \ 0.007958652368754348353613161227, \ 0.008072077362873499500946974804, \ 0.008184291466438269935619761004, \ 0.008295277846235225425171412553, \ 0.008405019853221535756180301698, \ 0.008513501025022490693838354790, \ 0.008620705088401014305368838410, \ 0.008726615961698807140336632217, \ 0.008831217757248750025318272685, \ 0.008934494783758207548408417085, \ 0.009036431548662873680227775572, \ 0.009137012760450806402000472219, \ 0.009236223330956302687378716714, \ 0.009334048377623269712466014486, \ 0.009430473225737752747352764482, \ 0.009525483410629284811829685754, \ 0.009619064679840727857162164401, \ 0.009711202995266279964249670496, \ 0.009801884535257327825498800250, \ 0.009891095696695828602630683809, \ 0.009978823097034910124733949495, \ 0.010065053576306383309460978930, \ 0.010149774199094865654634066042, \ 0.010232972256478219656954857160, \ 0.010314635267934015068260713997, \ 0.010394750983211728997101725205, \ 0.010473307384170403003569566927, \ 0.010550292686581481517533575536, \ 0.010625695341896561133961681801, \ 0.010699504038979785603048200583, \ 0.010771707705804626636653631927, \ 0.010842295511114795995293477058, \ 0.010911256866049039700796847788, \ 0.010978581425729570637988203448, \ 0.011044259090813901263517571044, \ 0.011108280009009843630460815451, \ 0.011170634576553449462710881938, \ 0.011231313439649668572656802083, \ 0.011290307495875509508367594121, \ 0.011347607895545491941625714297, \ 0.011403206043039185964847059552, \ 0.011457093598090639152334392298, \ 0.011509262477039497958586392439, \ 0.011559704854043635772668656950, \ 0.011608413162253105722084706677, \ 0.011655380094945242121298939730, \ 0.011700598606620740288189823359, \ 0.011744061914060550305376732759, \ 0.011785763497343426181690117627, \ 0.011825697100823977771160737958, \ 0.011863856734071078731904572908, \ 0.011900236672766489754287204237, \ 0.011934831459563562255873201696, \ 0.011967635904905893729007282670, \ 0.011998645087805811934536710071, \ 0.012027854356582571161267533498, \ 0.012055259329560149814347085327, \ 0.012080855895724544655975183976, \ 0.012104640215340463097757829736, \ 0.012126608720527321034718492205, \ 0.012146758115794459815559837664, \ 0.012165085378535502061307291839, \ 0.012181587759481772174047585032, \ 0.012196262783114713518180974196, \ 0.012209108248037240407514094371, \ 0.012220122227303969191708737227, \ 0.012229303068710278904146266083, \ 0.012236649395040158109242574767, \ 0.012242160104272800769728083260, \ 0.012245834369747920142463857550, \ 0.01224767164028975590407032649, \ 0.01224767164028975590407032649, \ 0.012245834369747920142463857550, \ 0.012242160104272800769728083260, \ 0.012236649395040158109242574767, \ 0.012229303068710278904146266083, \ 0.012220122227303969191708737227, \ 0.012209108248037240407514094371, \ 0.012196262783114713518180974196, \ 0.012181587759481772174047585032, \ 0.012165085378535502061307291839, \ 0.012146758115794459815559837664, \ 0.012126608720527321034718492205, \ 0.012104640215340463097757829736, \ 0.012080855895724544655975183976, \ 0.012055259329560149814347085327, \ 0.012027854356582571161267533498, \ 0.011998645087805811934536710071, \ 0.011967635904905893729007282670, \ 0.011934831459563562255873201696, \ 0.011900236672766489754287204237, \ 0.011863856734071078731904572908, \ 0.011825697100823977771160737958, \ 0.011785763497343426181690117627, \ 0.011744061914060550305376732759, \ 0.011700598606620740288189823359, \ 0.011655380094945242121298939730, \ 0.011608413162253105722084706677, \ 0.011559704854043635772668656950, \ 0.011509262477039497958586392439, \ 0.011457093598090639152334392298, \ 0.011403206043039185964847059552, \ 0.011347607895545491941625714297, \ 0.011290307495875509508367594121, \ 0.011231313439649668572656802083, \ 0.011170634576553449462710881938, \ 0.011108280009009843630460815451, \ 0.011044259090813901263517571044, \ 0.010978581425729570637988203448, \ 0.010911256866049039700796847788, \ 0.010842295511114795995293477058, \ 0.010771707705804626636653631927, \ 0.010699504038979785603048200583, \ 0.010625695341896561133961681801, \ 0.010550292686581481517533575536, \ 0.010473307384170403003569566927, \ 0.010394750983211728997101725205, \ 0.010314635267934015068260713997, \ 0.010232972256478219656954857160, \ 0.010149774199094865654634066042, \ 0.010065053576306383309460978930, \ 0.009978823097034910124733949495, \ 0.009891095696695828602630683809, \ 0.009801884535257327825498800250, \ 0.009711202995266279964249670496, \ 0.009619064679840727857162164401, \ 0.009525483410629284811829685754, \ 0.009430473225737752747352764482, \ 0.009334048377623269712466014486, \ 0.009236223330956302687378716714, \ 0.009137012760450806402000472219, \ 0.009036431548662873680227775572, \ 0.008934494783758207548408417085, \ 0.008831217757248750025318272685, \ 0.008726615961698807140336632217, \ 0.008620705088401014305368838410, \ 0.008513501025022490693838354790, \ 0.008405019853221535756180301698, \ 0.008295277846235225425171412553, \ 0.008184291466438269935619761004, \ 0.008072077362873499500946974804, \ 0.007958652368754348353613161227, \ 0.007844033498939711866810316151, \ 0.007728237947381555631110194958, \ 0.007611283084545659461618719618, \ 0.007493186454805883358599761133, \ 0.007373965773812346437572440695, \ 0.007253638925833913783829137214, \ 0.007132223961075390071672422986, \ 0.007009739092969822621234436194, \ 0.006886202695446320346713323775, \ 0.006761633300173798780927861108, \ 0.006636049593781065044590038355, \ 0.006509470415053660267809899951, \ 0.006381914752107880570375164275, \ 0.006253401739542401272063645975, \ 0.006123950655567932542389081187, \ 0.005993580919115338221127696870, \ 0.005862312086922653060661598801, \ 0.005730163850601437177384417555, \ 0.0055971560336829100775514452572, \ 0.0054633085886443102775705318566, \ 0.0053286415939159303170811114788, \ 0.0051931752508692809303287536296, \ 0.0050569298807868423875578160762, \ 0.0049199259218138656695587765655, \ 0.0047821839258926913729317340448, \ 0.0046437245556800603139790923525, \ 0.0045045685814478970686417923159, \ 0.0043647368779680566815684200621, \ 0.0042242504213815362723565049060, \ 0.0040831302860526684085997759212, \ 0.0039413976414088336277290349840, \ 0.0037990737487662579981170192082, \ 0.0036561799581425021693892413052, \ 0.0035127377050563073309710549844, \ 0.0033687685073155510120191062489, \ 0.0032242939617941981570107134269, \ 0.0030793357411993375832053528316, \ 0.0029339155908297166460123254142, \ 0.0027880553253277068805747610763, \ 0.0026417768254274905641208292516, \ 0.0024951020347037068508395354372, \ 0.0023480529563273120170064609087, \ 0.0022006516498399104996848834189, \ 0.0020529202279661431745487818492, \ 0.0019048808534997184044191411746, \ 0.0017565557363307299936069145295, \ 0.0016079671307493272424499395690, \ 0.0014591373333107332010883864996, \ 0.0013100886819025044578316804271, \ 0.0011608435575677247239705981135, \ 0.0010114243932084404526058128414, \ 0.0008618537014200890378140934163, \ 0.0007121541634733206669089891511, \ 0.00056234895403140980281523674759, \ 0.00041246325442617632843218583774, \ 0.00026253494429644590628745756250, \ 0.00011278901782227217551253887725 \ ] ) elif ( n == 257 ): x = np.array ( [ \ -0.999956390712330402472857, \ -0.999770232390338019056053, \ -0.999435348366365078441838, \ -0.998951714093223210129834, \ -0.998319392445383847808766, \ -0.997538475365520218731818, \ -0.996609078365487004512326, \ -0.995531339486830143483750, \ -0.994305419008553630362377, \ -0.992931499332908653172844, \ -0.991409784923101705201254, \ -0.989740502257507526030375, \ -0.987923899788618253106809, \ -0.985960247902290665366669, \ -0.983849838875444644048531, \ -0.981592986831381877693095, \ -0.979190027692327124191591, \ -0.976641319128992592610888, \ -0.973947240507062326750976, \ -0.971108192830542793021113, \ -0.968124598681952354372943, \ -0.964996902159337170373447, \ -0.961725568810109767190665, \ -0.958311085561711847074814, \ -0.954753960649106318830855, \ -0.951054723539105826691801, \ -0.947213924851546682950881, \ -0.943232136277318328151464, \ -0.939109950493259404355123, \ -0.934847981073932324370129, \ -0.930446862400288909805510, \ -0.925907249565240289235888, \ -0.921229818276144817520964, \ -0.916415264754228313295468, \ -0.911464305630951423630955, \ -0.906377677841339419411308, \ -0.901156138514290206476301, \ -0.895800464859876809085345, \ -0.890311454053661045810287, \ -0.884689923118035575018750, \ -0.878936708800611938658765, \ -0.873052667449672679799858, \ -0.867038674886706051812473, \ -0.860895626276042275514686, \ -0.854624435991610735314055, \ -0.848226037480837936478636, \ -0.841701383125706473284556, \ -0.835051444100995681967937, \ -0.828277210229725073186687, \ -0.821379689835822056081139, \ -0.814359909594035880004229, \ -0.807218914377120130552073, \ -0.799957767100306523636066, \ -0.792577548563093144962574, \ -0.785079357288370682385816, \ -0.777464309358910595129671, \ -0.769733538251239556788216, \ -0.761888194666924898264210, \ -0.753929446361296162339238, \ -0.745858477969628263337895, \ -0.737676490830812123299244, \ -0.729384702808539030149808, \ -0.720984348110025333531072, \ -0.712476677102304460118510, \ -0.703862956126113592426171, \ -0.695144467307402713168813, \ -0.686322508366494071200553, \ -0.677398392424920474813593, \ -0.668373447809971163711735, \ -0.659249017856974352220492, \ -0.650026460709345873208532, \ -0.640707149116433684724434, \ -0.631292470229188329449219, \ -0.621783825393689760680446, \ -0.612182629942561267650033, \ -0.602490312984301547488097, \ -0.592708317190566281032495, \ -0.582838098581430874902446, \ -0.572881126308666332759406, \ -0.562838882437060514424546, \ -0.552712861723817332466074, \ -0.542504571396066721967792, \ -0.532215530926518500400434, \ -0.521847271807293510797499, \ -0.511401337321965712746629, \ -0.500879282315849152005553, \ -0.490282672964564000798817, \ -0.479613086540916117008992, \ -0.468872111180124821505728, \ -0.458061345643433838720630, \ -0.447182399080140586238810, \ -0.436236890788079234603398, \ -0.425226449972593188682213, \ -0.414152715504032866791986, \ -0.403017335673814873281489, \ -0.391821967949078874408131, \ -0.380568278725978696070941, \ -0.369257943081644365255611, \ -0.357892644524852014873858, \ -0.346474074745438764010632, \ -0.335003933362499872399782, \ -0.323483927671405649204085, \ -0.311915772389675771851948, \ -0.300301189401748840754520, \ -0.288641907502685160168097, \ -0.276939662140840894253032, \ -0.265196195159551900488370, \ -0.253413254537865690008131, \ -0.241592594130360106108882, \ -0.229735973406087448117604, \ -0.217845157186682897983880, \ -0.205921915383676231351599, \ -0.193968022735045913454182, \ -0.181985258541054792946197, \ -0.169975406399406713716337, \ -0.157940253939763465806087, \ -0.145881592557661591770148, \ -0.133801217147868654144405, \ -0.121700925837218653121859, \ -0.109582519716966361063898, \ -0.097447802574700412082119, \ -0.085298580625855050603929, \ -0.073136662244860502573600, \ -0.060963857695971986730406, \ -0.048781978863817431238958, \ -0.036592838983704002816750, \ -0.024398252371723591403953, \ -0.012200034154697423345412, \ 0.000000000000000000000000, \ 0.012200034154697423345412, \ 0.024398252371723591403953, \ 0.036592838983704002816750, \ 0.048781978863817431238958, \ 0.060963857695971986730406, \ 0.073136662244860502573600, \ 0.085298580625855050603929, \ 0.097447802574700412082119, \ 0.109582519716966361063898, \ 0.121700925837218653121859, \ 0.133801217147868654144405, \ 0.145881592557661591770148, \ 0.157940253939763465806087, \ 0.169975406399406713716337, \ 0.181985258541054792946197, \ 0.193968022735045913454182, \ 0.205921915383676231351599, \ 0.217845157186682897983880, \ 0.229735973406087448117604, \ 0.241592594130360106108882, \ 0.253413254537865690008131, \ 0.265196195159551900488370, \ 0.276939662140840894253032, \ 0.288641907502685160168097, \ 0.300301189401748840754520, \ 0.311915772389675771851948, \ 0.323483927671405649204085, \ 0.335003933362499872399782, \ 0.346474074745438764010632, \ 0.357892644524852014873858, \ 0.369257943081644365255611, \ 0.380568278725978696070941, \ 0.391821967949078874408131, \ 0.403017335673814873281489, \ 0.414152715504032866791986, \ 0.425226449972593188682213, \ 0.436236890788079234603398, \ 0.447182399080140586238810, \ 0.458061345643433838720630, \ 0.468872111180124821505728, \ 0.479613086540916117008992, \ 0.490282672964564000798817, \ 0.500879282315849152005553, \ 0.511401337321965712746629, \ 0.521847271807293510797499, \ 0.532215530926518500400434, \ 0.542504571396066721967792, \ 0.552712861723817332466074, \ 0.562838882437060514424546, \ 0.572881126308666332759406, \ 0.582838098581430874902446, \ 0.592708317190566281032495, \ 0.602490312984301547488097, \ 0.612182629942561267650033, \ 0.621783825393689760680446, \ 0.631292470229188329449219, \ 0.640707149116433684724434, \ 0.650026460709345873208532, \ 0.659249017856974352220492, \ 0.668373447809971163711735, \ 0.677398392424920474813593, \ 0.686322508366494071200553, \ 0.695144467307402713168813, \ 0.703862956126113592426171, \ 0.712476677102304460118510, \ 0.720984348110025333531072, \ 0.729384702808539030149808, \ 0.737676490830812123299244, \ 0.745858477969628263337895, \ 0.753929446361296162339238, \ 0.761888194666924898264210, \ 0.769733538251239556788216, \ 0.777464309358910595129671, \ 0.785079357288370682385816, \ 0.792577548563093144962574, \ 0.799957767100306523636066, \ 0.807218914377120130552073, \ 0.814359909594035880004229, \ 0.821379689835822056081139, \ 0.828277210229725073186687, \ 0.835051444100995681967937, \ 0.841701383125706473284556, \ 0.848226037480837936478636, \ 0.854624435991610735314055, \ 0.860895626276042275514686, \ 0.867038674886706051812473, \ 0.873052667449672679799858, \ 0.878936708800611938658765, \ 0.884689923118035575018750, \ 0.890311454053661045810287, \ 0.895800464859876809085345, \ 0.901156138514290206476301, \ 0.906377677841339419411308, \ 0.911464305630951423630955, \ 0.916415264754228313295468, \ 0.921229818276144817520964, \ 0.925907249565240289235888, \ 0.930446862400288909805510, \ 0.934847981073932324370129, \ 0.939109950493259404355123, \ 0.943232136277318328151464, \ 0.947213924851546682950881, \ 0.951054723539105826691801, \ 0.954753960649106318830855, \ 0.958311085561711847074814, \ 0.961725568810109767190665, \ 0.964996902159337170373447, \ 0.968124598681952354372943, \ 0.971108192830542793021113, \ 0.973947240507062326750976, \ 0.976641319128992592610888, \ 0.979190027692327124191591, \ 0.981592986831381877693095, \ 0.983849838875444644048531, \ 0.985960247902290665366669, \ 0.987923899788618253106809, \ 0.989740502257507526030375, \ 0.991409784923101705201254, \ 0.992931499332908653172844, \ 0.994305419008553630362377, \ 0.995531339486830143483750, \ 0.996609078365487004512326, \ 0.997538475365520218731818, \ 0.998319392445383847808766, \ 0.998951714093223210129834, \ 0.999435348366365078441838, \ 0.999770232390338019056053, \ 0.999956390712330402472857 \ ] ) w = np.array ( [ \ 0.00011191470145601756450862287886, \ 0.00026049995580176964436806680831, \ 0.00040926648283531339591138751432, \ 0.00055799120546880640169677292533, \ 0.00070663671051592291949335494247, \ 0.00085517818446696565626595950963, \ 0.00100359280467969441299468763292, \ 0.0011518582377826677880963146741, \ 0.0012999523174235227389668643832, \ 0.0014478529559255120065233994722, \ 0.0015955381166175133369701690235, \ 0.0017429858051468299509941139300, \ 0.0018901740676190104269878470891, \ 0.0020370809914723626741694800322, \ 0.0021836847075455253317921866057, \ 0.0023299633927021828561308282641, \ 0.0024758952727301488651840215879, \ 0.0026214586253808109266552781372, \ 0.0027666317834818283552560256501, \ 0.0029113931380877846359302447381, \ 0.0030557211416493711130936102459, \ 0.0031995943111899437356540290142, \ 0.0033429912314827618499065991316, \ 0.0034858905582247143702551557840, \ 0.0036282710212037760873102463983, \ 0.0037701114274582873548537007645, \ 0.0039113906644266662571543468015, \ 0.0040520877030864825223229951262, \ 0.0041921816010820254766367595011, \ 0.0043316515058396297504806208252, \ 0.0044704766576701092218388764046, \ 0.0046086363928577081326523656522, \ 0.0047461101467350184936945641585, \ 0.0048828774567433411142588306018, \ 0.0050189179654779878773297516544, \ 0.0051542114237180378340642003713, \ 0.0052887376934400710240953933529, \ 0.0054224767508154127788846727083, \ 0.0055554086891904284012033890901, \ 0.0056875137220494140577838938236, \ 0.0058187721859596348346566361185, \ 0.0059491645434980654366600347567, \ 0.0060786713861593931405204596709, \ 0.0062072734372448464599330978665, \ 0.0063349515547314166407936938524, \ 0.0064616867341210426397202932350, \ 0.0065874601112693336961737372300, \ 0.0067122529651934070221351960200, \ 0.0068360467208584215286561508406, \ 0.0069588229519423919043121805236, \ 0.0070805633835788707705149901066, \ 0.0072012498950770900730828552207, \ 0.0073208645226191563361371026044, \ 0.0074393894619338979090297315972, \ 0.0075568070709469658838993300454, \ 0.0076730998724067939537782250476, \ 0.0077882505564860261212726654404, \ 0.0079022419833580248574070864277, \ 0.0080150571857480760504667455353, \ 0.0081266793714589108764118189068, \ 0.0082370919258701685661946145361, \ 0.0083462784144114279413811886655, \ 0.0084542225850084395379670551258, \ 0.0085609083705021941391459209280, \ 0.0086663198910404675908861979240, \ 0.0087704414564414858792445834744, \ 0.0088732575685293586050755892934, \ 0.0089747529234409331997949023068, \ 0.0090749124139037264846862498962, \ 0.0091737211314845944854270065178, \ 0.0092711643688088057725325917169, \ 0.0093672276217491880067391857021, \ 0.0094618965915850218253881576301, \ 0.0095551571871303607110514249099, \ 0.0096469955268314600363329731559, \ 0.0097373979408330030783691793250, \ 0.0098263509730128164423854701706, \ 0.0099138413829847720250916955489, \ 0.0099998561480695773850435626986, \ 0.0100843824652331611676814627839, \ 0.0101674077529923650568895461852, \ 0.0102489196532876585918958554047, \ 0.0103289060333225980974485876288, \ 0.0104073549873697559257355517893, \ 0.0104842548385428511997370260353, \ 0.0105595941405348182788823332058, \ 0.0106333616793215542382761147904, \ 0.0107055464748310917616231511294, \ 0.0107761377825779489945556541150, \ 0.0108451250952624130885928632830, \ 0.0109124981443345193856719616965, \ 0.0109782469015224934483083029166, \ 0.0110423615803254284301924654946, \ 0.0111048326374699756056269264803, \ 0.0111656507743308312328559850485, \ 0.0112248069383148083152535688671, \ 0.0112822923242082872447042603128, \ 0.0113380983754878447625379269120, \ 0.011392216785593866154247619654, \ 0.011444639499166951104119199270, \ 0.011495358713246929174010288914, \ 0.011544366878434306436012137033, \ 0.011591656700013970380783131035, \ 0.011637221139040985841125311445, \ 0.011681053413388320313049670635, \ 0.011723146998756342723302879656, \ 0.011763495629643945382264331878, \ 0.011802093300281144573421477037, \ 0.011838934265523020964443424791, \ 0.011874013041704866779344562066, \ 0.011907324407458412445505183140, \ 0.011938863404489011222535627643, \ 0.011968625338313666131272065445, \ 0.011996605778959789329711050159, \ 0.012022800561624589927558893338, \ 0.012047205787294992091420946532, \ 0.012069817823327991167612855626, \ 0.012090633303991361438266420912, \ 0.012109649130964635027950450318, \ 0.012126862473800277391553601370, \ 0.012142270770344990738801546574, \ 0.012155871727121082685623083829, \ 0.012167663319667843366755737416, \ 0.012177643792842880196606249581, \ 0.012185811661083365425569178819, \ 0.012192165708627157605870499188, \ 0.012196704989693764053654538465, \ 0.012199428828625117371582840212, \ 0.01220033681998614507777289232, \ 0.012199428828625117371582840212, \ 0.012196704989693764053654538465, \ 0.012192165708627157605870499188, \ 0.012185811661083365425569178819, \ 0.012177643792842880196606249581, \ 0.012167663319667843366755737416, \ 0.012155871727121082685623083829, \ 0.012142270770344990738801546574, \ 0.012126862473800277391553601370, \ 0.012109649130964635027950450318, \ 0.012090633303991361438266420912, \ 0.012069817823327991167612855626, \ 0.012047205787294992091420946532, \ 0.012022800561624589927558893338, \ 0.011996605778959789329711050159, \ 0.011968625338313666131272065445, \ 0.011938863404489011222535627643, \ 0.011907324407458412445505183140, \ 0.011874013041704866779344562066, \ 0.011838934265523020964443424791, \ 0.011802093300281144573421477037, \ 0.011763495629643945382264331878, \ 0.011723146998756342723302879656, \ 0.011681053413388320313049670635, \ 0.011637221139040985841125311445, \ 0.011591656700013970380783131035, \ 0.011544366878434306436012137033, \ 0.011495358713246929174010288914, \ 0.011444639499166951104119199270, \ 0.011392216785593866154247619654, \ 0.0113380983754878447625379269120, \ 0.0112822923242082872447042603128, \ 0.0112248069383148083152535688671, \ 0.0111656507743308312328559850485, \ 0.0111048326374699756056269264803, \ 0.0110423615803254284301924654946, \ 0.0109782469015224934483083029166, \ 0.0109124981443345193856719616965, \ 0.0108451250952624130885928632830, \ 0.0107761377825779489945556541150, \ 0.0107055464748310917616231511294, \ 0.0106333616793215542382761147904, \ 0.0105595941405348182788823332058, \ 0.0104842548385428511997370260353, \ 0.0104073549873697559257355517893, \ 0.0103289060333225980974485876288, \ 0.0102489196532876585918958554047, \ 0.0101674077529923650568895461852, \ 0.0100843824652331611676814627839, \ 0.0099998561480695773850435626986, \ 0.0099138413829847720250916955489, \ 0.0098263509730128164423854701706, \ 0.0097373979408330030783691793250, \ 0.0096469955268314600363329731559, \ 0.0095551571871303607110514249099, \ 0.0094618965915850218253881576301, \ 0.0093672276217491880067391857021, \ 0.0092711643688088057725325917169, \ 0.0091737211314845944854270065178, \ 0.0090749124139037264846862498962, \ 0.0089747529234409331997949023068, \ 0.0088732575685293586050755892934, \ 0.0087704414564414858792445834744, \ 0.0086663198910404675908861979240, \ 0.0085609083705021941391459209280, \ 0.0084542225850084395379670551258, \ 0.0083462784144114279413811886655, \ 0.0082370919258701685661946145361, \ 0.0081266793714589108764118189068, \ 0.0080150571857480760504667455353, \ 0.0079022419833580248574070864277, \ 0.0077882505564860261212726654404, \ 0.0076730998724067939537782250476, \ 0.0075568070709469658838993300454, \ 0.0074393894619338979090297315972, \ 0.0073208645226191563361371026044, \ 0.0072012498950770900730828552207, \ 0.0070805633835788707705149901066, \ 0.0069588229519423919043121805236, \ 0.0068360467208584215286561508406, \ 0.0067122529651934070221351960200, \ 0.0065874601112693336961737372300, \ 0.0064616867341210426397202932350, \ 0.0063349515547314166407936938524, \ 0.0062072734372448464599330978665, \ 0.0060786713861593931405204596709, \ 0.0059491645434980654366600347567, \ 0.0058187721859596348346566361185, \ 0.0056875137220494140577838938236, \ 0.0055554086891904284012033890901, \ 0.0054224767508154127788846727083, \ 0.0052887376934400710240953933529, \ 0.0051542114237180378340642003713, \ 0.0050189179654779878773297516544, \ 0.0048828774567433411142588306018, \ 0.0047461101467350184936945641585, \ 0.0046086363928577081326523656522, \ 0.0044704766576701092218388764046, \ 0.0043316515058396297504806208252, \ 0.0041921816010820254766367595011, \ 0.0040520877030864825223229951262, \ 0.0039113906644266662571543468015, \ 0.0037701114274582873548537007645, \ 0.0036282710212037760873102463983, \ 0.0034858905582247143702551557840, \ 0.0033429912314827618499065991316, \ 0.0031995943111899437356540290142, \ 0.0030557211416493711130936102459, \ 0.0029113931380877846359302447381, \ 0.0027666317834818283552560256501, \ 0.0026214586253808109266552781372, \ 0.0024758952727301488651840215879, \ 0.0023299633927021828561308282641, \ 0.0021836847075455253317921866057, \ 0.0020370809914723626741694800322, \ 0.0018901740676190104269878470891, \ 0.0017429858051468299509941139300, \ 0.0015955381166175133369701690235, \ 0.0014478529559255120065233994722, \ 0.0012999523174235227389668643832, \ 0.0011518582377826677880963146741, \ 0.00100359280467969441299468763292, \ 0.00085517818446696565626595950963, \ 0.00070663671051592291949335494247, \ 0.00055799120546880640169677292533, \ 0.00040926648283531339591138751432, \ 0.00026049995580176964436806680831, \ 0.00011191470145601756450862287886 \ ] ) else: print ( '' ) print ( 'legendre_set - Fatal error!' ) print ( ' Illegal value of N = %d' % ( n ) ) print ( ' Legal values are 1 through 33, 63/64/65, 127/128/129 and 255/256/257.' ) raise Exception ( 'legendre_set - Fatal error!' ) return x, w def legendre_set_test01 ( ): #*****************************************************************************80 # ## legendre_set_test01() tests legendre_set(). # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 02 April 2015 # # Author: # # John Burkardt # import platform print ( '' ) print ( 'legendre_set_test01():' ) print ( ' Python version: %s' % ( platform.python_version ( ) ) ) print ( ' legendre_set() returns points and weights of a Gauss-Legendre quadrature rule.' ) for n in [ 3, 6, 11 ]: # for n in [ 1, 2, 3 ]: x, w = legendre_set ( n ) print ( '' ) print ( ' Gauss-Legendre rule of order %d:' % ( n ) ) print ( '' ) print ( ' X W' ) print ( '' ) for i in range ( 0, n ): print ( ' %24.16f %24.16f' % ( x[i], w[i] ) ) # # Terminate. # print ( '' ) print ( 'legendre_set_test01():' ) print ( ' Normal end of execution.' ) return def timestamp ( ): #*****************************************************************************80 # ## timestamp() prints the date as a timestamp. # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 06 April 2013 # # Author: # # John Burkardt # import time t = time.time ( ) print ( time.ctime ( t ) ) return if ( __name__ == '__main__' ): timestamp ( ) cauchy_principal_value_test ( ) timestamp ( )