function [ xtab, weight ] = legendre_set ( norder ) %% LEGENDRE_SET sets abscissas and weights for Gauss-Legendre quadrature. % % Integration region: % % [ -1, 1 ] % % Weight function: % % 1.0E+00 % % Integral to approximate: % % Integral ( -1 <= X <= 1 ) F(X) dX % % Approximate integral: % % Sum ( 1 <= I <= NORDER ) WEIGHT(I) * F ( XTAB(I) ) % % Precision: % % The quadrature rule will integrate exactly all polynomials up to % X**(2*NORDER-1). % % Note: % % The abscissas of the rule are the zeroes of the Legendre polynomial % P(NORDER)(X). % % The integral produced by a Gauss-Legendre rule is equal to the % integral of the unique polynomial of degree NORDER-1 which % agrees with the function at the NORDER abscissas of the rule. % % Licensing: % % This code is distributed under the GNU LGPL license. % % Modified: % % 25 November 2004 % % Author: % % John Burkardt % % Reference: % % Abramowitz and Stegun, % Handbook of Mathematical Functions, % National Bureau of Standards, 1964. % % Vladimir Krylov, % Approximate Calculation of Integrals, % MacMillan, 1962. % % Arthur Stroud and Don Secrest, % Gaussian Quadrature Formulas, % Prentice Hall, 1966. % % Daniel Zwillinger, editor, % Standard Mathematical Tables and Formulae, % 30th Edition, % CRC Press, 1996. % % Parameters: % % Input, integer NORDER, the order of the rule. % NORDER must be between 1 and 20, 32 or 64. % % Output, real XTAB(NORDER), the abscissas of the rule. % % Output, real WEIGHT(NORDER), the weights of the rule. % The weights are positive, symmetric and should sum to 2. % if ( norder == 1 ) xtab(1) = 0.0E+00; weight(1) = 2.0E+00; elseif ( norder == 2 ) xtab(1) = - 0.577350269189625764509148780502E+00; xtab(2) = 0.577350269189625764509148780502E+00; weight(1) = 1.0E+00; weight(2) = 1.0E+00; elseif ( norder == 3 ) xtab(1) = - 0.774596669241483377035853079956E+00; xtab(2) = 0.0E+00; xtab(3) = 0.774596669241483377035853079956E+00; weight(1) = 5.0E+00 / 9.0E+00; weight(2) = 8.0E+00 / 9.0E+00; weight(3) = 5.0E+00 / 9.0E+00; elseif ( norder == 4 ) xtab(1) = - 0.861136311594052575223946488893E+00; xtab(2) = - 0.339981043584856264802665759103E+00; xtab(3) = 0.339981043584856264802665759103E+00; xtab(4) = 0.861136311594052575223946488893E+00; weight(1) = 0.347854845137453857373063949222E+00; weight(2) = 0.652145154862546142626936050778E+00; weight(3) = 0.652145154862546142626936050778E+00; weight(4) = 0.347854845137453857373063949222E+00; elseif ( norder == 5 ) xtab(1) = - 0.906179845938663992797626878299E+00; xtab(2) = - 0.538469310105683091036314420700E+00; xtab(3) = 0.0E+00; xtab(4) = 0.538469310105683091036314420700E+00; xtab(5) = 0.906179845938663992797626878299E+00; weight(1) = 0.236926885056189087514264040720E+00; weight(2) = 0.478628670499366468041291514836E+00; weight(3) = 0.568888888888888888888888888889E+00; weight(4) = 0.478628670499366468041291514836E+00; weight(5) = 0.236926885056189087514264040720E+00; elseif ( norder == 6 ) xtab(1) = - 0.932469514203152027812301554494E+00; xtab(2) = - 0.661209386466264513661399595020E+00; xtab(3) = - 0.238619186083196908630501721681E+00; xtab(4) = 0.238619186083196908630501721681E+00; xtab(5) = 0.661209386466264513661399595020E+00; xtab(6) = 0.932469514203152027812301554494E+00; weight(1) = 0.171324492379170345040296142173E+00; weight(2) = 0.360761573048138607569833513838E+00; weight(3) = 0.467913934572691047389870343990E+00; weight(4) = 0.467913934572691047389870343990E+00; weight(5) = 0.360761573048138607569833513838E+00; weight(6) = 0.171324492379170345040296142173E+00; elseif ( norder == 7 ) xtab(1) = - 0.949107912342758524526189684048E+00; xtab(2) = - 0.741531185599394439863864773281E+00; xtab(3) = - 0.405845151377397166906606412077E+00; xtab(4) = 0.0E+00; xtab(5) = 0.405845151377397166906606412077E+00; xtab(6) = 0.741531185599394439863864773281E+00; xtab(7) = 0.949107912342758524526189684048E+00; weight(1) = 0.129484966168869693270611432679E+00; weight(2) = 0.279705391489276667901467771424E+00; weight(3) = 0.381830050505118944950369775489E+00; weight(4) = 0.417959183673469387755102040816E+00; weight(5) = 0.381830050505118944950369775489E+00; weight(6) = 0.279705391489276667901467771424E+00; weight(7) = 0.129484966168869693270611432679E+00; elseif ( norder == 8 ) xtab(1) = - 0.960289856497536231683560868569E+00; xtab(2) = - 0.796666477413626739591553936476E+00; xtab(3) = - 0.525532409916328985817739049189E+00; xtab(4) = - 0.183434642495649804939476142360E+00; xtab(5) = 0.183434642495649804939476142360E+00; xtab(6) = 0.525532409916328985817739049189E+00; xtab(7) = 0.796666477413626739591553936476E+00; xtab(8) = 0.960289856497536231683560868569E+00; weight(1) = 0.101228536290376259152531354310E+00; weight(2) = 0.222381034453374470544355994426E+00; weight(3) = 0.313706645877887287337962201987E+00; weight(4) = 0.362683783378361982965150449277E+00; weight(5) = 0.362683783378361982965150449277E+00; weight(6) = 0.313706645877887287337962201987E+00; weight(7) = 0.222381034453374470544355994426E+00; weight(8) = 0.101228536290376259152531354310E+00; elseif ( norder == 9 ) xtab(1) = - 0.968160239507626089835576202904E+00; xtab(2) = - 0.836031107326635794299429788070E+00; xtab(3) = - 0.613371432700590397308702039341E+00; xtab(4) = - 0.324253423403808929038538014643E+00; xtab(5) = 0.0E+00; xtab(6) = 0.324253423403808929038538014643E+00; xtab(7) = 0.613371432700590397308702039341E+00; xtab(8) = 0.836031107326635794299429788070E+00; xtab(9) = 0.968160239507626089835576202904E+00; weight(1) = 0.812743883615744119718921581105E-01; weight(2) = 0.180648160694857404058472031243E+00; weight(3) = 0.260610696402935462318742869419E+00; weight(4) = 0.312347077040002840068630406584E+00; weight(5) = 0.330239355001259763164525069287E+00; weight(6) = 0.312347077040002840068630406584E+00; weight(7) = 0.260610696402935462318742869419E+00; weight(8) = 0.180648160694857404058472031243E+00; weight(9) = 0.812743883615744119718921581105E-01; elseif ( norder == 10 ) xtab(1) = - 0.973906528517171720077964012084E+00; xtab(2) = - 0.865063366688984510732096688423E+00; xtab(3) = - 0.679409568299024406234327365115E+00; xtab(4) = - 0.433395394129247190799265943166E+00; xtab(5) = - 0.148874338981631210884826001130E+00; xtab(6) = 0.148874338981631210884826001130E+00; xtab(7) = 0.433395394129247190799265943166E+00; xtab(8) = 0.679409568299024406234327365115E+00; xtab(9) = 0.865063366688984510732096688423E+00; xtab(10) = 0.973906528517171720077964012084E+00; weight(1) = 0.666713443086881375935688098933E-01; weight(2) = 0.149451349150580593145776339658E+00; weight(3) = 0.219086362515982043995534934228E+00; weight(4) = 0.269266719309996355091226921569E+00; weight(5) = 0.295524224714752870173892994651E+00; weight(6) = 0.295524224714752870173892994651E+00; weight(7) = 0.269266719309996355091226921569E+00; weight(8) = 0.219086362515982043995534934228E+00; weight(9) = 0.149451349150580593145776339658E+00; weight(10) = 0.666713443086881375935688098933E-01; elseif ( norder == 11 ) xtab(1) = - 0.978228658146056992803938001123E+00; xtab(2) = - 0.887062599768095299075157769304E+00; xtab(3) = - 0.730152005574049324093416252031E+00; xtab(4) = - 0.519096129206811815925725669459E+00; xtab(5) = - 0.269543155952344972331531985401E+00; xtab(6) = 0.0E+00; xtab(7) = 0.269543155952344972331531985401E+00; xtab(8) = 0.519096129206811815925725669459E+00; xtab(9) = 0.730152005574049324093416252031E+00; xtab(10) = 0.887062599768095299075157769304E+00; xtab(11) = 0.978228658146056992803938001123E+00; weight(1) = 0.556685671161736664827537204425E-01; weight(2) = 0.125580369464904624634694299224E+00; weight(3) = 0.186290210927734251426097641432E+00; weight(4) = 0.233193764591990479918523704843E+00; weight(5) = 0.262804544510246662180688869891E+00; weight(6) = 0.272925086777900630714483528336E+00; weight(7) = 0.262804544510246662180688869891E+00; weight(8) = 0.233193764591990479918523704843E+00; weight(9) = 0.186290210927734251426097641432E+00; weight(10) = 0.125580369464904624634694299224E+00; weight(11) = 0.556685671161736664827537204425E-01; elseif ( norder == 12 ) xtab(1) = - 0.981560634246719250690549090149E+00; xtab(2) = - 0.904117256370474856678465866119E+00; xtab(3) = - 0.769902674194304687036893833213E+00; xtab(4) = - 0.587317954286617447296702418941E+00; xtab(5) = - 0.367831498998180193752691536644E+00; xtab(6) = - 0.125233408511468915472441369464E+00; xtab(7) = 0.125233408511468915472441369464E+00; xtab(8) = 0.367831498998180193752691536644E+00; xtab(9) = 0.587317954286617447296702418941E+00; xtab(10) = 0.769902674194304687036893833213E+00; xtab(11) = 0.904117256370474856678465866119E+00; xtab(12) = 0.981560634246719250690549090149E+00; weight(1) = 0.471753363865118271946159614850E-01; weight(2) = 0.106939325995318430960254718194E+00; weight(3) = 0.160078328543346226334652529543E+00; weight(4) = 0.203167426723065921749064455810E+00; weight(5) = 0.233492536538354808760849898925E+00; weight(6) = 0.249147045813402785000562436043E+00; weight(7) = 0.249147045813402785000562436043E+00; weight(8) = 0.233492536538354808760849898925E+00; weight(9) = 0.203167426723065921749064455810E+00; weight(10) = 0.160078328543346226334652529543E+00; weight(11) = 0.106939325995318430960254718194E+00; weight(12) = 0.471753363865118271946159614850E-01; elseif ( norder == 13 ) xtab(1) = - 0.984183054718588149472829448807E+00; xtab(2) = - 0.917598399222977965206547836501E+00; xtab(3) = - 0.801578090733309912794206489583E+00; xtab(4) = - 0.642349339440340220643984606996E+00; xtab(5) = - 0.448492751036446852877912852128E+00; xtab(6) = - 0.230458315955134794065528121098E+00; xtab(7) = 0.0E+00; xtab(8) = 0.230458315955134794065528121098E+00; xtab(9) = 0.448492751036446852877912852128E+00; xtab(10) = 0.642349339440340220643984606996E+00; xtab(11) = 0.801578090733309912794206489583E+00; xtab(12) = 0.917598399222977965206547836501E+00; xtab(13) = 0.984183054718588149472829448807E+00; weight(1) = 0.404840047653158795200215922010E-01; weight(2) = 0.921214998377284479144217759538E-01; weight(3) = 0.138873510219787238463601776869E+00; weight(4) = 0.178145980761945738280046691996E+00; weight(5) = 0.207816047536888502312523219306E+00; weight(6) = 0.226283180262897238412090186040E+00; weight(7) = 0.232551553230873910194589515269E+00; weight(8) = 0.226283180262897238412090186040E+00; weight(9) = 0.207816047536888502312523219306E+00; weight(10) = 0.178145980761945738280046691996E+00; weight(11) = 0.138873510219787238463601776869E+00; weight(12) = 0.921214998377284479144217759538E-01; weight(13) = 0.404840047653158795200215922010E-01; elseif ( norder == 14 ) xtab(1) = - 0.986283808696812338841597266704E+00; xtab(2) = - 0.928434883663573517336391139378E+00; xtab(3) = - 0.827201315069764993189794742650E+00; xtab(4) = - 0.687292904811685470148019803019E+00; xtab(5) = - 0.515248636358154091965290718551E+00; xtab(6) = - 0.319112368927889760435671824168E+00; xtab(7) = - 0.108054948707343662066244650220E+00; xtab(8) = 0.108054948707343662066244650220E+00; xtab(9) = 0.319112368927889760435671824168E+00; xtab(10) = 0.515248636358154091965290718551E+00; xtab(11) = 0.687292904811685470148019803019E+00; xtab(12) = 0.827201315069764993189794742650E+00; xtab(13) = 0.928434883663573517336391139378E+00; xtab(14) = 0.986283808696812338841597266704E+00; weight(1) = 0.351194603317518630318328761382E-01; weight(2) = 0.801580871597602098056332770629E-01; weight(3) = 0.121518570687903184689414809072E+00; weight(4) = 0.157203167158193534569601938624E+00; weight(5) = 0.185538397477937813741716590125E+00; weight(6) = 0.205198463721295603965924065661E+00; weight(7) = 0.215263853463157790195876443316E+00; weight(8) = 0.215263853463157790195876443316E+00; weight(9) = 0.205198463721295603965924065661E+00; weight(10) = 0.185538397477937813741716590125E+00; weight(11) = 0.157203167158193534569601938624E+00; weight(12) = 0.121518570687903184689414809072E+00; weight(13) = 0.801580871597602098056332770629E-01; weight(14) = 0.351194603317518630318328761382E-01; elseif ( norder == 15 ) xtab(1) = - 0.987992518020485428489565718587E+00; xtab(2) = - 0.937273392400705904307758947710E+00; xtab(3) = - 0.848206583410427216200648320774E+00; xtab(4) = - 0.724417731360170047416186054614E+00; xtab(5) = - 0.570972172608538847537226737254E+00; xtab(6) = - 0.394151347077563369897207370981E+00; xtab(7) = - 0.201194093997434522300628303395E+00; xtab(8) = 0.0E+00; xtab(9) = 0.201194093997434522300628303395E+00; xtab(10) = 0.394151347077563369897207370981E+00; xtab(11) = 0.570972172608538847537226737254E+00; xtab(12) = 0.724417731360170047416186054614E+00; xtab(13) = 0.848206583410427216200648320774E+00; xtab(14) = 0.937273392400705904307758947710E+00; xtab(15) = 0.987992518020485428489565718587E+00; weight(1) = 0.307532419961172683546283935772E-01; weight(2) = 0.703660474881081247092674164507E-01; weight(3) = 0.107159220467171935011869546686E+00; weight(4) = 0.139570677926154314447804794511E+00; weight(5) = 0.166269205816993933553200860481E+00; weight(6) = 0.186161000015562211026800561866E+00; weight(7) = 0.198431485327111576456118326444E+00; weight(8) = 0.202578241925561272880620199968E+00; weight(9) = 0.198431485327111576456118326444E+00; weight(10) = 0.186161000015562211026800561866E+00; weight(11) = 0.166269205816993933553200860481E+00; weight(12) = 0.139570677926154314447804794511E+00; weight(13) = 0.107159220467171935011869546686E+00; weight(14) = 0.703660474881081247092674164507E-01; weight(15) = 0.307532419961172683546283935772E-01; elseif ( norder == 16 ) xtab(1) = - 0.989400934991649932596154173450E+00; xtab(2) = - 0.944575023073232576077988415535E+00; xtab(3) = - 0.865631202387831743880467897712E+00; xtab(4) = - 0.755404408355003033895101194847E+00; xtab(5) = - 0.617876244402643748446671764049E+00; xtab(6) = - 0.458016777657227386342419442984E+00; xtab(7) = - 0.281603550779258913230460501460E+00; xtab(8) = - 0.950125098376374401853193354250E-01; xtab(9) = 0.950125098376374401853193354250E-01; xtab(10) = 0.281603550779258913230460501460E+00; xtab(11) = 0.458016777657227386342419442984E+00; xtab(12) = 0.617876244402643748446671764049E+00; xtab(13) = 0.755404408355003033895101194847E+00; xtab(14) = 0.865631202387831743880467897712E+00; xtab(15) = 0.944575023073232576077988415535E+00; xtab(16) = 0.989400934991649932596154173450E+00; weight(1) = 0.271524594117540948517805724560E-01; weight(2) = 0.622535239386478928628438369944E-01; weight(3) = 0.951585116824927848099251076022E-01; weight(4) = 0.124628971255533872052476282192E+00; weight(5) = 0.149595988816576732081501730547E+00; weight(6) = 0.169156519395002538189312079030E+00; weight(7) = 0.182603415044923588866763667969E+00; weight(8) = 0.189450610455068496285396723208E+00; weight(9) = 0.189450610455068496285396723208E+00; weight(10) = 0.182603415044923588866763667969E+00; weight(11) = 0.169156519395002538189312079030E+00; weight(12) = 0.149595988816576732081501730547E+00; weight(13) = 0.124628971255533872052476282192E+00; weight(14) = 0.951585116824927848099251076022E-01; weight(15) = 0.622535239386478928628438369944E-01; weight(16) = 0.271524594117540948517805724560E-01; elseif ( norder == 17 ) xtab(1) = - 0.990575475314417335675434019941E+00; xtab(2) = - 0.950675521768767761222716957896E+00; xtab(3) = - 0.880239153726985902122955694488E+00; xtab(4) = - 0.781514003896801406925230055520E+00; xtab(5) = - 0.657671159216690765850302216643E+00; xtab(6) = - 0.512690537086476967886246568630E+00; xtab(7) = - 0.351231763453876315297185517095E+00; xtab(8) = - 0.178484181495847855850677493654E+00; xtab(9) = 0.0E+00; xtab(10) = 0.178484181495847855850677493654E+00; xtab(11) = 0.351231763453876315297185517095E+00; xtab(12) = 0.512690537086476967886246568630E+00; xtab(13) = 0.657671159216690765850302216643E+00; xtab(14) = 0.781514003896801406925230055520E+00; xtab(15) = 0.880239153726985902122955694488E+00; xtab(16) = 0.950675521768767761222716957896E+00; xtab(17) = 0.990575475314417335675434019941E+00; weight(1) = 0.241483028685479319601100262876E-01; weight(2) = 0.554595293739872011294401653582E-01; weight(3) = 0.850361483171791808835353701911E-01; weight(4) = 0.111883847193403971094788385626E+00; weight(5) = 0.135136368468525473286319981702E+00; weight(6) = 0.154045761076810288081431594802E+00; weight(7) = 0.168004102156450044509970663788E+00; weight(8) = 0.176562705366992646325270990113E+00; weight(9) = 0.179446470356206525458265644262E+00; weight(10) = 0.176562705366992646325270990113E+00; weight(11) = 0.168004102156450044509970663788E+00; weight(12) = 0.154045761076810288081431594802E+00; weight(13) = 0.135136368468525473286319981702E+00; weight(14) = 0.111883847193403971094788385626E+00; weight(15) = 0.850361483171791808835353701911E-01; weight(16) = 0.554595293739872011294401653582E-01; weight(17) = 0.241483028685479319601100262876E-01; elseif ( norder == 18 ) xtab(1) = - 0.991565168420930946730016004706E+00; xtab(2) = - 0.955823949571397755181195892930E+00; xtab(3) = - 0.892602466497555739206060591127E+00; xtab(4) = - 0.803704958972523115682417455015E+00; xtab(5) = - 0.691687043060353207874891081289E+00; xtab(6) = - 0.559770831073947534607871548525E+00; xtab(7) = - 0.411751161462842646035931793833E+00; xtab(8) = - 0.251886225691505509588972854878E+00; xtab(9) = - 0.847750130417353012422618529358E-01; xtab(10) = 0.847750130417353012422618529358E-01; xtab(11) = 0.251886225691505509588972854878E+00; xtab(12) = 0.411751161462842646035931793833E+00; xtab(13) = 0.559770831073947534607871548525E+00; xtab(14) = 0.691687043060353207874891081289E+00; xtab(15) = 0.803704958972523115682417455015E+00; xtab(16) = 0.892602466497555739206060591127E+00; xtab(17) = 0.955823949571397755181195892930E+00; xtab(18) = 0.991565168420930946730016004706E+00; weight(1) = 0.216160135264833103133427102665E-01; weight(2) = 0.497145488949697964533349462026E-01; weight(3) = 0.764257302548890565291296776166E-01; weight(4) = 0.100942044106287165562813984925E+00; weight(5) = 0.122555206711478460184519126800E+00; weight(6) = 0.140642914670650651204731303752E+00; weight(7) = 0.154684675126265244925418003836E+00; weight(8) = 0.164276483745832722986053776466E+00; weight(9) = 0.169142382963143591840656470135E+00; weight(10) = 0.169142382963143591840656470135E+00; weight(11) = 0.164276483745832722986053776466E+00; weight(12) = 0.154684675126265244925418003836E+00; weight(13) = 0.140642914670650651204731303752E+00; weight(14) = 0.122555206711478460184519126800E+00; weight(15) = 0.100942044106287165562813984925E+00; weight(16) = 0.764257302548890565291296776166E-01; weight(17) = 0.497145488949697964533349462026E-01; weight(18) = 0.216160135264833103133427102665E-01; elseif ( norder == 19 ) xtab(1) = - 0.992406843843584403189017670253E+00; xtab(2) = - 0.960208152134830030852778840688E+00; xtab(3) = - 0.903155903614817901642660928532E+00; xtab(4) = - 0.822714656537142824978922486713E+00; xtab(5) = - 0.720966177335229378617095860824E+00; xtab(6) = - 0.600545304661681023469638164946E+00; xtab(7) = - 0.464570741375960945717267148104E+00; xtab(8) = - 0.316564099963629831990117328850E+00; xtab(9) = - 0.160358645640225375868096115741E+00; xtab(10) = 0.0E+00; xtab(11) = 0.160358645640225375868096115741E+00; xtab(12) = 0.316564099963629831990117328850E+00; xtab(13) = 0.464570741375960945717267148104E+00; xtab(14) = 0.600545304661681023469638164946E+00; xtab(15) = 0.720966177335229378617095860824E+00; xtab(16) = 0.822714656537142824978922486713E+00; xtab(17) = 0.903155903614817901642660928532E+00; xtab(18) = 0.960208152134830030852778840688E+00; xtab(19) = 0.992406843843584403189017670253E+00; weight(1) = 0.194617882297264770363120414644E-01; weight(2) = 0.448142267656996003328381574020E-01; weight(3) = 0.690445427376412265807082580060E-01; weight(4) = 0.914900216224499994644620941238E-01; weight(5) = 0.111566645547333994716023901682E+00; weight(6) = 0.128753962539336227675515784857E+00; weight(7) = 0.142606702173606611775746109442E+00; weight(8) = 0.152766042065859666778855400898E+00; weight(9) = 0.158968843393954347649956439465E+00; weight(10) = 0.161054449848783695979163625321E+00; weight(11) = 0.158968843393954347649956439465E+00; weight(12) = 0.152766042065859666778855400898E+00; weight(13) = 0.142606702173606611775746109442E+00; weight(14) = 0.128753962539336227675515784857E+00; weight(15) = 0.111566645547333994716023901682E+00; weight(16) = 0.914900216224499994644620941238E-01; weight(17) = 0.690445427376412265807082580060E-01; weight(18) = 0.448142267656996003328381574020E-01; weight(19) = 0.194617882297264770363120414644E-01; elseif ( norder == 20 ) xtab(1) = - 0.993128599185094924786122388471E+00; xtab(2) = - 0.963971927277913791267666131197E+00; xtab(3) = - 0.912234428251325905867752441203E+00; xtab(4) = - 0.839116971822218823394529061702E+00; xtab(5) = - 0.746331906460150792614305070356E+00; xtab(6) = - 0.636053680726515025452836696226E+00; xtab(7) = - 0.510867001950827098004364050955E+00; xtab(8) = - 0.373706088715419560672548177025E+00; xtab(9) = - 0.227785851141645078080496195369E+00; xtab(10) = - 0.765265211334973337546404093988E-01; xtab(11) = 0.765265211334973337546404093988E-01; xtab(12) = 0.227785851141645078080496195369E+00; xtab(13) = 0.373706088715419560672548177025E+00; xtab(14) = 0.510867001950827098004364050955E+00; xtab(15) = 0.636053680726515025452836696226E+00; xtab(16) = 0.746331906460150792614305070356E+00; xtab(17) = 0.839116971822218823394529061702E+00; xtab(18) = 0.912234428251325905867752441203E+00; xtab(19) = 0.963971927277913791267666131197E+00; xtab(20) = 0.993128599185094924786122388471E+00; weight(1) = 0.176140071391521183118619623519E-01; weight(2) = 0.406014298003869413310399522749E-01; weight(3) = 0.626720483341090635695065351870E-01; weight(4) = 0.832767415767047487247581432220E-01; weight(5) = 0.101930119817240435036750135480E+00; weight(6) = 0.118194531961518417312377377711E+00; weight(7) = 0.131688638449176626898494499748E+00; weight(8) = 0.142096109318382051329298325067E+00; weight(9) = 0.149172986472603746787828737002E+00; weight(10) = 0.152753387130725850698084331955E+00; weight(11) = 0.152753387130725850698084331955E+00; weight(12) = 0.149172986472603746787828737002E+00; weight(13) = 0.142096109318382051329298325067E+00; weight(14) = 0.131688638449176626898494499748E+00; weight(15) = 0.118194531961518417312377377711E+00; weight(16) = 0.101930119817240435036750135480E+00; weight(17) = 0.832767415767047487247581432220E-01; weight(18) = 0.626720483341090635695065351870E-01; weight(19) = 0.406014298003869413310399522749E-01; weight(20) = 0.176140071391521183118619623519E-01; elseif ( norder == 32 ) xtab(1) = - 0.997263861849481563544981128665E+00; xtab(2) = - 0.985611511545268335400175044631E+00; xtab(3) = - 0.964762255587506430773811928118E+00; xtab(4) = - 0.934906075937739689170919134835E+00; xtab(5) = - 0.896321155766052123965307243719E+00; xtab(6) = - 0.849367613732569970133693004968E+00; xtab(7) = - 0.794483795967942406963097298970E+00; xtab(8) = - 0.732182118740289680387426665091E+00; xtab(9) = - 0.663044266930215200975115168663E+00; xtab(10) = - 0.587715757240762329040745476402E+00; xtab(11) = - 0.506899908932229390023747474378E+00; xtab(12) = - 0.421351276130635345364119436172E+00; xtab(13) = - 0.331868602282127649779916805730E+00; xtab(14) = - 0.239287362252137074544603209166E+00; xtab(15) = - 0.144471961582796493485186373599E+00; xtab(16) = - 0.483076656877383162348125704405E-01; xtab(17) = 0.483076656877383162348125704405E-01; xtab(18) = 0.144471961582796493485186373599E+00; xtab(19) = 0.239287362252137074544603209166E+00; xtab(20) = 0.331868602282127649779916805730E+00; xtab(21) = 0.421351276130635345364119436172E+00; xtab(22) = 0.506899908932229390023747474378E+00; xtab(23) = 0.587715757240762329040745476402E+00; xtab(24) = 0.663044266930215200975115168663E+00; xtab(25) = 0.732182118740289680387426665091E+00; xtab(26) = 0.794483795967942406963097298970E+00; xtab(27) = 0.849367613732569970133693004968E+00; xtab(28) = 0.896321155766052123965307243719E+00; xtab(29) = 0.934906075937739689170919134835E+00; xtab(30) = 0.964762255587506430773811928118E+00; xtab(31) = 0.985611511545268335400175044631E+00; xtab(32) = 0.997263861849481563544981128665E+00; weight(1) = 0.701861000947009660040706373885E-02; weight(2) = 0.162743947309056706051705622064E-01; weight(3) = 0.253920653092620594557525897892E-01; weight(4) = 0.342738629130214331026877322524E-01; weight(5) = 0.428358980222266806568786466061E-01; weight(6) = 0.509980592623761761961632446895E-01; weight(7) = 0.586840934785355471452836373002E-01; weight(8) = 0.658222227763618468376500637069E-01; weight(9) = 0.723457941088485062253993564785E-01; weight(10) = 0.781938957870703064717409188283E-01; weight(11) = 0.833119242269467552221990746043E-01; weight(12) = 0.876520930044038111427714627518E-01; weight(13) = 0.911738786957638847128685771116E-01; weight(14) = 0.938443990808045656391802376681E-01; weight(15) = 0.956387200792748594190820022041E-01; weight(16) = 0.965400885147278005667648300636E-01; weight(17) = 0.965400885147278005667648300636E-01; weight(18) = 0.956387200792748594190820022041E-01; weight(19) = 0.938443990808045656391802376681E-01; weight(20) = 0.911738786957638847128685771116E-01; weight(21) = 0.876520930044038111427714627518E-01; weight(22) = 0.833119242269467552221990746043E-01; weight(23) = 0.781938957870703064717409188283E-01; weight(24) = 0.723457941088485062253993564785E-01; weight(25) = 0.658222227763618468376500637069E-01; weight(26) = 0.586840934785355471452836373002E-01; weight(27) = 0.509980592623761761961632446895E-01; weight(28) = 0.428358980222266806568786466061E-01; weight(29) = 0.342738629130214331026877322524E-01; weight(30) = 0.253920653092620594557525897892E-01; weight(31) = 0.162743947309056706051705622064E-01; weight(32) = 0.701861000947009660040706373885E-02; elseif ( norder == 64 ) xtab(1) = - 0.999305041735772139456905624346E+00; xtab(2) = - 0.996340116771955279346924500676E+00; xtab(3) = - 0.991013371476744320739382383443E+00; xtab(4) = - 0.983336253884625956931299302157E+00; xtab(5) = - 0.973326827789910963741853507352E+00; xtab(6) = - 0.961008799652053718918614121897E+00; xtab(7) = - 0.946411374858402816062481491347E+00; xtab(8) = - 0.929569172131939575821490154559E+00; xtab(9) = - 0.910522137078502805756380668008E+00; xtab(10) = - 0.889315445995114105853404038273E+00; xtab(11) = - 0.865999398154092819760783385070E+00; xtab(12) = - 0.840629296252580362751691544696E+00; xtab(13) = - 0.813265315122797559741923338086E+00; xtab(14) = - 0.783972358943341407610220525214E+00; xtab(15) = - 0.752819907260531896611863774886E+00; xtab(16) = - 0.719881850171610826848940217832E+00; xtab(17) = - 0.685236313054233242563558371031E+00; xtab(18) = - 0.648965471254657339857761231993E+00; xtab(19) = - 0.611155355172393250248852971019E+00; xtab(20) = - 0.571895646202634034283878116659E+00; xtab(21) = - 0.531279464019894545658013903544E+00; xtab(22) = - 0.489403145707052957478526307022E+00; xtab(23) = - 0.446366017253464087984947714759E+00; xtab(24) = - 0.402270157963991603695766771260E+00; xtab(25) = - 0.357220158337668115950442615046E+00; xtab(26) = - 0.311322871990210956157512698560E+00; xtab(27) = - 0.264687162208767416373964172510E+00; xtab(28) = - 0.217423643740007084149648748989E+00; xtab(29) = - 0.169644420423992818037313629748E+00; xtab(30) = - 0.121462819296120554470376463492E+00; xtab(31) = - 0.729931217877990394495429419403E-01; xtab(32) = - 0.243502926634244325089558428537E-01; xtab(33) = 0.243502926634244325089558428537E-01; xtab(34) = 0.729931217877990394495429419403E-01; xtab(35) = 0.121462819296120554470376463492E+00; xtab(36) = 0.169644420423992818037313629748E+00; xtab(37) = 0.217423643740007084149648748989E+00; xtab(38) = 0.264687162208767416373964172510E+00; xtab(39) = 0.311322871990210956157512698560E+00; xtab(40) = 0.357220158337668115950442615046E+00; xtab(41) = 0.402270157963991603695766771260E+00; xtab(42) = 0.446366017253464087984947714759E+00; xtab(43) = 0.489403145707052957478526307022E+00; xtab(44) = 0.531279464019894545658013903544E+00; xtab(45) = 0.571895646202634034283878116659E+00; xtab(46) = 0.611155355172393250248852971019E+00; xtab(47) = 0.648965471254657339857761231993E+00; xtab(48) = 0.685236313054233242563558371031E+00; xtab(49) = 0.719881850171610826848940217832E+00; xtab(50) = 0.752819907260531896611863774886E+00; xtab(51) = 0.783972358943341407610220525214E+00; xtab(52) = 0.813265315122797559741923338086E+00; xtab(53) = 0.840629296252580362751691544696E+00; xtab(54) = 0.865999398154092819760783385070E+00; xtab(55) = 0.889315445995114105853404038273E+00; xtab(56) = 0.910522137078502805756380668008E+00; xtab(57) = 0.929569172131939575821490154559E+00; xtab(58) = 0.946411374858402816062481491347E+00; xtab(59) = 0.961008799652053718918614121897E+00; xtab(60) = 0.973326827789910963741853507352E+00; xtab(61) = 0.983336253884625956931299302157E+00; xtab(62) = 0.991013371476744320739382383443E+00; xtab(63) = 0.996340116771955279346924500676E+00; xtab(64) = 0.999305041735772139456905624346E+00; weight(1) = 0.178328072169643294729607914497E-02; weight(2) = 0.414703326056246763528753572855E-02; weight(3) = 0.650445796897836285611736039998E-02; weight(4) = 0.884675982636394772303091465973E-02; weight(5) = 0.111681394601311288185904930192E-01; weight(6) = 0.134630478967186425980607666860E-01; weight(7) = 0.157260304760247193219659952975E-01; weight(8) = 0.179517157756973430850453020011E-01; weight(9) = 0.201348231535302093723403167285E-01; weight(10) = 0.222701738083832541592983303842E-01; weight(11) = 0.243527025687108733381775504091E-01; weight(12) = 0.263774697150546586716917926252E-01; weight(13) = 0.283396726142594832275113052002E-01; weight(14) = 0.302346570724024788679740598195E-01; weight(15) = 0.320579283548515535854675043479E-01; weight(16) = 0.338051618371416093915654821107E-01; weight(17) = 0.354722132568823838106931467152E-01; weight(18) = 0.370551285402400460404151018096E-01; weight(19) = 0.385501531786156291289624969468E-01; weight(20) = 0.399537411327203413866569261283E-01; weight(21) = 0.412625632426235286101562974736E-01; weight(22) = 0.424735151236535890073397679088E-01; weight(23) = 0.435837245293234533768278609737E-01; weight(24) = 0.445905581637565630601347100309E-01; weight(25) = 0.454916279274181444797709969713E-01; weight(26) = 0.462847965813144172959532492323E-01; weight(27) = 0.469681828162100173253262857546E-01; weight(28) = 0.475401657148303086622822069442E-01; weight(29) = 0.479993885964583077281261798713E-01; weight(30) = 0.483447622348029571697695271580E-01; weight(31) = 0.485754674415034269347990667840E-01; weight(32) = 0.486909570091397203833653907347E-01; weight(33) = 0.486909570091397203833653907347E-01; weight(34) = 0.485754674415034269347990667840E-01; weight(35) = 0.483447622348029571697695271580E-01; weight(36) = 0.479993885964583077281261798713E-01; weight(37) = 0.475401657148303086622822069442E-01; weight(38) = 0.469681828162100173253262857546E-01; weight(39) = 0.462847965813144172959532492323E-01; weight(40) = 0.454916279274181444797709969713E-01; weight(41) = 0.445905581637565630601347100309E-01; weight(42) = 0.435837245293234533768278609737E-01; weight(43) = 0.424735151236535890073397679088E-01; weight(44) = 0.412625632426235286101562974736E-01; weight(45) = 0.399537411327203413866569261283E-01; weight(46) = 0.385501531786156291289624969468E-01; weight(47) = 0.370551285402400460404151018096E-01; weight(48) = 0.354722132568823838106931467152E-01; weight(49) = 0.338051618371416093915654821107E-01; weight(50) = 0.320579283548515535854675043479E-01; weight(51) = 0.302346570724024788679740598195E-01; weight(52) = 0.283396726142594832275113052002E-01; weight(53) = 0.263774697150546586716917926252E-01; weight(54) = 0.243527025687108733381775504091E-01; weight(55) = 0.222701738083832541592983303842E-01; weight(56) = 0.201348231535302093723403167285E-01; weight(57) = 0.179517157756973430850453020011E-01; weight(58) = 0.157260304760247193219659952975E-01; weight(59) = 0.134630478967186425980607666860E-01; weight(60) = 0.111681394601311288185904930192E-01; weight(61) = 0.884675982636394772303091465973E-02; weight(62) = 0.650445796897836285611736039998E-02; weight(63) = 0.414703326056246763528753572855E-02; weight(64) = 0.178328072169643294729607914497E-02; else fprintf ( 1, '\n' ); fprintf ( 1, 'LEGENDRE_SET - Fatal error!' ); fprintf ( 1, ' Illegal value of NORDER = %d\n', norder ); fprintf ( 1, ' Legal values are 1 to 20, 32 or 64.\n' ); error ( 'LEGENDRE_SET - Fatal error!' ); end