#include #include #include #include using namespace std; /* VectorFunctionBase - interface with three functions, which have to be implemented * void compute(Vector& y, double t, Vector& result) - calculates right hand side of the ODE y'=f(y,t) * double cour(Vector& y, double t) - used if "isComputeEigenValue=false" to * calculate h_{euler} - step which you would use in explicit Euler method * Element GetNonZeroElement() - can be used if "isComputeEigenValue=true" in eigenvalue function, if * iterations of power method have to be restarted, but y,f(y) equals to zero, * in this case program need to initialize random non-zero vector, because * vector's Element is unknown in advance * for example if Vector contains "double"(s) you can return 0.01*(rand()%100) * but if Vector contains "Point"(s) you can * return Point(0.01*(rand()%100),0.01*(rand()%100),0.01*(rand()%100)) */ template class VectorFunctionBase { public: virtual void compute(Vector& y, double t, Vector& result) = 0; virtual double cour(Vector& y, double t) = 0; virtual Element GetNonZeroElement() = 0; }; /* * dumka3 - solves non-linear mildly - stiff system of ordinary differential equations y'=f(y,t) * in order to be able to use this function you should implement interface VectorFunctionBase (above) * t - time * tend - end of the integration interval * h0 - initial step-size (this value can be override by the program) * atol - tolerance of the computation (should be strictly positive) * rtol - relative tolerance (should be strictly positive) * f - Class which implement VectorFunctionBase interface, or class , which has 3 functions * compute(Vector& y, double t, Vector& result) - calculates right hand side * cour(Vector& y, double t) - used if "isComputeEigenValue=false" to * calculate h_{euler} - step which you would use in explicit Euler method * GetNonZeroElement() - can be used if "isComputeEigenValue=true" in eigenvalue function, if * iterations of power method have to be restarted, but y,f(y) equals to zero, * in this case program need to initialize random non-zero vector, because * vector's Element can be complicated like Point etc, user should provide random non-zero element * y - solution of the ODE y'=f(y,t) * isComputeEigenValue - if "true": function "eigenvalue" will be used to determine maximum eigenvalue and h_{euler}=2/eigenvalue * - if "false": user should provide H_{euler} via "cour" function of the VectorFunction f * */ template void dumka3(double& t, const double& tend, const double& h0,const double& atol, const double& rtol, VectorFunction& f, Vector& y, bool isComputeEigenValue = false ) { static const long _n_p=14; static const long _sz=2400; static const long _sz2=6; long numOfRejectedSteps=0; double minimumValue = 1.e-15; double err_n=0.; double h_n=0; long numOfSteps=0; double maxCou = 0.; double meanCou = 0.; double timeInterval = tend - t; if (timeIntervaltend" << endl; return; }; if ( atol < minimumValue ) { cout << "atol must be positive" << endl; return; } if ( rtol < minimumValue ) { cout << "rtol must be positive" << endl; return; } long numOfRHSEvaluations=0; long numOfRHSEvaluations0; double c_2,c_3,c_4,a_21,a_31,a_41,a_32,a_42,a_43,t2,t3,t4,tmp_1,tmp_2; double r,cou,h_new,t_en,h; int n_deg[_n_p]={3,6,9,15,21,27,36,48,63,81,135,189,243,324}; int index_first[_n_p]={1,2,4,7,12,19,28,40,56,77,104,149,212,293}; int index_last[_n_p]={1,3,6,11,18,27,39,55,76,103,148,211,292,400}; const double stab_reg[_n_p]={ 2.5005127005e+0, 9.784756428464169e+0, 23.818760475282560e+0, 68.932817124349140e+0, 136.648186730571300e+0, 226.8897061613812e+0, 404.7232537379578e+0, 720.7401653373073e+0, 1337.1268312643200e+0, 3266.0271134242240e+0, 9072.0255133253400e+0, 17784.544093341440e+0, 29376.4540800858800e+0,50666.52463738415826e+0}; const double coef[_sz]={ 0.924574112262462e+0,0.085748762860431e+0,0.28771294386877e+0, 0.085748762860431e+0,0.28771294386877e+0,0.6265382932708e+0, 0.10425664360200260e+0, 0.10425664360200260e+0,0.38929339241177780e+0, 0.10425664360200260e+0, 0.38929339241177780e+0,0.12318171612500360e+0, -0.43147899243339550e+0,0.49334989598763150e+0,-0.29116420359694450e+0, 0.49334989598763150e+0,-0.29116420359694450e+0,0.18108255547052920e+0, 0.5178985446356218e-1,0.5178985446356218e-1,0.1499671381392263e+0, 0.5178985446356218e-1,0.1499671381392263e+0,0.8987058729109126e-1, 0.4518984000985679e-1,0.4518984000985679e-1,0.3655365960800432e+0, 0.4518984000985679e-1,0.3655365960800432e+0,0.4232408050425635e-1, -0.5350188768628940e+0,0.3882284364912002e+0,-0.1974370120534677e+0, 0.3882284364912002e+0,-0.1974370120534677e+0,0.6453047907423139e-1, 0.01454747477255407e+0, 0.01454747477255407e+0,0.02079304726135118e+0, 0.01454747477255407e+0, 0.02079304726135118e+0,0.01487782470642270e+0, 0.07700788949112707e+0, 0.07700788949112707e+0,0.01836387448690710e+0, 0.07700788949112707e+0, 0.01836387448690710e+0,0.35446354514643800e+0, 0.02432895596370560e+0, 0.02432895596370560e+0,0.05145775978136601e+0, 0.02432895596370560e+0, 0.05145775978136601e+0,0.01669108438830406e+0, 0.13626416224605870e+0, 0.13626416224605870e+0,0.01556953144025836e+0, 0.13626416224605870e+0, 0.01556953144025836e+0,0.03779049284450304e+0, -0.74030990899340230e+0,0.31849582639491420e+0,-0.13024769688516420e+0, 0.31849582639491420e+0,-0.13024769688516420e+0,0.02959622796125402e+0, 0.01477637829587406e+0,0.01477637829587406e+0, 0.00784871042703017e+0, 0.01477637829587406e+0,0.00784871042703017e+0, 0.13270367742571640e+0, 0.00872655659409207e+0,0.00872655659409207e+0, 0.04842768909048031e+0, 0.00872655659409207e+0,0.04842768909048031e+0, 0.01136228953669463e+0, 0.02112866077563068e+0,0.02112866077563068e+0, 0.00741183976173058e+0, 0.02112866077563068e+0,0.00741183976173058e+0, 0.35151303099059050e+0, 0.01282729908575624e+0,0.01282729908575624e+0, 0.01742474299312111e+0, 0.01282729908575624e+0,0.01742474299312111e+0, 0.00822345466591715e+0, 0.07384130062447007e+0,0.07384130062447007e+0, 0.00758257251237930e+0, 0.07384130062447007e+0,0.00758257251237930e+0, 0.02651410461353078e+0, 0.00938667991391738e+0,0.00938667991391738e+0, 0.03477132786973448e+0, 0.00938667991391738e+0,0.03477132786973448e+0, 0.00732840358129688e+0, -0.71406485063527700e+0,0.31962173072924080e+0,-0.13166563685102140e+0, 0.31962173072924080e+0,-0.13166563685102140e+0,0.01024518736381746e+0, 0.5107503045891083e-2,0.5107503045891083e-02,0.3362065448136852e-1, 0.5107503045891083e-2,0.3362065448136852e-01,0.7188013295116514e-2, 0.1156154505769375e-1,0.1156154505769375e-01,0.4502527186119195e-2, 0.1156154505769375e-1,0.4502527186119195e-02,0.4725209571486408e-1, 0.8864532407434520e-2,0.8864532407434520e-02,0.4725743401141243e-2, 0.8864532407434520e-2,0.4725743401141243e-02,0.7259492479863046e-1, 0.5372265460448424e-2,0.5372265460448424e-02,0.2536472039688646e-1, 0.5372265460448424e-2,0.2536472039688646e-01,0.6586314262087265e-2, 0.1355407127646629e-1,0.1355407127646629e-01,0.4441351277928004e-2, 0.1355407127646629e-1,0.4441351277928004e-02,0.3502521986497042e+0, 0.6097135119221143e-2,0.6097135119221143e-02,0.1623684839319424e-1, 0.6097135119221143e-2,0.1623684839319424e-01,0.4596423609977717e-2, 0.1312876556408217e+0,0.1312876556408217e+00,0.5697996302599818e-2, 0.1312876556408217e+0,0.5697996302599818e-02,0.1996561282544545e-1, 0.7933063094502557e-2,0.7933063094502557e-02,0.4411179932825468e-2, 0.7933063094502557e-2,0.4411179932825468e-02,0.1004394121139120e-1, -0.6551731045007839e+0,0.3298286840565381e+00,-0.1419813471117554e+0, 0.3298286840565381e+0,-0.1419813471117554e+0,0.4894346213457858e-02, 0.2472004197149452e-2,0.2472004197149452e-02,0.2845804896378570e-2, 0.2472004197149452e-2,0.2845804896378570e-02,0.3384488891281092e-2, 0.3578890608230160e-2,0.3578890608230160e-02,0.4381540707760226e-2, 0.3578890608230160e-2,0.4381540707760226e-02,0.1548938684256209e-1, 0.4748598631674122e-2,0.4748598631674122e-02,0.7174737492322378e-1, 0.4748598631674122e-2,0.7174737492322378e-01,0.5184597369665364e-2, 0.1279818555220185e-1,0.1279818555220185e-01,0.2481471514472173e-2, 0.1279818555220185e-1,0.2481471514472173e-02,0.5706570136850913e-2, 0.1303049568819145e+0,0.1303049568819145e+00,0.2500551935542241e-2, 0.1303049568819145e+0,0.2500551935542241e-02,0.1922188870896997e-1, 0.1079337211241642e-1,0.1079337211241642e-01,0.4070498864709592e-2, 0.1079337211241642e-1,0.4070498864709592e-02,0.2529541836892036e-2, 0.3495107918546922e+0,0.3495107918546922e+00,0.2681439019200542e-2, 0.3495107918546922e+0,0.2681439019200542e-02,0.7107926900931334e-2, 0.4646569953972695e-1,0.4646569953972695e-01,0.2568898066542698e-2, 0.4646569953972695e-1,0.2568898066542698e-02,0.8061631024330287e-2, 0.3286244688464888e-1,0.3286244688464888e-01,0.2619253475244260e-2, 0.3286244688464888e-1,0.2619253475244260e-02,0.9260036321170762e-2, 0.2461846538572608e-1,0.2461846538572608e-01,0.2950959867147192e-2, 0.2461846538572608e-1,0.2950959867147192e-02,0.6337320049319617e-2, 0.3074015316944754e-2,0.3074015316944754e-02,0.3217487048615952e-2, 0.3074015316944754e-2,0.3217487048615952e-02,0.2756513790498370e-2, -0.6576608049720105e+0,0.3283593691684084e+00,-0.1404975080448568e+0, 0.3283593691684084e+0,-0.1404975080448568e+0,0.3805529719813893e-2, 0.2263873446504803e-2,0.2263873446504803e-02,0.1396806966273506e-2, 0.2263873446504803e-2,0.1396806966273506e-02,0.2874096214080187e-2, 0.1405856786430858e-2,0.1405856786430858e-02,0.3082967237408208e-2, 0.1405856786430858e-2,0.3082967237408208e-02,0.3922287445663546e-2, 0.1433480445994300e-2,0.1433480445994300e-02,0.1508985502511977e-1, 0.1433480445994300e-2,0.1508985502511977e-1,0.1452300237076606e-2, 0.4299540037293374e-2,0.4299540037293374e-2,0.1474676421856554e-2, 0.4299540037293374e-2,0.1474676421856554e-2,0.7128613707930451e-1, 0.1500817396882159e-2,0.1500817396882159e-2,0.4744800792404933e-2, 0.1500817396882159e-2,0.4744800792404933e-2,0.1239756641917538e-1, 0.1698486544452855e-2,0.1698486544452855e-2,0.5275134958587701e-2, 0.1698486544452855e-2,0.5275134958587701e-2,0.1297655017833546e+0, 0.1754329508563495e-2,0.1754329508563495e-2,0.1882152472414553e-1, 0.1754329508563495e-2,0.1882152472414553e-1,0.1039021150600575e-1, 0.3600074660496816e-2,0.3600074660496816e-2,0.1530972551686858e-2, 0.3600074660496816e-2,0.1530972551686858e-2,0.3490549853839776e+0, 0.3322903844895304e-2,0.3322903844895304e-2,0.6690572174716599e-2, 0.3322903844895304e-2,0.6690572174716599e-2,0.1565437511457520e-2, 0.4603762606912074e-1,0.4603762606912074e-1,0.1887080972842806e-2, 0.4603762606912074e-1,0.1887080972842806e-2,0.7649980453576852e-2, 0.1604560571449509e-2,0.1604560571449509e-2,0.3245045171225396e-1, 0.1604560571449509e-2,0.3245045171225396e-1,0.1965669974385304e-2, 0.8853146753713483e-2,0.8853146753713483e-2,0.2421450066631322e-1, 0.8853146753713483e-2,0.2421450066631322e-1,0.2389190339801504e-2, 0.5913364519720735e-2,0.5913364519720735e-2,0.2530806273930749e-2, 0.5913364519720735e-2,0.2530806273930749e-2,0.1418045398325408e-2, 0.2691365777559749e-2,0.2691365777559749e-2,0.1390816912287954e-2, 0.2691365777559749e-2,0.1390816912287954e-2,0.2053776804223216e-2, 0.1387834738590928e-2,0.1387834738590928e-2,0.1648750573442188e-2, 0.1387834738590928e-2,0.1648750573442188e-2,0.2152673169773036e-2, -0.6637857547745568e+0,0.3265004113646613e+0,-0.1386521871511077e+00, 0.3265004113646613e+0,-0.1386521871511077e+0,0.1816937001325805e-02, 0.1497462268771500e-2,0.1497462268771500e-2,0.8016352455861625e-03, 0.1497462268771500e-2,0.8016352455861625e-3,0.1134428570591172e-01, 0.9107244117098982e-3,0.9107244117098982e-3,0.4209062910423610e-02, 0.9107244117098982e-3,0.4209062910423610e-2,0.1115182220312366e-02, 0.2278506030972934e-2,0.2278506030972934e-2,0.7536034930991046e-03, 0.2278506030972934e-2,0.7536034930991046e-3,0.1220779831587775e+00, 0.8718837367637042e-3,0.8718837367637042e-3,0.5300278416578640e-02, 0.8718837367637042e-3,0.5300278416578640e-2,0.1200547418986776e-02, 0.1989485460853075e-2,0.1989485460853075e-2,0.7621317815369420e-03, 0.1989485460853075e-2,0.7621317815369420e-3,0.4279900105852680e-01, 0.1361585867641604e-2,0.1361585867641604e-2,0.1663462555411732e-02, 0.1361585867641604e-2,0.1663462555411732e-2,0.8255956252741248e-03, 0.8041038269364196e-2,0.8041038269364196e-2,0.7825383597586035e-03, 0.8041038269364196e-2,0.7825383597586035e-3,0.1733501096812087e-01, 0.9570875386251864e-3,0.9570875386251864e-3,0.3439141925532424e-02, 0.9570875386251864e-3,0.3439141925532424e-2,0.1043622477050726e-02, 0.2649703125972344e-2,0.2649703125972344e-2,0.7489205255105934e-03, 0.2649703125972344e-2,0.7489205255105934e-3,0.3663467233197790e+00, 0.8549622570811375e-3,0.8549622570811375e-3,0.4704548039083622e-02, 0.8549622570811375e-3,0.4704548039083622e-2,0.1155963691837909e-02, 0.1868538294053988e-2,0.1868538294053988e-2,0.7573780373303584e-03, 0.1868538294053988e-2,0.7573780373303584e-3,0.3006933585815754e-01, 0.1302844396906396e-2,0.1302844396906396e-2,0.1576206717853303e-02, 0.1302844396906396e-2,0.1576206717853303e-2,0.8129768269505178e-03, 0.6919669611338770e-2,0.6919669611338770e-2,0.7746793699320062e-03, 0.6919669611338770e-2,0.7746793699320062e-3,0.1385421077615084e-01, 0.9328931714716148e-3,0.9328931714716148e-3,0.3136728923895398e-02, 0.9328931714716148e-3,0.3136728923895398e-2,0.1012249102774941e-02, 0.2452066725852897e-2,0.2452066725852897e-2,0.7479885938962553e-03, 0.2452066725852897e-2,0.7479885938962553e-3,0.6654408106210975e-01, 0.8904320252826596e-3,0.8904320252826596e-3,0.3792559920683190e-02, 0.8904320252826596e-3,0.3792559920683190e-2,0.1249348534492854e-02, 0.2125317026738749e-2,0.2125317026738749e-2,0.7678889941591767e-03, 0.2125317026738749e-2,0.7678889941591767e-3,0.2236984568081352e-01, 0.1426211069499304e-2,0.1426211069499304e-2,0.1760431216809798e-02, 0.1426211069499304e-2,0.1760431216809798e-2,0.8395635973886352e-03, 0.6025220837783022e-2,0.6025220837783022e-2,0.7915075709375068e-03, 0.6025220837783022e-2,0.7915075709375068e-3,0.9473449290746352e-02, 0.1077840803925363e-2,0.1077840803925363e-2,0.2876007491770444e-02, 0.1077840803925363e-2,0.2876007491770444e-2,0.7507890407502578e-03, -0.7025868366046315e+0,0.3410573174186340e+0,-0.1408407318719962e+00, 0.3410573174186340e+0,-0.1408407318719962e+0,0.9834760180518672e-03, 0.3602252890687476e-3,0.3602252890687476e-3,0.2053141684033504e-2, 0.3602252890687476e-3,0.2053141684033504e-2,0.4831209951340756e-3, 0.8380603820115802e-3,0.8380603820115802e-3,0.3111037886540830e-3, 0.8380603820115802e-3,0.3111037886540830e-3,0.2057135989638816e-1, 0.5687593269538123e-3,0.5687593269538123e-3,0.6644986450860436e-3, 0.5687593269538123e-3,0.6644986450860436e-3,0.3356309293764894e-3, 0.3663093727840670e-3,0.3663093727840670e-3,0.2783006991234028e-2, 0.3663093727840670e-3,0.2783006991234028e-2,0.5137328896150039e-3, 0.8829983161130827e-3,0.8829983161130827e-3,0.3146625430082048e-3, 0.8829983161130827e-3,0.3146625430082048e-3,0.1176114948662877e-1, 0.5899945657034291e-3,0.5899945657034291e-3,0.7251651912695405e-3, 0.5899945657034291e-3,0.7251651912695405e-3,0.3443798208440408e-3, 0.3525769387698612e-2,0.3525769387698612e-2,0.3219448100672548e-3, 0.3525769387698612e-2,0.3219448100672548e-3,0.6371551060177030e-2, 0.3872985816371484e-3,0.3872985816371484e-3,0.1468179847166060e-2, 0.3872985816371484e-3,0.1468179847166060e-2,0.4332912305927524e-3, 0.1046913570305507e-2,0.1046913570305507e-2,0.3069038328618102e-3, 0.1046913570305507e-2,0.3069038328618102e-3,0.8676048193961264e-1, 0.5393647957387747e-2,0.5393647957387747e-2,0.3249207644000284e-3, 0.5393647957387747e-2,0.3249207644000284e-3,0.9370103401532334e-2, 0.4038633059540496e-3,0.4038633059540496e-3,0.1875584086669360e-2, 0.4038633059540496e-3,0.1875584086669360e-2,0.4445014352820028e-3, 0.1270617970958242e-2,0.1270617970958242e-2,0.3075985493257752e-3, 0.1270617970958242e-2,0.3075985493257752e-3,0.2947128668608194e-1, 0.6129127967380504e-3,0.6129127967380504e-3,0.3281863544835643e-3, 0.6129127967380504e-3,0.3281863544835643e-3,0.4628932190009235e-2, 0.3728320056096484e-3,0.3728320056096484e-3,0.1721383865094658e-2, 0.3728320056096484e-3,0.1721383865094658e-2,0.4565007875900184e-3, 0.9323756157185432e-3,0.9323756157185432e-3,0.3085281054284440e-3, 0.9323756157185432e-3,0.3085281054284440e-3,0.4630801535879760e-1, 0.3545562738952262e-3,0.3545562738952262e-3,0.2259014678545103e-2, 0.3545562738952262e-3,0.2259014678545103e-2,0.4978866383126903e-3, 0.7970559006761336e-3,0.7970559006761336e-3,0.5490570182311138e-3, 0.7970559006761336e-3,0.5490570182311138e-3,0.6935763377230479e-3, 0.3127578179191516e-3,0.3127578179191516e-3,0.1523284967991621e-1, 0.3127578179191516e-3,0.1523284967991621e-1,0.3398351883455558e-3, 0.3120231281205192e-2,0.3120231281205192e-2,0.3192487615768242e-3, 0.3120231281205192e-2,0.3192487615768242e-3,0.7650648974430584e-2, 0.3953019564372914e-3,0.3953019564372914e-3,0.1363527979037656e-2, 0.3953019564372914e-3,0.1363527979037656e-2,0.4228143427761484e-3, 0.1113584996470221e-2,0.1113584996470221e-2,0.3064418510275818e-3, 0.1113584996470221e-2,0.3064418510275818e-3,0.4441014793556532e+0, 0.3492809420252234e-3,0.3492809420252234e-3,0.2499554821215150e-2, 0.3492809420252234e-3,0.2499554821215150e-2,0.4693511141335305e-3, 0.7595495666968666e-3,0.7595495666968666e-3,0.3168239173466168e-3, 0.7595495666968666e-3,0.3168239173466168e-3,0.4019457444625864e-2, 0.5307544056836153e-3,0.5307544056836153e-3,0.6376835005816956e-3, 0.5307544056836153e-3,0.6376835005816956e-3,0.3317524080451016e-3, 0.1586624743617795e-2,0.1586624743617795e-2,0.3798189696643980e-3, 0.1586624743617795e-2,0.3798189696643980e-3,0.9867829884641076e-3, 0.3096953289201503e-3,0.3096953289201503e-3,0.1187767235014202e-2, 0.3096953289201503e-3,0.1187767235014202e-2,0.3062112079598173e-3, -0.4595292409547097e+0,0.5537618913875574e+0,-0.2982973149029844e+0, 0.5537618913875574e+0,-0.2982973149029844e+0,0.4130202781675714e-3, 0.1300979717625048e-3,0.1300979717625048e-3,0.7233069985422061e-3, 0.1300979717625048e-3,0.7233069985422061e-3,0.1479865979466228e-3, 0.4325905695142040e-3,0.4325905695142040e-3,0.1118913719696372e-3, 0.4325905695142040e-3,0.1118913719696372e-3,0.7585567260231847e-2, 0.1161063343045094e-3,0.1161063343045094e-3,0.2191575521772395e-2, 0.1161063343045094e-3,0.2191575521772395e-2,0.1567383447080588e-3, 0.3718918170158877e-3,0.3718918170158877e-3,0.1205361090670254e-3, 0.3718918170158877e-3,0.1205361090670254e-3,0.1293982340612670e-2, 0.2370803631413284e-3,0.2370803631413284e-3,0.1388585518045632e-3, 0.2370803631413284e-3,0.1388585518045632e-3,0.5354856462012968e-3, 0.2061424702090348e-3,0.2061424702090348e-3,0.1106817938650610e-3, 0.2061424702090348e-3,0.1106817938650610e-3,0.2939862772511351e-1, 0.2205316668063107e-3,0.2205316668063107e-3,0.1181459936611318e-3, 0.2205316668063107e-3,0.1181459936611318e-3,0.1652950036594520e-2, 0.1342074954405650e-3,0.1342074954405650e-3,0.6180865016739393e-3, 0.1342074954405650e-3,0.6180865016739393e-3,0.1643005259557435e-3, 0.3352779765046980e-3,0.3352779765046980e-3,0.1110729852040027e-3, 0.3352779765046980e-3,0.1110729852040027e-3,0.1516714664210126e-1, 0.1276330323761358e-3,0.1276330323761358e-3,0.8103090623879464e-3, 0.1276330323761358e-3,0.8103090623879464e-3,0.1791822232033586e-3, 0.2866899751783916e-3,0.2866899751783916e-3,0.1125948734121003e-3, 0.2866899751783916e-3,0.1125948734121003e-3,0.5328164964739980e-2, 0.1521857067779652e-3,0.1521857067779652e-3,0.4003043817587651e-3, 0.1521857067779652e-3,0.4003043817587651e-3,0.1149303257924375e-3, 0.2716175522656955e-2,0.2716175522656955e-2,0.1422901581051835e-3, 0.2716175522656955e-2,0.1422901581051835e-3,0.4899227193665029e-3, 0.1223369806032192e-3,0.1223369806032192e-3,0.1117406689032896e-2, 0.1223369806032192e-3,0.1117406689032896e-2,0.1975790859531569e-3, 0.2495178271696324e-3,0.2495178271696324e-3,0.1103223234115986e-3, 0.2495178271696324e-3,0.1103223234115986e-3,0.4621346400269236e-1, 0.1288392090552591e-3,0.1288392090552591e-3,0.7648510145779159e-3, 0.1288392090552591e-3,0.7648510145779159e-3,0.1759521226738778e-3, 0.2953654408369954e-3,0.2953654408369954e-3,0.1122270952009704e-3, 0.2953654408369954e-3,0.1122270952009704e-3,0.6306291044327727e-2, 0.1544159445083552e-3,0.1544159445083552e-3,0.3856535572687610e-3, 0.1544159445083552e-3,0.3856535572687610e-3,0.1155004409094379e-3, 0.2432424549003238e-2,0.2432424549003238e-2,0.1405396089644810e-3, 0.2432424549003238e-2,0.1405396089644810e-3,0.5118749472635047e-3, 0.1214150913210891e-3,0.1214150913210891e-3,0.1200672646554655e-2, 0.1214150913210891e-3,0.1200672646554655e-2,0.2017653111614368e-3, 0.2431468972385023e-3,0.2431468972385023e-3,0.1104120448884408e-3, 0.2431468972385023e-3,0.1104120448884408e-3,0.8667516963670382e-1, 0.1327802415082384e-3,0.1327802415082384e-3,0.6502766499608423e-3, 0.1327802415082384e-3,0.6502766499608423e-3,0.1670349237499396e-3, 0.3244400365212383e-3,0.3244400365212383e-3,0.1113146353560780e-3, 0.3244400365212383e-3,0.1113146353560780e-3,0.1169603413901868e-1, 0.2257889771491832e-3,0.2257889771491832e-3,0.1189025598809207e-3, 0.2257889771491832e-3,0.1189025598809207e-3,0.1517834231694204e-2, 0.2155136066576732e-3,0.2155136066576732e-3,0.1174283304930101e-3, 0.2155136066576732e-3,0.1174283304930101e-3,0.1807493902559267e-2, 0.1356948411014018e-3,0.1356948411014018e-3,0.5883857080272527e-3, 0.1356948411014018e-3,0.5883857080272527e-3,0.1616761741067229e-3, 0.3467639370112126e-3,0.3467639370112126e-3,0.1102625631020175e-3, 0.3467639370112126e-3,0.1102625631020175e-3,0.2050372318892889e-1, 0.1264778138423625e-3,0.1264778138423625e-3,0.8601876168349558e-3, 0.1264778138423625e-3,0.8601876168349558e-3,0.1825520166041481e-3, 0.2784656473621648e-3,0.2784656473621648e-3,0.1129951170496302e-3, 0.2784656473621648e-3,0.1129951170496302e-3,0.4563202656757644e-2, 0.2562128709546526e-3,0.2562128709546526e-3,0.1233029345562954e-3, 0.2562128709546526e-3,0.1233029345562954e-3,0.1042793125539889e-2, 0.1143953290968708e-3,0.1143953290968708e-3,0.3053689202336192e-2, 0.1143953290968708e-3,0.3053689202336192e-2,0.1441129024472512e-3, 0.4694781542091936e-3,0.4694781542091936e-3,0.1935737268930150e-3, 0.4694781542091936e-3,0.1935737268930150e-3,0.1500437960573724e-3, 0.4159214629811822e-3,0.4159214629811822e-3,0.1108621149877430e-3, 0.4159214629811822e-3,0.1108621149877430e-3,0.4439828224987684e+0, 0.1314110422564394e-3,0.1314110422564394e-3,0.6852411356133314e-3, 0.1314110422564394e-3,0.6852411356133314e-3,0.1860686704835823e-3, 0.2706625914249481e-3,0.2706625914249481e-3,0.1134282750606420e-3, 0.2706625914249481e-3,0.1134282750606420e-3,0.3953467060562924e-2, 0.1167487125030652e-3,0.1167487125030652e-3,0.1985382810604559e-2, 0.1167487125030652e-3,0.1985382810604559e-2,0.1591569794186695e-3, 0.3589495713626626e-3,0.3589495713626626e-3,0.1243141796164223e-3, 0.3589495713626626e-3,0.1243141796164223e-3,0.9756737148526784e-3, 0.1460107047877242e-3,0.1460107047877242e-3,0.4504072408797582e-3, 0.1460107047877242e-3,0.4504072408797582e-3,0.1105318249567443e-3, 0.9305108217882648e-2,0.9305108217882648e-2,0.2107213670342112e-3, 0.9305108217882648e-2,0.2107213670342112e-3,0.1253720144824314e-3, 0.9150779394173306e-3,0.9150779394173306e-3,0.2313000070835802e-3, 0.9150779394173306e-3,0.2313000070835802e-3,0.1698845695088106e-3, 0.3142031705565816e-3,0.3142031705565816e-3,0.1102326991347965e-3, 0.3142031705565816e-3,0.1102326991347965e-3,0.3459507712468638e-2, 0.1372444333085824e-3,0.1372444333085824e-3,0.5609250137857607e-3, 0.1372444333085824e-3,0.5609250137857607e-3,0.1897398437653978e-3, 0.2632533968883294e-3,0.2632533968883294e-3,0.1196989417613488e-3, 0.2632533968883294e-3,0.1196989417613488e-3,0.1399018943806244e-2, 0.1138948359758609e-3,0.1138948359758609e-3,0.3045246339149248e-3, 0.1138948359758609e-3,0.3045246339149248e-3,0.1115873307883615e-3, -0.4760906730816906e+0,0.5431696227154399e+0,-0.2877420590063439e+0, 0.5431696227154399e+0,-0.2877420590063439e+0,0.1728550020493715e-3, 0.8794603386687293e-4,0.8794603386687293e-4,0.1559841060693178e-3, 0.8794603386687293e-4,0.1559841060693178e-3,0.6645585617088351e-4, 0.3657659216717562e-3,0.3657659216717562e-3,0.5639304508059442e-4, 0.3657659216717562e-3,0.5639304508059442e-4,0.3934735221765134e-2, 0.1347849952295428e-3,0.1347849952295428e-3,0.6142308606226574e-4, 0.1347849952295428e-3,0.6142308606226574e-4,0.6661893561026761e-3, 0.1054668600601382e-3,0.1054668600601382e-3,0.5927180544859897e-4, 0.1054668600601382e-3,0.5927180544859897e-4,0.1098680337850833e-2, 0.7071001772514381e-4,0.7071001772514381e-4,0.2747790909914622e-3, 0.7071001772514381e-4,0.2747790909914622e-3,0.7461855624800195e-4, 0.1886652725419461e-3,0.1886652725419461e-3,0.5644767750830879e-4, 0.1886652725419461e-3,0.5644767750830879e-4,0.1514703871410358e-1, 0.8479417947822094e-4,0.8479417947822094e-4,0.1669934028989259e-3, 0.8479417947822094e-4,0.1669934028989259e-3,0.6793473813586763e-4, 0.3266313227220002e-3,0.3266313227220002e-3,0.5674548854559881e-4, 0.3266313227220002e-3,0.5674548854559881e-4,0.6287282677721673e-2, 0.1106368401950715e-3,0.1106368401950715e-3,0.6053995731181062e-4, 0.1106368401950715e-3,0.6053995731181062e-4,0.7913976625843851e-3, 0.1143781572478465e-3,0.1143781572478465e-3,0.6000295999830059e-4, 0.1143781572478465e-3,0.6000295999830059e-4,0.8962483030328786e-3, 0.6899633034686719e-4,0.6899633034686719e-4,0.3041328611869304e-3, 0.6899633034686719e-4,0.3041328611869304e-3,0.8284258584704493e-4, 0.1751178732564210e-3,0.1751178732564210e-3,0.5658065044245652e-4, 0.1751178732564210e-3,0.5658065044245652e-4,0.9285720823459838e-2, 0.6468137427324778e-4,0.6468137427324778e-4,0.4308155322950510e-3, 0.6468137427324778e-4,0.4308155322950510e-3,0.9261260660914518e-4, 0.1431875236770320e-3,0.1431875236770320e-3,0.5757936051594736e-4, 0.1431875236770320e-3,0.5757936051594736e-4,0.2413816096453975e-2, 0.9930547940897894e-4,0.9930547940897894e-4,0.1296752264585964e-3, 0.9930547940897894e-4,0.1296752264585964e-3,0.6275338091083291e-4, 0.5416548200909192e-3,0.5416548200909192e-3,0.5842966551264406e-4, 0.5416548200909192e-3,0.5842966551264406e-4,0.1499203227632296e-2, 0.7323983531898397e-4,0.7323983531898397e-4,0.2422612758651356e-3, 0.7323983531898397e-4,0.2422612758651356e-3,0.7684141711636654e-4, 0.2097437725855342e-3,0.2097437725855342e-3,0.5625288509274553e-4, 0.2097437725855342e-3,0.5625288509274553e-4,0.2048301765309298e-1, 0.9020914763643894e-4,0.9020914763643894e-4,0.1493391786229736e-3, 0.9020914763643894e-4,0.1493391786229736e-3,0.6554149429275607e-4, 0.3961861287168930e-3,0.3961861287168930e-3,0.5729959745091044e-4, 0.3961861287168930e-3,0.5729959745091044e-4,0.3035041907808402e-2, 0.1022883561329008e-3,0.1022883561329008e-3,0.1249183946724889e-3, 0.1022883561329008e-3,0.1249183946724889e-3,0.6206573381626393e-4, 0.5989298808691080e-3,0.5989298808691080e-3,0.5883221466827894e-4, 0.5989298808691080e-3,0.5883221466827894e-4,0.1275310400484650e-2, 0.7193836788723518e-4,0.7193836788723518e-4,0.2576813057629360e-3, 0.7193836788723518e-4,0.2576813057629360e-3,0.7843378028023659e-4, 0.1987311001382434e-3,0.1987311001382434e-3,0.5630733649577963e-4, 0.1987311001382434e-3,0.5630733649577963e-4,0.4619111642398583e-1, 0.1124763955756592e-3,0.1124763955756592e-3,0.6026639769285611e-4, 0.1124763955756592e-3,0.6026639769285611e-4,0.8413183246610148e-3, 0.6845771781688004e-4,0.6845771781688004e-4,0.3150592204659011e-3, 0.6845771781688004e-4,0.3150592204659011e-3,0.8380407140692748e-4, 0.1709714508940318e-3,0.1709714508940318e-3,0.5665906501426691e-4, 0.1709714508940318e-3,0.5665906501426691e-4,0.7566397972122756e-2, 0.6510480557593150e-4,0.6510480557593150e-4,0.4129281267273862e-3, 0.6510480557593150e-4,0.4129281267273862e-3,0.9139271207113828e-4, 0.1462047251430903e-3,0.1462047251430903e-3,0.5743525528477778e-4, 0.1462047251430903e-3,0.5743525528477778e-4,0.2697552273731426e-2, 0.7762611102681718e-4,0.7762611102681718e-4,0.2041119533398660e-3, 0.7762611102681718e-4,0.2041119533398660e-3,0.5862637134354665e-4, 0.1380369292929180e-2,0.1380369292929180e-2,0.7257971136921318e-4, 0.1380369292929180e-2,0.7257971136921318e-4,0.2497756000560482e-3, 0.6240382512391533e-4,0.6240382512391533e-4,0.5691733826928257e-3, 0.6240382512391533e-4,0.5691733826928257e-3,0.1007734014166686e-3, 0.1272546822394078e-3,0.1272546822394078e-3,0.5627621280667196e-4, 0.1272546822394078e-3,0.5627621280667196e-4,0.8665955106287616e-1, 0.6173889013943212e-4,0.6173889013943212e-4,0.6311735522739983e-3, 0.6173889013943212e-4,0.6311735522739983e-3,0.1038521938386863e-3, 0.1226626631810164e-3,0.1226626631810164e-3,0.5904731686728005e-4, 0.1226626631810164e-3,0.5904731686728005e-4,0.1181975061792600e-2, 0.6599174040940792e-4,0.6599174040940792e-4,0.3804939876683146e-3, 0.6599174040940792e-4,0.3804939876683146e-3,0.8906065524080525e-4, 0.1525968531033595e-3,0.1525968531033595e-3,0.5717230974591810e-4, 0.1525968531033595e-3,0.5717230974591810e-4,0.3440825120605058e-2, 0.7131529866360054e-4,0.7131529866360054e-4,0.2660058367917730e-3, 0.7131529866360054e-4,0.2660058367917730e-3,0.7926513114741066e-4, 0.1935866985995343e-3,0.1935866985995343e-3,0.5634627339372908e-4, 0.1935866985995343e-3,0.5634627339372908e-4,0.2937709118909205e-1, 0.6082380692150844e-4,0.6082380692150844e-4,0.7458951270439268e-3, 0.6082380692150844e-4,0.7458951270439268e-3,0.1088569720659201e-3, 0.5974948342390019e-4,0.5974948342390019e-4,0.9568811950877288e-3, 0.5974948342390019e-4,0.9568811950877288e-3,0.1163447819683455e-3, 0.6742700987040936e-4,0.6742700987040936e-4,0.3389008440021692e-3, 0.6742700987040936e-4,0.3389008440021692e-3,0.8581386747399124e-4, 0.1631749068467616e-3,0.1631749068467616e-3,0.5683996941383108e-4, 0.1631749068467616e-3,0.5683996941383108e-4,0.5309276516506640e-2, 0.6955097277938596e-4,0.6955097277938596e-4,0.2938052740290110e-3, 0.6955097277938596e-4,0.2938052740290110e-3,0.8190880691002491e-4, 0.1794421148111645e-3,0.1794421148111645e-3,0.5623734044645920e-4, 0.1794421148111645e-3,0.5623734044645920e-4,0.1167634665834735e-1, 0.6427091219301584e-4,0.6427091219301584e-4,0.4499550311805648e-3, 0.6427091219301584e-4,0.4499550311805648e-3,0.9387014957107914e-4, 0.1402819656449207e-3,0.1402819656449207e-3,0.5773199552171135e-4, 0.1402819656449207e-3,0.5773199552171135e-4,0.2172974126167264e-2, 0.9788282959394230e-4,0.9788282959394230e-4,0.1321839464002566e-3, 0.9788282959394230e-4,0.1321839464002566e-3,0.6311462715182011e-4, 0.5161554327051546e-3,0.5161554327051546e-3,0.5824198176735158e-4, 0.5161554327051546e-3,0.5824198176735158e-4,0.1634333682182328e-2, 0.7391926710804335e-4,0.7391926710804335e-4,0.2351131056298787e-3, 0.7391926710804335e-4,0.2351131056298787e-3,0.7607902158886092e-4, 0.2156422078856028e-3,0.2156422078856028e-3,0.5651020103131087e-4, 0.2156422078856028e-3,0.5651020103131087e-4,0.4439592935638661e+0, 0.8012090066203704e-4,0.8012090066203704e-4,0.3519247427973640e-3, 0.8012090066203704e-4,0.3519247427973640e-3,0.8686413653407661e-4, 0.1595077141859470e-3,0.1595077141859470e-3,0.5950581421224924e-4, 0.1595077141859470e-3,0.5950581421224924e-4,0.1024035077128965e-2, 0.1071344014445986e-3,0.1071344014445986e-3,0.6111812207724783e-4, 0.1071344014445986e-3,0.6111812207724783e-4,0.7043043018724323e-3, 0.1183790732789484e-3,0.1183790732789484e-3,0.5789324788946512e-4, 0.1183790732789484e-3,0.5789324788946512e-4,0.1966781886872593e-2, 0.7012205845840767e-4,0.7012205845840767e-4,0.2840336883698481e-3, 0.7012205845840767e-4,0.2840336883698481e-3,0.8100185815976544e-4, 0.2283078667002492e-3,0.2283078667002492e-3,0.5694256063267605e-4, 0.2283078667002492e-3,0.5694256063267605e-4,0.4544403922678898e-2, 0.6387314249555420e-4,0.6387314249555420e-4,0.4704660392145826e-3, 0.6387314249555420e-4,0.4704660392145826e-3,0.1204839912812346e-3, 0.5622957027120577e-4,0.5622957027120577e-4,0.4924825703519851e-3, 0.5622957027120577e-4,0.4924825703519851e-3,0.5806321052489571e-4, 0.1788887759333359e-2,0.1788887759333359e-2,0.7533827542425808e-4, 0.1788887759333359e-2,0.7533827542425808e-4,0.2218241531500721e-3, 0.9650377610676052e-4,0.9650377610676052e-4,0.1374827771253620e-3, 0.9650377610676052e-4,0.1374827771253620e-3,0.6348779927329075e-4, 0.9516672295803058e-4,0.9516672295803058e-4,0.1839542961703630e-3, 0.9516672295803058e-4,0.1839542961703630e-3,0.5705331991573311e-4, -0.4557755622772656e+0,0.5559513892316170e+0,-0.3005291574163789e+0, 0.5559513892316170e+0,-0.3005291574163789e+0,0.6693416657141503e-4, 0.51197860991182640e-4,0.51197860991182640e-4,0.10161069132250370e-3, 0.51197860991182640e-4,0.10161069132250370e-3,0.41196667924051210e-4, 0.19608836314209930e-3,0.19608836314209930e-3,0.34341722303310010e-4, 0.19608836314209930e-3,0.34341722303310010e-4,0.39304179198180670e-2, 0.67219283870562240e-4,0.67219283870562240e-4,0.36613415727927890e-4, 0.67219283870562240e-4,0.36613415727927890e-4,0.48516496708414020e-3, 0.68980422486739310e-4,0.68980422486739310e-4,0.36360593639053290e-4, 0.68980422486739310e-4,0.36360593639053290e-4,0.53440327203882520e-3, 0.41696459623114320e-4,0.41696459623114320e-4,0.18550473234007120e-3, 0.41696459623114320e-4,0.18550473234007120e-3,0.50279107513590810e-4, 0.10543436878386680e-3,0.10543436878386680e-3,0.34264114460350100e-4, 0.10543436878386680e-3,0.34264114460350100e-4,0.53061047184448470e-2, 0.39618953558457650e-4,0.39618953558457650e-4,0.24194886876631730e-3, 0.39618953558457650e-4,0.24194886876631730e-3,0.89971783192729480e-4, 0.54767648793392910e-4,0.54767648793392910e-4,0.34707009275788340e-4, 0.54767648793392910e-4,0.34707009275788340e-4,0.17828007262509800e-2, 0.61715533519597670e-4,0.61715533519597670e-4,0.75929140607826500e-4, 0.61715533519597670e-4,0.75929140607826500e-4,0.37619260641129640e-4, 0.35824054557195080e-3,0.35824054557195080e-3,0.35588798437630180e-4, 0.35824054557195080e-3,0.35588798437630180e-4,0.78442650308241470e-3, 0.43635963046566920e-4,0.43635963046566920e-4,0.15487853320236220e-3, 0.43635963046566920e-4,0.15487853320236220e-3,0.47372638024376200e-4, 0.12100211866500490e-3,0.12100211866500490e-3,0.34083936898481420e-4, 0.12100211866500490e-3,0.34083936898481420e-4,0.29398302599740090e-1, 0.39214009422387860e-4,0.39214009422387860e-4,0.25823387182514100e-3, 0.39214009422387860e-4,0.25823387182514100e-3,0.55899099346155900e-4, 0.87076352058090800e-4,0.87076352058090800e-4,0.34838724896868970e-4, 0.87076352058090800e-4,0.34838724896868970e-4,0.14928721662855450e-2, 0.37943007446220920e-4,0.37943007446220920e-4,0.33131986483480580e-3, 0.37943007446220920e-4,0.33131986483480580e-3,0.60311359621189150e-4, 0.78168201474187070e-4,0.78168201474187070e-4,0.35399274468983900e-4, 0.78168201474187070e-4,0.35399274468983900e-4,0.88938032364687940e-3, 0.44248678436378730e-4,0.44248678436378730e-4,0.13469241361925770e-3, 0.44248678436378730e-4,0.13469241361925770e-3,0.46622984706902170e-4, 0.12618453088392280e-3,0.12618453088392280e-3,0.34058300464161710e-4, 0.12618453088392280e-3,0.34058300464161710e-4,0.11678775906472920e-1, 0.66372152042938810e-4,0.66372152042938810e-4,0.36745434120175940e-4, 0.66372152042938810e-4,0.36745434120175940e-4,0.46311685156831160e-3, 0.69895902326762050e-4,0.69895902326762050e-4,0.36239696296340650e-4, 0.69895902326762050e-4,0.36239696296340650e-4,0.56195659542162990e-3, 0.51673228442071950e-4,0.51673228442071950e-4,0.99788755549914990e-4, 0.51673228442071950e-4,0.99788755549914990e-4,0.40955249255781190e-4, 0.20174896262082900e-3,0.20174896262082900e-3,0.34384939098098060e-4, 0.20174896262082900e-3,0.34384939098098060e-4,0.34361001823949920e-2, 0.41955054309781140e-4,0.41955054309781140e-4,0.18055367955013010e-3, 0.41955054309781140e-4,0.18055367955013010e-3,0.49835188189915010e-4, 0.10744130650690170e-3,0.10744130650690170e-3,0.34229697163937900e-4, 0.10744130650690170e-3,0.34229697163937900e-4,0.62849380770052350e-2, 0.37463622263031270e-4,0.37463622263031270e-4,0.37299682713149310e-3, 0.37463622263031270e-4,0.37299682713149310e-3,0.62443972401646280e-4, 0.74854813996164650e-4,0.74854813996164650e-4,0.35688613854388150e-4, 0.74854813996164650e-4,0.35688613854388150e-4,0.73887729043269190e-3, 0.54221515181078760e-4,0.54221515181078760e-4,0.91485560734312830e-4, 0.54221515181078760e-4,0.91485560734312830e-4,0.39828792401589500e-4, 0.23440698140554270e-3,0.23440698140554270e-3,0.34645769343547910e-4, 0.23440698140554270e-3,0.34645769343547910e-4,0.19608429807286960e-2, 0.43339775406348550e-4,0.43339775406348550e-4,0.15872872650786420e-3, 0.43339775406348550e-4,0.15872872650786420e-3,0.47760283290993970e-4, 0.11854450031338470e-3,0.11854450031338470e-3,0.34101042151715260e-4, 0.11854450031338470e-3,0.34101042151715260e-4,0.20494148151484270e-1, 0.56485149684906990e-4,0.56485149684906990e-4,0.85691404506063020e-4, 0.56485149684906990e-4,0.85691404506063020e-4,0.39018736654025530e-4, 0.26703438129131240e-3,0.26703438129131240e-3,0.34909246046280860e-4, 0.26703438129131240e-3,0.34909246046280860e-4,0.13739365526481620e-2, 0.59634596842487740e-4,0.59634596842487740e-4,0.79335104002714400e-4, 0.59634596842487740e-4,0.79335104002714400e-4,0.38111241964568680e-4, 0.31902284651910530e-3,0.31902284651910530e-3,0.35309498490224230e-4, 0.31902284651910530e-3,0.35309498490224230e-4,0.95007074463371340e-3, 0.44565500461606810e-4,0.44565500461606810e-4,0.14420301080000240e-3, 0.44565500461606810e-4,0.14420301080000240e-3,0.46260582849821010e-4, 0.12891790218178060e-3,0.12891790218178060e-3,0.34049760699987690e-4, 0.12891790218178060e-3,0.34049760699987690e-4,0.86768645298366210e-1, 0.68088466923113580e-4,0.68088466923113580e-4,0.36485151443291110e-4, 0.68088466923113580e-4,0.36485151443291110e-4,0.50887033059735690e-3, 0.41443701680337790e-4,0.41443701680337790e-4,0.19067846311075390e-3, 0.41443701680337790e-4,0.19067846311075390e-3,0.50733244430071350e-4, 0.10349171933722230e-3,0.10349171933722230e-3,0.34301451967782100e-4, 0.10349171933722230e-3,0.34301451967782100e-4,0.45405924555022290e-2, 0.39414054246594360e-4,0.39414054246594360e-4,0.24988200925700690e-3, 0.39414054246594360e-4,0.24988200925700690e-3,0.55326723505235670e-4, 0.88502609249332070e-4,0.88502609249332070e-4,0.34771320405388490e-4, 0.88502609249332070e-4,0.34771320405388490e-4,0.16281170040560460e-2, 0.61004837198072480e-4,0.61004837198072480e-4,0.77033249779553710e-4, 0.61004837198072480e-4,0.77033249779553710e-4,0.37779035023823050e-4, 0.34437144627381620e-3,0.34437144627381620e-3,0.35492363434092850e-4, 0.34437144627381620e-3,0.35492363434092850e-4,0.83439696031691120e-3, 0.43938882458280830e-4,0.43938882458280830e-4,0.15117925475715860e-3, 0.43938882458280830e-4,0.15117925475715860e-3,0.46993605212344470e-4, 0.12354740779474060e-3,0.12354740779474060e-3,0.34069691259510610e-4, 0.12354740779474060e-3,0.34069691259510610e-4,0.46235737233040220e-1, 0.40043658511070780e-4,0.40043658511070780e-4,0.22723109611499360e-3, 0.40043658511070780e-4,0.22723109611499360e-3,0.53687975421554380e-4, 0.93045713236984100e-4,0.93045713236984100e-4,0.34587579559273570e-4, 0.93045713236984100e-4,0.34587579559273570e-4,0.21672059302852150e-2, 0.63190698465330800e-4,0.63190698465330800e-4,0.73809255830719970e-4, 0.63190698465330800e-4,0.73809255830719970e-4,0.37312059822027480e-4, 0.38871754212278700e-3,0.38871754212278700e-3,0.35791845408466290e-4, 0.38871754212278700e-3,0.35791845408466290e-4,0.69724250248969040e-3, 0.43050179268224070e-4,0.43050179268224070e-4,0.16273809501428660e-3, 0.43050179268224070e-4,0.16273809501428660e-3,0.48156747898364850e-4, 0.11617062369171900e-3,0.11617062369171900e-3,0.34121012751444520e-4, 0.11617062369171900e-3,0.34121012751444520e-4,0.15152755086371670e-1, 0.65546379172585550e-4,0.65546379172585550e-4,0.70835690235106420e-4, 0.65546379172585550e-4,0.70835690235106420e-4,0.36881255894428050e-4, 0.44257505508759380e-3,0.44257505508759380e-3,0.36122414967328470e-4, 0.44257505508759380e-3,0.36122414967328470e-4,0.59174923557097530e-3, 0.40719339925858690e-4,0.40719339925858690e-4,0.20767592814843830e-3, 0.40719339925858690e-4,0.20767592814843830e-3,0.52159627597739590e-4, 0.98023512054248600e-4,0.98023512054248600e-4,0.34431117007247060e-4, 0.98023512054248600e-4,0.34431117007247060e-4,0.30299830814009470e-2, 0.42219601871404760e-4,0.42219601871404760e-4,0.17581276448499360e-3, 0.42219601871404760e-4,0.17581276448499360e-3,0.49401233241428460e-4, 0.10951534608447060e-3,0.10951534608447060e-3,0.34198188466463420e-4, 0.10951534608447060e-3,0.34198188466463420e-4,0.75651523730351550e-2, 0.38828156044946390e-4,0.38828156044946390e-4,0.27631618667687260e-3, 0.38828156044946390e-4,0.27631618667687260e-3,0.57085261814561280e-4, 0.84346234742764430e-4,0.84346234742764430e-4,0.34982908298511220e-4, 0.84346234742764430e-4,0.34982908298511220e-4,0.12687866327572120e-2, 0.58974063898079230e-4,0.58974063898079230e-4,0.80535116684041810e-4, 0.58974063898079230e-4,0.80535116684041810e-4,0.38283804711943380e-4, 0.30742338525053850e-3,0.30742338525053850e-3,0.35223003743007880e-4, 0.30742338525053850e-3,0.35223003743007880e-4,0.10172869542415820e-2, 0.44889502867940540e-4,0.44889502867940540e-4,0.14091201699704500e-3, 0.44889502867940540e-4,0.14091201699704500e-3,0.45906212235132180e-4, 0.13175220538701570e-3,0.13175220538701570e-3,0.34044069110022680e-4, 0.13175220538701570e-3,0.34044069110022680e-4,0.44376216576532780e+0, 0.53166694521618130e-4,0.53166694521618130e-4,0.94654101702780900e-4, 0.53166694521618130e-4,0.94654101702780900e-4,0.40263642396379670e-4, 0.22039796822044410e-3,0.22039796822044410e-3,0.34480271720408230e-4, 0.22039796822044410e-3,0.34480271720408230e-4,0.24082464858150430e-2, 0.83039381999489080e-4,0.83039381999489080e-4,0.63956278124872170e-4, 0.83039381999489080e-4,0.63956278124872170e-4,0.37164515166785710e-4, 0.40548854237959610e-3,0.40548854237959610e-3,0.35898530201055530e-4, 0.40548854237959610e-3,0.35898530201055530e-4,0.65908596108314280e-3, 0.42767038734584320e-4,0.42767038734584320e-4,0.16691547326696120e-3, 0.42767038734584320e-4,0.16691547326696120e-3,0.45559691481975610e-4, 0.11387677826842480e-3,0.11387677826842480e-3,0.35059737265512830e-4, 0.11387677826842480e-3,0.35059737265512830e-4,0.11753692545863060e-2, 0.37020932012707580e-4,0.37020932012707580e-4,0.42340545603542500e-3, 0.37020932012707580e-4,0.42340545603542500e-3,0.64741300630876390e-4, 0.71800603670396030e-4,0.71800603670396030e-4,0.36008706739450310e-4, 0.71800603670396030e-4,0.36008706739450310e-4,0.62403062874376890e-3, 0.40488837427711510e-4,0.40488837427711510e-4,0.21388617109773310e-3, 0.40488837427711510e-4,0.21388617109773310e-3,0.52657349237959950e-4, 0.96312682261264620e-4,0.96312682261264620e-4,0.34143855395578870e-4, 0.96312682261264620e-4,0.34143855395578870e-4,0.26922160489953090e-2, 0.42490222132286510e-4,0.42490222132286510e-4,0.17127031858374530e-3, 0.42490222132286510e-4,0.17127031858374530e-3,0.48976997942129490e-4, 0.11165945761406650e-3,0.11165945761406650e-3,0.34169577752484550e-4, 0.11165945761406650e-3,0.34169577752484550e-4,0.92859850065404230e-2, 0.45220845017300730e-4,0.45220845017300730e-4,0.13774381113953440e-3, 0.45220845017300730e-4,0.13774381113953440e-3,0.58329293965853250e-4, 0.81769452677285630e-4,0.81769452677285630e-4,0.38642190160287640e-4, 0.81769452677285630e-4,0.38642190160287640e-4,0.29646976146042270e-3, 0.35139759745481790e-4,0.35139759745481790e-4,0.10920001191845130e-2, 0.35139759745481790e-4,0.10920001191845130e-2,0.57699837568035170e-4, 0.28611496437846720e-3,0.28611496437846720e-3,0.34041223790750270e-4, 0.28611496437846720e-3,0.34041223790750270e-4,0.38460763956204020e-4, 0.72791495497113810e-4,0.72791495497113810e-4,0.48562245730689870e-4, 0.72791495497113810e-4,0.48562245730689870e-4,0.14762316083145120e-3, -0.46839385927985340e+0,0.54748393239694460e+0,-0.29219781218356480e+0, 0.54748393239694460e+0,-0.29219781218356480e+0,0.34532419973175940e-4, 0.2854939231264389e-4,0.2854939231264389e-4,0.6395210936050434e-4, 0.2854939231264389e-4,0.6395210936050434e-4,0.2051785507702231e-4, 0.5192983657517473e-3,0.5192983657517473e-3,0.2453709186636645e-4, 0.5192983657517473e-3,0.2453709186636645e-4,0.1009174410957348e-3, 0.2201130479865847e-4,0.2201130479865847e-4,0.1911126917488530e-3, 0.2201130479865847e-4,0.1911126917488530e-3,0.3491779138465434e-4, 0.4540290894573798e-4,0.4540290894573798e-4,0.1982169078787312e-4, 0.4540290894573798e-4,0.1982169078787312e-4,0.4675003044911219e-2, 0.2567778799291618e-4,0.2567778799291618e-4,0.8532749792941040e-4, 0.2567778799291618e-4,0.8532749792941040e-4,0.2141378101648924e-4, 0.2522185292731416e-3,0.2522185292731416e-3,0.3245142945627677e-4, 0.2522185292731416e-3,0.3245142945627677e-4,0.5038181206330221e-4, 0.1997363804031099e-4,0.1997363804031099e-4,0.1673041031667479e-2, 0.1997363804031099e-4,0.1673041031667479e-2,0.2700505422077120e-4, 0.7334814066832329e-4,0.7334814066832329e-4,0.2091875954309112e-4, 0.7334814066832329e-4,0.2091875954309112e-4,0.3496830547243688e-3, 0.3034888539262456e-4,0.3034888539262456e-4,0.5645387202965999e-4, 0.3034888539262456e-4,0.5645387202965999e-4,0.2020448595755236e-4, 0.8548820219728689e-3,0.8548820219728689e-3,0.2355839650054794e-4, 0.8548820219728689e-3,0.2355839650054794e-4,0.1217136553896909e-3, 0.2272183313047774e-4,0.2272183313047774e-4,0.1503040207111383e-3, 0.2272183313047774e-4,0.1503040207111383e-3,0.3782585931086922e-4, 0.4127664462817298e-4,0.4127664462817298e-4,0.1974629500149606e-4, 0.4127664462817298e-4,0.1974629500149606e-4,0.4762481045181510e-1, 0.2749400836943466e-4,0.2749400836943466e-4,0.6996845413363466e-4, 0.2749400836943466e-4,0.6996845413363466e-4,0.2077502684646142e-4, 0.3954133908703511e-3,0.3954133908703511e-3,0.2971797853369174e-4, 0.3954133908703511e-3,0.2971797853369174e-4,0.5877494732055006e-4, 0.2029955580276558e-4,0.2029955580276558e-4,0.7134956235495635e-3, 0.2029955580276558e-4,0.7134956235495635e-3,0.2527814796849340e-4, 0.9005880719852324e-4,0.9005880719852324e-4,0.2160109487553139e-4, 0.9005880719852324e-4,0.2160109487553139e-4,0.2288452406575260e-3, 0.3322968059810997e-4,0.3322968059810997e-4,0.4861416174116007e-4, 0.3322968059810997e-4,0.4861416174116007e-4,0.1991436345914009e-4, 0.2228708701482198e-2,0.2228708701482198e-2,0.2386794010935285e-4, 0.2228708701482198e-2,0.2386794010935285e-4,0.1140704806409944e-3, 0.2247168724990004e-4,0.2247168724990004e-4,0.1622514229624652e-3, 0.2247168724990004e-4,0.1622514229624652e-3,0.3680174637706332e-4, 0.4256932689326857e-4,0.4256932689326857e-4,0.1976301652904962e-4, 0.4256932689326857e-4,0.1976301652904962e-4,0.1561203063451092e-1, 0.2654015737880450e-4,0.2654015737880450e-4,0.7701214865746648e-4, 0.2654015737880450e-4,0.7701214865746648e-4,0.2107293492156357e-4, 0.3115769717259390e-3,0.3115769717259390e-3,0.3101335989061020e-4, 0.3115769717259390e-3,0.3101335989061020e-4,0.5429014967269275e-4, 0.2011857371932694e-4,0.2011857371932694e-4,0.1043408875341346e-2, 0.2011857371932694e-4,0.1043408875341346e-2,0.2419392786277494e-4, 0.1071692960215918e-3,0.1071692960215918e-3,0.2223500461256568e-4, 0.1071692960215918e-3,0.2223500461256568e-4,0.1757597481708787e-3, 0.3583362589366815e-4,0.3583362589366815e-4,0.4394258643733910e-4, 0.3583362589366815e-4,0.4394258643733910e-4,0.1978813424166864e-4, 0.7792331902620007e-2,0.7792331902620007e-2,0.2489821758432978e-4, 0.7792331902620007e-2,0.2489821758432978e-4,0.9523629672676908e-4, 0.2180014037073642e-4,0.2180014037073642e-4,0.2086615007631790e-3, 0.2180014037073642e-4,0.2086615007631790e-3,0.3405084772151086e-4, 0.4695745804197193e-4,0.4695745804197193e-4,0.1986374327159400e-4, 0.4695745804197193e-4,0.1986374327159400e-4,0.3118002553877718e-2, 0.2609810963864186e-4,0.2609810963864186e-4,0.8099287864400658e-4, 0.2609810963864186e-4,0.8099287864400658e-4,0.2123783898272738e-4, 0.2794900573031592e-3,0.2794900573031592e-3,0.3171346342409830e-4, 0.2794900573031592e-3,0.3171346342409830e-4,0.5227018014573681e-4, 0.2004166894529176e-4,0.2004166894529176e-4,0.1302653253130018e-2, 0.2004166894529176e-4,0.1302653253130018e-2,0.2800832058428110e-4, 0.6684474030911918e-4,0.6684474030911918e-4,0.2064147295859748e-4, 0.6684474030911918e-4,0.2064147295859748e-4,0.4509463765114682e-3, 0.2911873469281630e-4,0.2911873469281630e-4,0.6126863629398420e-4, 0.2911873469281630e-4,0.6126863629398420e-4,0.2040395050934914e-4, 0.6047427249358356e-3,0.6047427249358356e-3,0.2326461452656810e-4, 0.6047427249358356e-3,0.2326461452656810e-4,0.1302086423226916e-3, 0.2298595784140845e-4,0.2298595784140845e-4,0.1396863855598545e-3, 0.2298595784140845e-4,0.1396863855598545e-3,0.3891001700544618e-4, 0.4005865665173498e-4,0.4005865665173498e-4,0.1974258166862778e-4, 0.4005865665173498e-4,0.1974258166862778e-4,0.8891921904368920e-1, 0.2540912478004451e-4,0.2540912478004451e-4,0.8843472319843332e-4, 0.2540912478004451e-4,0.8843472319843332e-4,0.2153737172612036e-4, 0.2362505573914286e-3,0.2362505573914286e-3,0.3296562953781371e-4, 0.2362505573914286e-3,0.3296562953781371e-4,0.4919058993052970e-4, 0.1993315533691752e-4,0.1993315533691752e-4,0.2016000558169837e-2, 0.1993315533691752e-4,0.2016000558169837e-2,0.2732827231549935e-4, 0.7106525136178148e-4,0.7106525136178148e-4,0.2082179417909269e-4, 0.7106525136178148e-4,0.2082179417909269e-4,0.3792025374418422e-3, 0.2992467172057884e-4,0.2992467172057884e-4,0.5798286660460991e-4, 0.2992467172057884e-4,0.5798286660460991e-4,0.2026683837686716e-4, 0.7564156416098478e-3,0.7564156416098478e-3,0.2430636973929888e-4, 0.7564156416098478e-3,0.2430636973929888e-4,0.1050173417816384e-3, 0.2215901822636955e-4,0.2215901822636955e-4,0.1806566513351597e-3, 0.2215901822636955e-4,0.1806566513351597e-3,0.3552271192937976e-4, 0.4441934791292662e-4,0.4441934791292662e-4,0.1979837958814266e-4, 0.4441934791292662e-4,0.1979837958814266e-4,0.6472868964056924e-2, 0.2669252635982589e-4,0.2669252635982589e-4,0.7575731199074937e-4, 0.2669252635982589e-4,0.7575731199074937e-4,0.2102036564396927e-4, 0.3235405491587992e-3,0.3235405491587992e-3,0.3078801479336957e-4, 0.3235405491587992e-3,0.3078801479336957e-4,0.5499477801229046e-4, 0.2014620323386758e-4,0.2014620323386758e-4,0.9741216171055970e-3, 0.2014620323386758e-4,0.9741216171055970e-3,0.2376296646961465e-4, 0.1165307259924030e-3,0.1165307259924030e-3,0.2255354857872450e-4, 0.1165307259924030e-3,0.2255354857872450e-4,0.1581078941528752e-3, 0.3713670332761178e-4,0.3713670332761178e-4,0.4212978202468662e-4, 0.3713670332761178e-4,0.4212978202468662e-4,0.1975651147000684e-4, 0.2111621489849421e-1,0.2111621489849421e-1,0.2595564154722690e-4, 0.2111621489849421e-1,0.2595564154722690e-4,0.8239644225017478e-4, 0.2129524391762934e-4,0.2129524391762934e-4,0.2699148191260962e-3, 0.2129524391762934e-4,0.2699148191260962e-3,0.3195512958833712e-4, 0.5162666369478089e-4,0.5162666369478089e-4,0.2001801212202455e-4, 0.5162666369478089e-4,0.2001801212202455e-4,0.1411039637077915e-2, 0.2477579579571362e-4,0.2477579579571362e-4,0.9707095281092766e-4, 0.2477579579571362e-4,0.9707095281092766e-4,0.2186916201648878e-4, 0.2025428832074265e-3,0.2025428832074265e-3,0.3433459433490981e-4, 0.2025428832074265e-3,0.3433459433490981e-4,0.4642833276575716e-4, 0.1984877765826999e-4,0.1984877765826999e-4,0.3536595766607164e-2, 0.1984877765826999e-4,0.3536595766607164e-2,0.2818563227211816e-4, 0.6585599355623209e-4,0.6585599355623209e-4,0.2059917439958627e-4, 0.6585599355623209e-4,0.2059917439958627e-4,0.4721260125077478e-3, 0.2892571462762092e-4,0.2892571462762092e-4,0.6214113188896829e-4, 0.2892571462762092e-4,0.6214113188896829e-4,0.2044085238718792e-4, 0.5740284523167527e-3,0.5740284523167527e-3,0.2336083075337178e-4, 0.5740284523167527e-3,0.2336083075337178e-4,0.1272747360373466e-3, 0.2289632972349478e-4,0.2289632972349478e-4,0.1430903119882924e-3, 0.2289632972349478e-4,0.1430903119882924e-3,0.2581554721843980e-4, 0.8384078838081793e-4,0.8384078838081793e-4,0.2135388714249066e-4, 0.8384078838081793e-4,0.2135388714249066e-4,0.2608355278136665e-3, 0.3220108838311426e-4,0.3220108838311426e-4,0.5099734182177761e-4, 0.3220108838311426e-4,0.5099734182177761e-4,0.1999533660427757e-4, 0.1533635221452478e-2,0.1533635221452478e-2,0.2502272827030977e-4, 0.1533635221452478e-2,0.2502272827030977e-4,0.9345752384129992e-4, 0.2173246503325741e-4,0.2173246503325741e-4,0.2150719485912417e-3, 0.2173246503325741e-4,0.2150719485912417e-3,0.3377218530504890e-4, 0.4749792673493065e-4,0.4749792673493065e-4,0.1987966072924208e-4, 0.4749792673493065e-4,0.1987966072924208e-4,0.2769856585202598e-2, 0.2783398127395672e-4,0.2783398127395672e-4,0.6785913862031401e-4, 0.2783398127395672e-4,0.6785913862031401e-4,0.2068487535288822e-4, 0.4311809975149026e-3,0.4311809975149026e-3,0.2931507606773188e-4, 0.4311809975149026e-3,0.2931507606773188e-4,0.6041720974299877e-4, 0.2036810513094914e-4,0.2036810513094914e-4,0.6380221452089648e-3, 0.2036810513094914e-4,0.6380221452089648e-3,0.2408339401971605e-4, 0.1093932831160238e-3,0.1093932831160238e-3,0.2231243326343716e-4, 0.1093932831160238e-3,0.2231243326343716e-4,0.1710672521125244e-3, 0.3615034685234670e-4,0.3615034685234670e-4,0.4347549305662360e-4, 0.3615034685234670e-4,0.4347549305662360e-4,0.1977882642445252e-4, 0.9565881508594270e-2,0.9565881508594270e-2,0.2684747706778030e-4, 0.9565881508594270e-2,0.2684747706778030e-4,0.7453637502627767e-4, 0.2096897738042850e-4,0.2096897738042850e-4,0.3362229901262604e-3, 0.2096897738042850e-4,0.3362229901262604e-3,0.3854169394789898e-4, 0.4045669366319275e-4,0.4045669366319275e-4,0.1973979727999000e-4, 0.4045669366319275e-4,0.1973979727999000e-4,0.4386222444610512e+0, 0.3056654872244681e-4,0.3056654872244681e-4,0.5571585118489064e-4, 0.3056654872244681e-4,0.5571585118489064e-4,0.2017483879376742e-4, 0.9115606298064600e-3,0.9115606298064600e-3,0.2345875022619936e-4, 0.9115606298064600e-3,0.2345875022619936e-4,0.1244446834401361e-3, 0.2280829497854017e-4,0.2280829497854017e-4,0.1466271911395111e-3, 0.2280829497854017e-4,0.1466271911395111e-3,0.3818036276923079e-4, 0.4086262373442708e-4,0.4086262373442708e-4,0.1975093797731458e-4, 0.4086262373442708e-4,0.1975093797731458e-4,0.3029017035433408e-1, 0.2624299109483879e-4,0.2624299109483879e-4,0.7962858990618148e-4, 0.2624299109483879e-4,0.7962858990618148e-4,0.2118166028719211e-4, 0.2895980169015215e-3,0.2895980169015215e-3,0.3147600264954836e-4, 0.2895980169015215e-3,0.3147600264954836e-4,0.5292830857310305e-4, 0.2006631162197865e-4,0.2006631162197865e-4,0.1206359857654832e-02, 0.2006631162197865e-4,0.1206359857654832e-2,0.2465543095699396e-04, 0.9896384244937268e-4,0.9896384244937268e-4,0.2193954502023498e-04, 0.9896384244937268e-4,0.2193954502023498e-4,0.1966986633729502e-03, 0.3462353714478440e-4,0.3462353714478440e-4,0.4591024747423779e-04, 0.3462353714478440e-4,0.4591024747423779e-4,0.1983476104934234e-04, 0.4046094940818183e-2,0.4046094940818183e-2,0.2766256115849852e-04, 0.4046094940818183e-2,0.2766256115849852e-4,0.6890006995395185e-04, 0.2072939031926428e-4,0.2072939031926428e-4,0.4127066876776266e-03, 0.2072939031926428e-4,0.4127066876776266e-3,0.2951480228392970e-04, 0.5958619166455701e-4,0.5958619166455701e-4,0.2033330917839852e-04, 0.5958619166455701e-4,0.2033330917839852e-4,0.6741606675715499e-03, 0.2365979368802508e-4,0.2365979368802508e-4,0.1190771004598618e-03, 0.2365979368802508e-4,0.1190771004598618e-3,0.2263692417691780e-04, 0.1541282652727628e-3,0.1541282652727628e-3,0.3647300796836789e-04, 0.1541282652727628e-3,0.3647300796836789e-4,0.4301781984257157e-04, 0.1977045437989326e-4,0.1977045437989326e-4,0.1203189847779800e-01, 0.1977045437989326e-4,0.1203189847779800e-1,0.2716530364689954e-04, 0.7219146436412886e-4,0.7219146436412886e-4,0.2086970182172562e-04, 0.7219146436412886e-4,0.2086970182172562e-4,0.3639856346175968e-03, 0.3013495051182238e-4,0.3013495051182238e-4,0.5720936290522985e-04, 0.3013495051182238e-4,0.5720936290522985e-4,0.2023515049246316e-04, 0.8033703081975564e-3,0.8033703081975564e-3,0.2397474046842758e-04, 0.8033703081975564e-3,0.2397474046842758e-4,0.1116925382739447e-03, 0.2239132154776664e-4,0.2239132154776664e-4,0.1665679591598375e-03, 0.2239132154776664e-4,0.1665679591598375e-3,0.3521747563310610e-04, 0.4490603376079471e-4,0.4490603376079471e-4,0.1980956439884101e-04, 0.4490603376079471e-4,0.1980956439884101e-4,0.5464009038574440e-02, 0.2639032648639676e-4,0.2639032648639676e-4,0.7830213758507075e-04, 0.2639032648639676e-4,0.7830213758507075e-4,0.2112669608345274e-04, 0.3002789467902159e-3,0.3002789467902159e-3,0.3124266235529018e-04, 0.3002789467902159e-3,0.3124266235529018e-4,0.5360148197894120e-04, 0.2009194489801654e-4,0.2009194489801654e-4,0.1120423413505869e-02, 0.2009194489801654e-4,0.1120423413505869e-2,0.2442074804906302e-04, 0.1029343573766687e-3,0.1029343573766687e-3,0.2208445714291506e-04, 0.1029343573766687e-3,0.2208445714291506e-4,0.1857699901750056e-03, 0.3270624494111179e-4,0.3270624494111179e-4,0.4977968625559511e-04, 0.3270624494111179e-4,0.4977968625559511e-4,0.1832482820013657e-02, 0.2514936056600602e-4,0.2514936056600602e-4,0.9173240138754972e-04, 0.2514936056600602e-4,0.9173240138754972e-4,0.2166612131400504e-04, 0.22179306659979075e-3,0.22179306659979075e-3,0.33498498213184707e-4, 0.22179306659979075e-3,0.33498498213184707e-4,0.48050052915205633e-4, 0.19896533055280618e-4,0.19896533055280618e-4,0.24771592091872084e-2, 0.19896533055280618e-4,0.24771592091872084e-2,0.25542326129265426e-4, 0.13325152973885215e-3,0.13325152973885215e-3,0.21474938213123001e-4, 0.13325152973885215e-3,0.21474938213123001e-4,0.24403297737851022e-3, 0.23077200292764951e-4,0.23077200292764951e-4,0.13640884641872292e-3, 0.23077200292764951e-4,0.13640884641872292e-3,0.39668321070634110e-4, 0.64892053354505223e-4,0.64892053354505223e-4,0.20557971187156988e-4, 0.64892053354505223e-4,0.20557971187156988e-4,0.54562222154862965e-3, 0.28735953952505441e-4,0.28735953952505441e-4,0.63035384203333504e-4, 0.28735953952505441e-4,0.63035384203333504e-4,0.20478818065726965e-4, 0.23170078533532433e-4,0.23170078533532433e-4,0.49485815205661701e-3, 0.23170078533532433e-4,0.49485815205661701e-3,0.19739797279989982e-4, 0.37478024330443648e-4,0.37478024330443648e-4,0.22391321547766630e-4, 0.37478024330443648e-4,0.22391321547766630e-4,0.41698960476035002e-4, 0.19737013414938452e-4,0.19737013414938452e-4,0.28365970872542253e-4, 0.19737013414938452e-4,0.28365970872542253e-4,0.86858229336522362e-4, -0.48121500846540849e+0,0.53017893189276518e+0,-0.27846926883426556e+0, 0.53017893189276518e+0,-0.2784692688342656e+0,0.19952912272757273e-4}; long j; long _size=y.size(); Vector z0(_size), z1(_size), z2(_size), z3(_size), oldEigenVector(_size); double lambdaOld = 0.; //Vector z0, z1, z2, z3; if ( h0 < 1.e-14 ) { cout << "Initial step h0 is too small" << endl; return; } if ( tend <= t ) { cout << "End-time Tend is less than initial time" << endl; return; } h_new=h0; // z0=f.compute(y,t); f.compute(y,t,z0); if ( isComputeEigenValue ) { f.compute(z0,t,oldEigenVector); numOfRHSEvaluations++; } numOfRHSEvaluations++; long stepId=0; bool stepOK = true; do { if ( isComputeEigenValue ) {//calculate eigen value only every 20th step if ( stepId%20 == 0 || !stepOK ) { double ev = abs( eigenvalue(y, z0, t, f, oldEigenVector, z1, lambdaOld, numOfRHSEvaluations,minimumValue) ); if ( ev < minimumValue ) { ev = minimumValue; } cou = 2./ (ev*1.2); } } else { cou = f.cour (y, t); } if ( maxCou < cou ) { maxCou=cou; }; meanCou += cou; numOfSteps++; h=min(h_new,(tend-t)); // find degree of the polynomials to be used int index=0; while( (index!=_n_p-1) && ((2.e+0*h/cou)>stab_reg[index]) ) { index++; }; if(index>0) { if(((stab_reg[index-1]/((double) n_deg[index-1]))*((double) n_deg[index]))>(2.*h/cou)) { index=index-1; }; }; int n_pol_degree=n_deg[index]; cout << "Time= " << t << " Degree of the polynomial=" << n_pol_degree << endl; h=min((stab_reg[index]*cou/2.e+0),h); long n_pol=0; numOfRHSEvaluations0 = numOfRHSEvaluations; for (int k=index_first[index]-1; k < index_last[index]; k++ ) { // save initial conditions (solution, right hand side, time) // that will be needed if time step will be rejected if(k==index_first[index]-1) { /* code for paraller exceution via OpemMP - you may want to use it #pragma parallel shared(y,z0,z2,z3) local(j) #pragma pfor */ for ( j=0; j<_size; j++ ) { z2[j]=z0[j]; //z2=z_en z3[j]=y[j]; //z3=y_en }; t_en=t; }; n_pol=n_pol+3; int _idx=_sz2*k; a_21=h*coef[_idx]; c_2=a_21; a_31=h*coef[_idx+1]; a_32=h*coef[_idx+2]; c_3=a_31+a_32; a_41=h*coef[_idx+3]; a_42=h*coef[_idx+4]; a_43=h*coef[_idx+5]; c_4=a_41+a_42+a_43; //long _size=y.size(); for ( j=0; j<_size; j++ ) { y[j]=y[j]+a_21*z0[j]; }; t2=t+c_2; // z1=f.compute(y,t2); f.compute(y,t2,z1); numOfRHSEvaluations++; if(n_pol==n_deg[index]) { r=h*(coef[_idx+1]-coef[_idx]); //long _size=y.size(); /* code for paraller exceution via OpemMP - you may want to use it #pragma parallel shared(y,z0,z1) local(j) #pragma pfor */ for ( j=0; j<_size; j++ ) { y[j]=y[j]+r*z0[j]+a_32*z1[j]; }; } else { // long _size=y.size(); /* code for paraller exceution via OpemMP - you may want to use it #pragma parallel shared(y,z1) local(j) #pragma pfor */ for ( j=0; j<_size; j++ ) { y[j]=y[j]+a_32*z1[j]; }; }; t3=t+c_3; if(n_pol==n_deg[index]) { tmp_1=c_3/2.e+0; tmp_2=(c_4-c_2)/2.e+0; // long _size=z1.size(); /* code for paraller exceution via OpemMP - you may want to use it #pragma parallel shared(z1,z0) local(j) #pragma pfor */ for ( j=0; j<_size; j++ ) { z1[j]=tmp_1*z1[j]-tmp_2*z0[j]; }; }; // z0 = f.compute(y,t3); f.compute(y,t3,z0); numOfRHSEvaluations++; if(n_pol==n_deg[index]) { // long _size=y.size(); /* code for paraller exceution via OpemMP - you may want to use it #pragma parallel shared(z1,z0) local(j) #pragma pfor */ for ( j=0; j<_size; j++ ) { z1[j]=tmp_2*z0[j]+z1[j]; }; }; // _size=y.size(); /* code for paraller exceution via OpemMP - you may want to use it #pragma parallel shared(y,z0) local(j) #pragma pfor */ for ( j=0; j<_size; j++ ) { y[j]=y[j]+a_43*z0[j]; }; t4=t+c_4; t=t4; // z0=f.compute(y,t); f.compute(y,t,z0); numOfRHSEvaluations++; }; //long _size=z0.size(); /* code for paraller exceution via OpemMP - you may want to use it #pragma parallel shared(y,z1,z0) local(j) #pragma pfor */ for ( j=0; j < _size; j++ ) { z1[j]=(1./(rtol*max(sqrt(y[j]*y[j]),sqrt(z3[j]*z3[j]))+atol))*((-tmp_1)*z0[j]+z1[j]); }; h_new=h; // check error and return new recommended step size in variable h_new if(!isStepAccepted(t,y,z1,h_new,n_pol_degree,err_n, h_n, stepId)) { numOfRejectedSteps = numOfRejectedSteps + (numOfRHSEvaluations - numOfRHSEvaluations0); stepOK = false; f.isStepAccepted = false; //long _size=y.size(); /* code for paraller exceution via OpemMP - you may want to use it #pragma parallel shared(y,z0,z2,z3) local(j) #pragma pfor */ for ( j=0; j < _size; j++ ) { z0[j]=z2[j]; y[j]=z3[j]; }; t=t_en; cout << "Step is rejected. Used degree of polynomial: " << n_pol_degree << " Time= " << t << endl; } else { stepOK = true; f.isStepAccepted = true; } stepId++; } while ( t < tend ); meanCou = meanCou/((double)numOfSteps); cout << "Number of RHS evaluations = " << numOfRHSEvaluations << endl; cout << "Mean step-size = " << timeInterval/((double)numOfRHSEvaluations) << endl; cout << "Mean value of cou = " << meanCou << endl; // cout << "Maximum value of cou = " << maxCou<< endl; cout << "Last value of cou = " << cou << endl; cout << "Number of rejected RHS evaluations = " << numOfRejectedSteps << endl; //delete [] z; }; /* norm1 - function isStepAccepted can use different norms, but we implemente "max=max|u_i|, i= 1..n" norm * one can optimized this function by replacing qrt(z[i]*z[i]) to abs(z[i]), but you must define * function abs for Element of the Vector */ template double norm1 (const Vector& z) { double eps1=0.e+0; long _size=z.size(); for ( int i=0; i < _size; i++ ) { double absValue = sqrt(z[i]*z[i]); if(eps1 bool isStepAccepted(const double &t, const Vector &y, const Vector &z, double &h_new, const int &n_pol_degree, double err_n, double h_n, long stepId) { bool isnotreject = false; double eps1=0.e0; long size = y.size(); for ( int i=0;i < size; i++ ) { eps1=eps1+z[i]*z[i]; } double eps=sqrt( eps1/((double)size) ); double fracmin=0.1e0; if(eps==0.e0) { eps=1.e-14; } double frac=pow(1.e0/eps,1.e0/3.e0); if(eps <= 1.e0) { if (err_n>0.e0 && h_n > 0.e0) { double frac2=pow(err_n,(1.e0/3.e0))*frac*frac*(h_new/h_n); frac=min(frac,frac2); } isnotreject = true; double fracmax=2.e0; frac=min(fracmax,max(fracmin,0.8e0*frac)); double h_old = h_new; h_new=frac*h_new; h_n=h_old; err_n=eps; } else { isnotreject = false; double fracmax=1.e0; frac=0.8e0*min(fracmax,max(fracmin,0.8e0*frac)); if(stepId==0) { h_new=fracmin*h_new; } else { h_new=frac*h_new; } cout << eps << t << n_pol_degree << h_new << h_n << endl; } return isnotreject; }; /* norm - calculates norm of the Vector, this function works only if Element of * the Vector has operation multiplication "*" */ template double norm ( const Vector &x ) { int size = x.size(); double norm = 0.; for ( int i=0; i < size; i++ ) { norm += x[i]*x[i]; } norm = sqrt(norm); return norm; } /* eigenvalue - calculates eigen values of the right hand side * The used algorithm is a slight modification of the algorithm * used in ROCK and RKC */ template double eigenvalue(const Vector& y,Vector& fy, double t, VectorFunction& f, Vector& v, Vector& result, double& lambdaOld, long& numOfRHSEvaluations, double minimumValue) { cout << "Compute eigenvalue ..." << endl; int maxit = 30; double tol = 0.01; int idx = 0; int size = y.size(); double radius = 1.e-10; double lambda = lambdaOld; double nrmY = norm(y); double nrmV = norm(v); //f.compute(result,t,v); //f.compute(fy,t,v); do { idx++; // all vectors should be ||y-v|| < radius, because problem can be non-linear if ( nrmV < minimumValue ) { // change initial vector and restart - if restarted check that // initial vector has not been used already for ( int i=0; i < size; i++ ) { v[i] = f.GetNonZeroElement(); }; nrmV = norm(v); if ( nrmV < minimumValue ) { cout << "Error occur: your GetNonZeroElement function should return a value with strictly positive norm, but it returns 0!" << endl; cout << "Fix GetNonZeroElement function, please." << endl; return lambdaOld; } } double norminv= radius/nrmV; for ( int i=0; i < size; i++ ) { v[i] = y[i] + norminv * v[i]; } f.compute(v,t,result); numOfRHSEvaluations++; // approximation of eigenvector for ( int i=0; i < size; i++ ) { v[i] = result[i] - fy[i]; } // approximation of eigenvalue nrmV = norm(v); lambdaOld = lambda; lambda = nrmV/radius; cout << "Iteration = " << idx << " eigenvalue = " << lambda << endl; } while ( abs(lambda - lambdaOld) > abs(lambda)*tol && idx <= maxit ); lambdaOld = lambda; return lambda; }