//A c++ routine which calculates the coefficients for Gauss-Runge Kutta schemes with s=2,3,4,6 and // coefficients \beta_{ij} for starting approximations. // note that b_i=b_{s+1-i} void calculate_coefficients(double s){ double tmp; switch(s){ case 2: tmp=sqrt(3.0)/6.0; gauss_c[0]=0.5-tmp; gauss_c[1]=0.5+tmp; gauss_b[0]=0.5; gauss_a[0][0]= 0.250000000000000000000000000000; gauss_a[0][1]= -0.386751345948128822545743902510e-1; gauss_a[1][0]= 0.538675134594812882254574390251; gauss_a[1][1]= 0.250000000000000000000000000000; gauss_beta[0][0]=0.38397459621556129e0; gauss_beta[0][1]=0.82735026918962584e0; gauss_beta[1][0]=-0.32735026918962551e0; gauss_beta[1][1]=2.1160254037844388e0; break; case 3: tmp=sqrt(15.0)/10.0; gauss_c[0]=0.5-tmp; gauss_c[1]=0.5; gauss_c[2]=0.5+tmp; gauss_b[0]= 0.277777777777777777777777777778; gauss_b[1]= 0.444444444444444444444444444444; gauss_a[0][0]= 0.138888888888888888888888888889; gauss_a[0][1]= -0.359766675249389034563954710966e-1; gauss_a[0][2]= 0.978944401530832604958004222948e-02; gauss_a[1][0]= 0.300263194980864592438024947213e+00; gauss_a[1][1]= 0.222222222222222222222222222222e+00; gauss_a[1][2]= -0.224854172030868146602471694354e-01; gauss_a[2][0]= 0.267988333762469451728197735548e+00; gauss_a[2][1]= 0.480421111969383347900839915541e+00; gauss_a[2][2]= 0.138888888888888888888888888889e+00; gauss_beta[0][0]=0.31350832689629055e0; gauss_beta[0][1]= 0.32379000772445088e0; gauss_beta[0][2]=0.47540333075851626e0; gauss_beta[1][0]= 0.76587708172407232e0; gauss_beta[1][1]=-1.0000000000000009e0; gauss_beta[1][2]= 1.7341229182759272e0; gauss_beta[2][0]=2.0245966692414807e0; gauss_beta[2][1]=-4.3237900077244511e0; gauss_beta[2][2]=4.1864916731037090e0; break; case 4: gauss_c[0]= 0.69431844202973712388e-01; gauss_c[1]= 0.33000947820757186760e+00; gauss_c[2]= 0.66999052179242813240e+00; gauss_c[3]= 0.93056815579702628761e+00; gauss_b[0] = 0.173927422568726928686531974611e+00; gauss_b[1] = 0.326072577431273071313468025389e+00; gauss_a[0][0]= 0.869637112843634643432659873055e-01; gauss_a[0][1]= -.266041800849987933133851304770e-01; gauss_a[0][2]= 0.126274626894047245150568805746e-01; gauss_a[0][3]= -.355514968579568315691098184957e-02; gauss_a[1][0]= 0.188118117499868071650685545087e+00; gauss_a[1][1]= 0.163036288715636535656734012694e+00; gauss_a[1][2]= -.278804286024708952241511064190e-01; gauss_a[1][3]= 0.673550059453815551539866908570e-02; gauss_a[2][0]= 0.167191921974188773171133305525e+00; gauss_a[2][1]= 0.353953006033743966537619131808e+00; gauss_a[2][2]= 0.163036288715636535656734012694e+00; gauss_a[2][3]= -.141906949311411429641535704762e-01; gauss_a[3][0]= 0.177482572254522611843442956461e+00; gauss_a[3][1]= 0.313445114741868346798411144814e+00; gauss_a[3][2]= 0.352676757516271864626853155866e+00; gauss_a[3][3]= 0.869637112843634643432659873055e-01; gauss_beta[0][0]=0.15989279407363777e0; gauss_beta[0][1]= 0.37467451466384671e0; gauss_beta[0][2]=0.23268866705493038e0; gauss_beta[0][3]=0.30217586841055927e0; gauss_beta[1][0]= -9.81369521237120679e-2; gauss_beta[1][1]=1.2174199122298877e0; gauss_beta[1][2]= -1.1260403811348647e0; gauss_beta[1][3]= 1.3367668992362600e0; gauss_beta[2][0]=-1.5556502648869712e0; gauss_beta[2][1]=5.7121772947173586e0; gauss_beta[2][2]=-7.4114760071011627e0; gauss_beta[2][3]=4.9249394990631989e0; gauss_beta[3][0]=-4.3883127819930454e0; gauss_beta[3][1]=14.148795719875128e0; gauss_beta[3][2]=-18.364078082882720e0; gauss_beta[3][3]=10.534163300797651e0; break; case 6: gauss_c[0]= 0.33765242898423986094e-01; gauss_c[1]= 0.16939530676686774317e+00; gauss_c[2]= 0.38069040695840154568e+00; gauss_c[3]= 0.61930959304159845432e+00; gauss_c[4]= 0.83060469323313225683e+00; gauss_c[5]= 0.96623475710157601391e+00; gauss_b[0] = 0.856622461895851725201480710863e-01; gauss_b[1] = 0.180380786524069303784916756919e+00; gauss_b[2] = 0.233956967286345523694935171995e+00; gauss_a[0][0]= 0.428311230947925862600740355432e-01; gauss_a[0][1]= -0.147637259971974124753725910605e-01; gauss_a[0][2]= 0.932505070647775119143888450801e-02; gauss_a[0][3]= -0.566885804948351190092125641622e-02; gauss_a[0][4]= 0.285443331509933513092928583012e-02; gauss_a[0][5]= -0.812780171264762112299135651564e-03; gauss_a[1][0]= 0.926734914303788631865122917633e-01; gauss_a[1][1]= 0.901903932620346518924583784594e-01; gauss_a[1][2]= -0.203001022932395859524940805243e-01; gauss_a[1][3]= 0.103631562402464237307199458066e-01; gauss_a[1][4]= -0.488719292803767146341420376580e-02; gauss_a[1][5]= 0.135556105548506177551787075080e-02; gauss_a[2][0]= 0.822479226128438738077716511411e-01; gauss_a[2][1]= 0.196032162333245006055759781564e+00; gauss_a[2][2]= 0.116978483643172761847467585997e+00; gauss_a[2][3]= -0.204825277456560976298590118654e-01; gauss_a[2][4]= 0.798999189966233579720442148033e-02; gauss_a[2][5]= -0.207562578486633419359528915759e-02; gauss_a[3][0]= 0.877378719744515067137433602439e-01; gauss_a[3][1]= 0.172390794624406967987712335439e+00; gauss_a[3][2]= 0.254439495032001621324794183860e+00; gauss_a[3][3]= 0.116978483643172761847467585997e+00; gauss_a[3][4]=-0.156513758091757022708430246450e-01; gauss_a[3][5]= 0.341432357674129871237641994524e-02; gauss_a[4][0]= 0.843066851341001107446302003355e-01; gauss_a[4][1]= 0.185267979452106975248330960685e+00; gauss_a[4][2]= 0.223593811046099099964215226188e+00; gauss_a[4][3]= 0.254257069579585109647429252519e+00; gauss_a[4][4]= 0.901903932620346518924583784593e-01; gauss_a[4][5]= -0.701124524079369066636422067690e-02; gauss_a[5][0]= 0.864750263608499346324472067378e-01; gauss_a[5][1]= 0.177526353208969968653987471089e+00; gauss_a[5][2]= 0.239625825335829035595856428410e+00; gauss_a[5][3]= 0.224631916579867772503496287487e+00; gauss_a[5][4]= 0.195144512521266716260289347979e+00; gauss_a[5][5]= 0.428311230947925862600740355433e-01; gauss_beta[0][0]= 8.22483019342128835e-02; gauss_beta[0][1]= 0.1923099048212718e0; gauss_beta[0][2]= 0.21055438047641983e0; gauss_beta[0][3]= 0.27131569885803963e0; gauss_beta[0][4]= 0.12663339487682984e0; gauss_beta[0][5]= 0.15070356193164958e0; gauss_beta[1][0]= -6.71995946733257299e-03; gauss_beta[1][1]= 0.49857960421378045e0 ; gauss_beta[1][2]= -0.36970621785876984e0 ; gauss_beta[1][3]= 1.1278642697878596e0 ; gauss_beta[1][4]= -0.88224651913471508e0 ; gauss_beta[1][5]= 0.80162412922604498e0 ; gauss_beta[2][0]= -1.0315397794449053e0 ; gauss_beta[2][1]= 3.9562130088088390e0 ; gauss_beta[2][2]= -6.6354010262452157e0 ; gauss_beta[2][3]= 9.5881647313127996e0 ; gauss_beta[2][4]= -9.2215777769257929e0 ; gauss_beta[2][5]= 4.7248312494526790e0 ; gauss_beta[3][0]= -6.8773772579541905e0 ; gauss_beta[3][1]= 23.335590306862031e0 ; gauss_beta[3][2]= -40.485838856904721e0 ; gauss_beta[3][3]= 52.385159293422568e0 ; gauss_beta[3][4]= -47.155464553255108e0 ; gauss_beta[3][5]= 20.417240660871038e0 ; gauss_beta[4][0]= -23.600725723095184e0 ; gauss_beta[4][1]= 78.083696159861063e0 ; gauss_beta[4][2]= -133.74887763278221e0 ; gauss_beta[4][3]= 165.53365056109001e0 ; gauss_beta[4][4]= -141.79647094864612e0 ; gauss_beta[4][5]= 57.359332276805638e0 ; gauss_beta[5][0]= -45.954479077065088e0 ; gauss_beta[5][1]= 150.71499898342216e0 ; gauss_beta[5][2]= -255.68109330348722e0 ; gauss_beta[5][3]= 310.12792113486830e0 ; gauss_beta[5][4]= -259.20699775595682e0 ; gauss_beta[5][5]= 101.96588477532036e0 ; break; default: break; }