diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b008d362a..14724cbf51 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ ### New Features and Enhancements +Improved the precision of the coefficients for `ARKODE_ARK324L2SA_ERK_4_2_3`, +`ARKODE_VERNER_9_5_6`, `ARKODE_VERNER_10_6_7`, `ARKODE_VERNER_13_7_8`, +`ARKODE_ARK324L2SA_DIRK_4_2_3`, and `ARKODE_ESDIRK324L2SA_4_2_3`. + The Soderlind time step adaptivity controller now starts with an I controller until there is sufficient history of past time steps and errors. diff --git a/doc/arkode/guide/source/Butcher.rst b/doc/arkode/guide/source/Butcher.rst index f58791a30e..088b66b4f7 100644 --- a/doc/arkode/guide/source/Butcher.rst +++ b/doc/arkode/guide/source/Butcher.rst @@ -692,8 +692,8 @@ Accessible via the string ``"ARKODE_SAYFY_ABURUB_6_3_4"`` to \frac{1}{2} & \frac{1}{2} & 0 & 0 & 0 & 0 & 0 \\ 1 & -1 & 2 & 0 & 0 & 0 & 0 \\ 1 & \frac{1}{6} & \frac{2}{3} & \frac{1}{6} & 0 & 0 & 0 \\ - \frac{1}{2} & 0.137 & 0.226 & 0.137 & 0 & 0 & 0 \\ - 1 & 0.452 & -0.904 & -0.548 & 0 & 2 & 0 \\ + \frac{1}{2} & \frac{137}{1000} & \frac{113}{500} & \frac{137}{1000} & 0 & 0 & 0 \\ + 1 & \frac{113}{250} & -\frac{113}{125} & -\frac{137}{250} & 0 & 2 & 0 \\ \hline 4 & \frac{1}{6} & \frac{1}{3} & \frac{1}{12} & 0 & \frac{1}{3} & \frac{1}{12} \\ 3 & \frac{1}{6} & \frac{2}{3} & \frac{1}{6} & 0 & 0 & 0 diff --git a/doc/shared/RecentChanges.rst b/doc/shared/RecentChanges.rst index dc432c8944..5d369e3939 100644 --- a/doc/shared/RecentChanges.rst +++ b/doc/shared/RecentChanges.rst @@ -2,6 +2,10 @@ **New Features and Enhancements** +Improved the precision of the coefficients for ``ARKODE_ARK324L2SA_ERK_4_2_3``, +``ARKODE_VERNER_9_5_6``, ``ARKODE_VERNER_10_6_7``, ``ARKODE_VERNER_13_7_8``, +``ARKODE_ARK324L2SA_DIRK_4_2_3``, and ``ARKODE_ESDIRK324L2SA_4_2_3``. + The Soderlind time step adaptivity controller now starts with an I controller until there is sufficient history of past time steps and errors. diff --git a/examples/arkode/CXX_serial/ark_kpr_Mt_2_8_0_-10.out b/examples/arkode/CXX_serial/ark_kpr_Mt_2_8_0_-10.out index 052e9d00d8..a48d01387c 100644 --- a/examples/arkode/CXX_serial/ark_kpr_Mt_2_8_0_-10.out +++ b/examples/arkode/CXX_serial/ark_kpr_Mt_2_8_0_-10.out @@ -17,7 +17,7 @@ Nonlinear Kvaerno-Prothero-Robinson test problem with mass matrix: -2.600000 0.756013 1.218400 8.59e-10 7.76e-11 -2.500000 0.774227 1.183861 4.35e-10 5.23e-11 -2.400000 0.794546 1.150885 7.76e-11 2.72e-11 - -2.300000 0.816616 1.119953 2.03e-10 1.67e-12 + -2.300000 0.816616 1.119953 2.03e-10 1.66e-12 -2.200000 0.840089 1.091560 4.11e-10 2.58e-11 -2.100000 0.864625 1.066204 5.56e-10 5.68e-11 -2.000000 0.889903 1.044367 6.53e-10 9.23e-11 @@ -55,20 +55,20 @@ Nonlinear Kvaerno-Prothero-Robinson test problem with mass matrix: 1.200000 1.086821 1.712320 3.71e-10 7.19e-12 1.300000 1.064777 1.721499 3.96e-10 4.90e-12 1.400000 1.041625 1.727845 4.23e-10 2.64e-12 - 1.500000 1.017531 1.731328 4.53e-10 4.22e-13 + 1.500000 1.017531 1.731328 4.53e-10 4.20e-13 1.600000 0.992673 1.731928 4.82e-10 1.70e-12 - 1.700000 0.967253 1.729643 5.11e-10 3.62e-12 - 1.800000 0.941488 1.724485 5.35e-10 5.17e-12 + 1.700000 0.967253 1.729643 5.11e-10 3.63e-12 + 1.800000 0.941488 1.724485 5.35e-10 5.18e-12 1.900000 0.915617 1.716479 5.49e-10 6.09e-12 2.000000 0.889903 1.705666 5.46e-10 5.99e-12 2.100000 0.864625 1.692102 5.18e-10 4.38e-12 - 2.200000 0.840089 1.675857 4.51e-10 6.23e-13 - 2.300000 0.816616 1.657017 3.34e-10 6.00e-12 + 2.200000 0.840089 1.675857 4.51e-10 6.27e-13 + 2.300000 0.816616 1.657017 3.34e-10 5.99e-12 2.400000 0.794546 1.635684 1.52e-10 1.62e-11 2.500000 0.774227 1.611978 1.06e-10 3.05e-11 2.600000 0.756013 1.586033 4.44e-10 4.92e-11 2.700000 0.740246 1.558005 8.51e-10 7.15e-11 - 2.800000 0.727247 1.528067 1.30e-09 9.60e-11 + 2.800000 0.727247 1.528067 1.30e-09 9.59e-11 2.900000 0.717301 1.496412 1.75e-09 1.20e-10 3.000000 0.710636 1.463257 2.13e-09 1.41e-10 3.100000 0.707412 1.428839 2.39e-09 1.55e-10 @@ -95,7 +95,7 @@ Nonlinear Kvaerno-Prothero-Robinson test problem with mass matrix: 5.200000 1.110972 1.056667 4.85e-10 1.32e-10 5.300000 1.130127 1.080617 4.29e-10 8.39e-11 5.400000 1.147757 1.107807 3.81e-10 4.08e-11 - 5.500000 1.163759 1.137743 3.41e-10 5.62e-12 + 5.500000 1.163759 1.137743 3.41e-10 5.63e-12 5.600000 1.178042 1.169929 3.10e-10 2.06e-11 5.700000 1.190528 1.203875 2.87e-10 3.82e-11 5.800000 1.201149 1.239112 2.70e-10 4.87e-11 @@ -104,7 +104,7 @@ Nonlinear Kvaerno-Prothero-Robinson test problem with mass matrix: 6.100000 1.221325 1.348272 2.48e-10 5.30e-11 6.200000 1.224039 1.384525 2.46e-10 4.98e-11 6.300000 1.224716 1.420146 2.47e-10 4.58e-11 - 6.400000 1.223353 1.454836 2.49e-10 4.15e-11 + 6.400000 1.223353 1.454836 2.49e-10 4.14e-11 6.500000 1.219956 1.488328 2.52e-10 3.71e-11 6.600000 1.214544 1.520375 2.56e-10 3.30e-11 6.700000 1.207142 1.550758 2.62e-10 2.91e-11 @@ -120,4 +120,4 @@ Final Solver Statistics: Total mass matrix setups = 1314 Total mass matrix solves = 1716 Total mass times evals = 101 - Errors: u = 7.987e-10, v = 1.04573e-10, total = 5.69586e-10 + Errors: u = 7.98701e-10, v = 1.04573e-10, total = 5.69587e-10 diff --git a/src/arkode/arkode_butcher_dirk.def b/src/arkode/arkode_butcher_dirk.def index 18b5cb26e8..f3764b55f8 100644 --- a/src/arkode/arkode_butcher_dirk.def +++ b/src/arkode/arkode_butcher_dirk.def @@ -42,7 +42,7 @@ ARKODE_BILLINGTON_3_3_2 SDIRK N N Y ARKODE_TRBDF2_3_3_2 ESDIRK N N Y ARKODE_KVAERNO_4_2_3 ESDIRK Y Y Y - ARKODE_ARK324L2SA_DIRK_4_2_3* ESDIRK Y Y N + ARKODE_ARK324L2SA_DIRK_4_2_3* ESDIRK Y Y Y ARKODE_ESDIRK324L2SA_4_2_3 ESDIRK Y Y Y ARKODE_ESDIRK325L2SA_5_2_3 ESDIRK Y Y Y ARKODE_ESDIRK32I5L2SA_5_2_3 ESDIRK Y Y Y @@ -246,28 +246,28 @@ ARK_BUTCHER_TABLE(ARKODE_ARK324L2SA_DIRK_4_2_3, { /* ARK3(2)4L[2]SA-ESDIRK */ ARKodeButcherTable B = ARKodeButcherTable_Alloc(4, SUNTRUE); B->q = 3; B->p = 2; - B->A[1][0] = SUN_RCONST(1767732205903.0)/SUN_RCONST(4055673282236.0); - B->A[1][1] = SUN_RCONST(1767732205903.0)/SUN_RCONST(4055673282236.0); - B->A[2][0] = SUN_RCONST(2746238789719.0)/SUN_RCONST(10658868560708.0); - B->A[2][1] = SUN_RCONST(-640167445237.0)/SUN_RCONST(6845629431997.0); - B->A[2][2] = SUN_RCONST(1767732205903.0)/SUN_RCONST(4055673282236.0); - B->A[3][0] = SUN_RCONST(1471266399579.0)/SUN_RCONST(7840856788654.0); - B->A[3][1] = SUN_RCONST(-4482444167858.0)/SUN_RCONST(7529755066697.0); - B->A[3][2] = SUN_RCONST(11266239266428.0)/SUN_RCONST(11593286722821.0); - B->A[3][3] = SUN_RCONST(1767732205903.0)/SUN_RCONST(4055673282236.0); - - B->b[0] = SUN_RCONST(1471266399579.0)/SUN_RCONST(7840856788654.0); - B->b[1] = SUN_RCONST(-4482444167858.0)/SUN_RCONST(7529755066697.0); - B->b[2] = SUN_RCONST(11266239266428.0)/SUN_RCONST(11593286722821.0); - B->b[3] = SUN_RCONST(1767732205903.0)/SUN_RCONST(4055673282236.0); - - B->d[0] = SUN_RCONST(2756255671327.0)/SUN_RCONST(12835298489170.0); - B->d[1] = SUN_RCONST(-10771552573575.0)/SUN_RCONST(22201958757719.0); - B->d[2] = SUN_RCONST(9247589265047.0)/SUN_RCONST(10645013368117.0); - B->d[3] = SUN_RCONST(2193209047091.0)/SUN_RCONST(5459859503100.0); - - B->c[1] = SUN_RCONST(1767732205903.0)/SUN_RCONST(2027836641118.0); - B->c[2] = SUN_RCONST(3.0)/SUN_RCONST(5.0); + B->A[1][0] = SUN_RCONST(0.4358665215084589994160194511935568425293); + B->A[1][1] = SUN_RCONST(0.4358665215084589994160194511935568425293); + B->A[2][0] = SUN_RCONST(0.2576482460664272457999960162840797092643); + B->A[2][1] = SUN_RCONST(-0.09351476757488624521601546747763655179361); + B->A[2][2] = SUN_RCONST(0.4358665215084589994160194511935568425293); + B->A[3][0] = SUN_RCONST(0.1876410243467238251612921441668043913795); + B->A[3][1] = SUN_RCONST(-0.5952974735769549480478230275858851737782); + B->A[3][2] = SUN_RCONST(0.9717899277217721234705114322255239398694); + B->A[3][3] = SUN_RCONST(0.4358665215084589994160194511935568425293); + + B->b[0] = SUN_RCONST(0.1876410243467238251612921441668043913795); + B->b[1] = SUN_RCONST(-0.5952974735769549480478230275858851737782); + B->b[2] = SUN_RCONST(0.9717899277217721234705114322255239398694); + B->b[3] = SUN_RCONST(0.4358665215084589994160194511935568425293); + + B->d[0] = SUN_RCONST(0.2147402862233891404862383406484193714659); + B->d[1] = SUN_RCONST(-0.4851622638849390928209050808398155895845); + B->d[2] = SUN_RCONST(0.86872500252038755116621237682951240796); + B->d[3] = SUN_RCONST(0.4016969751411624011684543633618838101586); + + B->c[1] = SUN_RCONST(0.8717330430169179988320389023871136850586); + B->c[2] = SUN_RCONST(0.6); B->c[3] = SUN_RCONST(1.0); return B; }) @@ -693,40 +693,32 @@ ARK_BUTCHER_TABLE(ARKODE_ARK548L2SAb_DIRK_8_4_5, { /* ARK5(4)8L[2]SAb-ESDIRK */ }) ARK_BUTCHER_TABLE(ARKODE_ESDIRK324L2SA_4_2_3, { /* ESDIRK3(2)4L[2]SA (A,L stable) */ - const sunrealtype g = SUN_RCONST(0.435866521508458999416019451193556843); - const sunrealtype g2 = g * g; - const sunrealtype g3 = g2 * g; - const sunrealtype g4 = g3 * g; - const sunrealtype g5 = g4 * g; - const sunrealtype c3 = SUN_RCONST(0.6); - ARKodeButcherTable B = ARKodeButcherTable_Alloc(4, SUNTRUE); B->q = 3; B->p = 2; - B->b[1] = (-SUN_RCONST(2.0)+SUN_RCONST(3.0)*c3+SUN_RCONST(6.0)*g*(SUN_RCONST(1.0)-c3))/(SUN_RCONST(12.0)*g*(c3-SUN_RCONST(2.0)*g)); - B->b[2] = (SUN_RCONST(1.0)-SUN_RCONST(6.0)*g+SUN_RCONST(6.0)*g2)/(SUN_RCONST(3.0)*c3*(c3-SUN_RCONST(2.0)*g)); - B->b[3] = g; - B->b[0] = SUN_RCONST(1.0) - g - B->b[1] - B->b[2]; - - B->d[1] = c3*(-SUN_RCONST(1.0)+SUN_RCONST(6.0)*g-SUN_RCONST(24.0)*g3+SUN_RCONST(12.0)*g4-SUN_RCONST(6.0)*g5)/(SUN_RCONST(4.0)*g*(SUN_RCONST(2.0)*g-c3)*(SUN_RCONST(1.0)-SUN_RCONST(6.0)*g+SUN_RCONST(6.0)*g2)) - + (SUN_RCONST(3.0)-SUN_RCONST(27.0)*g+SUN_RCONST(68.0)*g2-SUN_RCONST(55.0)*g3+SUN_RCONST(21.0)*g4-SUN_RCONST(6.0)*g5)/(SUN_RCONST(2.0)*(SUN_RCONST(2.0)*g-c3)*(SUN_RCONST(1.0)-SUN_RCONST(6.0)*g+SUN_RCONST(6.0)*g2)); - B->d[2] = -g*(-SUN_RCONST(2.0)+SUN_RCONST(21.0)*g-SUN_RCONST(68.0)*g2+SUN_RCONST(79.0)*g3-SUN_RCONST(33.0)*g4+SUN_RCONST(12.0)*g5)/(c3*(c3-SUN_RCONST(2.0)*g)*(SUN_RCONST(1.0)-SUN_RCONST(6.0)*g+SUN_RCONST(6.0)*g2)); - B->d[3] = -SUN_RCONST(3.0)*g2*(-SUN_RCONST(1.0)+SUN_RCONST(4.0)*g-SUN_RCONST(2.0)*g2+g3)/(SUN_RCONST(1.0)-SUN_RCONST(6.0)*g+SUN_RCONST(6.0)*g2); - B->d[0] = SUN_RCONST(1.0) - B->d[1] - B->d[2] - B->d[3]; - - B->A[1][0] = g; - B->A[1][1] = g; - B->A[2][1] = c3*(c3-SUN_RCONST(2.0)*g)/(SUN_RCONST(4.0)*g); - B->A[2][0] = c3 - g - B->A[2][1]; - B->A[2][2] = g; - B->A[3][0] = B->b[0]; - B->A[3][1] = B->b[1]; - B->A[3][2] = B->b[2]; - B->A[3][3] = B->b[3]; - - B->c[1] = SUN_RCONST(2.0)*g; - B->c[2] = SUN_RCONST(3.0)/SUN_RCONST(5.0); + B->A[1][0] = SUN_RCONST(0.4358665215084589994160194511935568425293); + B->A[1][1] = SUN_RCONST(0.4358665215084589994160194511935568425293); + B->A[2][0] = SUN_RCONST(0.2576482460664272457999960162840797092643); + B->A[2][1] = SUN_RCONST(-0.09351476757488624521601546747763655179361); + B->A[2][2] = SUN_RCONST(0.4358665215084589994160194511935568425293); + B->A[3][0] = SUN_RCONST(0.1876410243467238251612921441668043913795); + B->A[3][1] = SUN_RCONST(-0.5952974735769549480478230275858851737782); + B->A[3][2] = SUN_RCONST(0.9717899277217721234705114322255239398694); + B->A[3][3] = SUN_RCONST(0.4358665215084589994160194511935568425293); + + B->b[0] = SUN_RCONST(0.1876410243467238251612921441668043913795); + B->b[1] = SUN_RCONST(-0.5952974735769549480478230275858851737782); + B->b[2] = SUN_RCONST(0.9717899277217721234705114322255239398694); + B->b[3] = SUN_RCONST(0.4358665215084589994160194511935568425293); + + B->d[0] = SUN_RCONST(0.1088966176158644541561307380704960821824); + B->d[1] = SUN_RCONST(-0.9153258118707127534816380978168183454991); + B->d[2] = SUN_RCONST(1.271273597302152167844715894135642876535); + B->d[3] = SUN_RCONST(0.5351555969526961314807914656106793867813); + + B->c[1] = SUN_RCONST(0.8717330430169179988320389023871136850586); + B->c[2] = SUN_RCONST(0.6); B->c[3] = SUN_RCONST(1.0); return B; }) diff --git a/src/arkode/arkode_butcher_erk.def b/src/arkode/arkode_butcher_erk.def index aefcdc5c60..994c029867 100644 --- a/src/arkode/arkode_butcher_erk.def +++ b/src/arkode/arkode_butcher_erk.def @@ -44,13 +44,13 @@ ARKODE_RALSTON_EULER_2_1_2 Y ARKODE_EXPLICIT_MIDPOINT_EULER_2_1_2 Y ARKODE_BOGACKI_SHAMPINE_4_2_3 Y - ARKODE_ARK324L2SA_ERK_4_2_3* N + ARKODE_ARK324L2SA_ERK_4_2_3* Y ARKODE_SHU_OSHER_3_2_3 Y ARKODE_SOFRONIOU_SPALETTA_5_3_4 Y ARKODE_ZONNEVELD_5_3_4 Y ARKODE_ARK436L2SA_ERK_6_3_4* N ARKODE_ARK437L2SA_ERK_7_3_4* N - ARKODE_SAYFY_ABURUB_6_3_4 N + ARKODE_SAYFY_ABURUB_6_3_4 Y ARKODE_TSITOURAS_7_4_5 Y ARKODE_CASH_KARP_6_4_5 Y ARKODE_FEHLBERG_6_4_5 Y @@ -216,25 +216,25 @@ ARK_BUTCHER_TABLE(ARKODE_ARK324L2SA_ERK_4_2_3, { /* ARK3(2)4L[2]SA-ERK */ ARKodeButcherTable B = ARKodeButcherTable_Alloc(4, SUNTRUE); B->q = 3; B->p = 2; - B->A[1][0] = SUN_RCONST(1767732205903.0)/SUN_RCONST(2027836641118.0); - B->A[2][0] = SUN_RCONST(5535828885825.0)/SUN_RCONST(10492691773637.0); - B->A[2][1] = SUN_RCONST(788022342437.0)/SUN_RCONST(10882634858940.0); - B->A[3][0] = SUN_RCONST(6485989280629.0)/SUN_RCONST(16251701735622.0); - B->A[3][1] = SUN_RCONST(-4246266847089.0)/SUN_RCONST(9704473918619.0); - B->A[3][2] = SUN_RCONST(10755448449292.0)/SUN_RCONST(10357097424841.0); - - B->b[0] = SUN_RCONST(1471266399579.0)/SUN_RCONST(7840856788654.0); - B->b[1] = SUN_RCONST(-4482444167858.0)/SUN_RCONST(7529755066697.0); - B->b[2] = SUN_RCONST(11266239266428.0)/SUN_RCONST(11593286722821.0); - B->b[3] = SUN_RCONST(1767732205903.0)/SUN_RCONST(4055673282236.0); - - B->d[0] = SUN_RCONST(2756255671327.0)/SUN_RCONST(12835298489170.0); - B->d[1] = SUN_RCONST(-10771552573575.0)/SUN_RCONST(22201958757719.0); - B->d[2] = SUN_RCONST(9247589265047.0)/SUN_RCONST(10645013368117.0); - B->d[3] = SUN_RCONST(2193209047091.0)/SUN_RCONST(5459859503100.0); - - B->c[1] = SUN_RCONST(1767732205903.0)/SUN_RCONST(2027836641118.0); - B->c[2] = SUN_RCONST(3.0)/SUN_RCONST(5.0); + B->A[1][0] = SUN_RCONST(0.8717330430169179988320389023871136850586); + B->A[2][0] = SUN_RCONST(0.52758901197630041156180797140291790433); + B->A[2][1] = SUN_RCONST(0.07241098802369958843819202859708209566999); + B->A[3][0] = SUN_RCONST(0.3990960076760701320627260736092142797856); + B->A[3][1] = SUN_RCONST(-0.437557654613519443722846363831022571942); + B->A[3][2] = SUN_RCONST(1.038461646937449311660120290221808292156); + + B->b[0] = SUN_RCONST(0.1876410243467238251612921441668043913795); + B->b[1] = SUN_RCONST(-0.5952974735769549480478230275858851737782); + B->b[2] = SUN_RCONST(0.9717899277217721234705114322255239398694); + B->b[3] = SUN_RCONST(0.4358665215084589994160194511935568425293); + + B->d[0] = SUN_RCONST(0.2147402862233891404862383406484193714659); + B->d[1] = SUN_RCONST(-0.4851622638849390928209050808398155895845); + B->d[2] = SUN_RCONST(0.86872500252038755116621237682951240796); + B->d[3] = SUN_RCONST(0.4016969751411624011684543633618838101586); + + B->c[1] = SUN_RCONST(0.8717330430169179988320389023871136850586); + B->c[2] = SUN_RCONST(0.6); B->c[3] = SUN_RCONST(1.0); return B; }) @@ -474,7 +474,7 @@ ARK_BUTCHER_TABLE(ARKODE_TSITOURAS_7_4_5, { /* Tsitouras-ERK */ B->A[6][3] = SUN_RCONST(1.379008574103741893192274821856872770756); B->A[6][4] = SUN_RCONST(-3.290069515436080679901047585711363850116); B->A[6][5] = SUN_RCONST(2.324710524099773982415355918398765796109); - + B->b[0] = SUN_RCONST(0.09646076681806522951816731316512876333712); B->b[1] = SUN_RCONST(0.01); B->b[2] = SUN_RCONST(0.479889650414499574775249532290596519913); @@ -482,7 +482,7 @@ ARK_BUTCHER_TABLE(ARKODE_TSITOURAS_7_4_5, { /* Tsitouras-ERK */ B->b[4] = SUN_RCONST(-3.290069515436080679901047585711363850116); B->b[5] = SUN_RCONST(2.324710524099773982415355918398765796109); B->b[6] = SUN_RCONST(0.0); - + B->d[0] = SUN_RCONST(0.09352374858189270663659270466268853095681); B->d[1] = SUN_RCONST(0.008652883141566367609681000495464767703693); B->d[2] = SUN_RCONST(0.4928930991314318681922688329502649219068); @@ -795,58 +795,59 @@ ARK_BUTCHER_TABLE(ARKODE_VERNER_9_5_6, { /* Verner-6-5b (DOI: 10.1007/s11075-009 B->q = 6; B->p = 5; - B->A[1][0] = SUN_RCONST(0.06); - B->A[2][0] = SUN_RCONST(0.01923996296296296218408805600574851268902); - B->A[2][1] = SUN_RCONST(0.07669337037037037008158080197972594760358); - B->A[3][0] = SUN_RCONST(0.035975); - B->A[3][2] = SUN_RCONST(0.107925); - B->A[4][0] = SUN_RCONST(1.318683415233148359391179837984964251518); - B->A[4][2] = SUN_RCONST(-5.042058063628561903612990136025473475456); - B->A[4][3] = SUN_RCONST(4.220674648395413619539340288611128926277); - B->A[5][0] = SUN_RCONST(-41.87259166432750845388000016100704669952); - B->A[5][2] = SUN_RCONST(159.432562163137475863550207577645778656); - B->A[5][3] = SUN_RCONST(-122.1192135650100425436903606168925762177); - B->A[5][4] = SUN_RCONST(5.531743066200053071668207849143072962761); - B->A[6][0] = SUN_RCONST(-54.43015693531650356362661113962531089783); - B->A[6][2] = SUN_RCONST(207.0672513650184782818541862070560455322); - B->A[6][3] = SUN_RCONST(-158.6108137845899932472093496471643447876); - B->A[6][4] = SUN_RCONST(6.99181658595024213553870140458457171917); - B->A[6][5] = SUN_RCONST(-0.01859723106220323093906721112489321967587); - B->A[7][0] = SUN_RCONST(-54.66374178728197819054912542924284934998); - B->A[7][2] = SUN_RCONST(207.9528062553893619224254507571458816528); - B->A[7][3] = SUN_RCONST(-159.2889574744995115906931459903717041016); - B->A[7][4] = SUN_RCONST(7.018743740796944408089075295720249414444); - B->A[7][5] = SUN_RCONST(-0.01833878590504572220210022237552038859576); - B->A[7][6] = SUN_RCONST(-0.000511948499788209866745436471546781831421); - B->A[8][0] = SUN_RCONST(0.0343895786835703570760713887466408777982); - B->A[8][3] = SUN_RCONST(0.2582624555633503682372520415810868144035); - B->A[8][4] = SUN_RCONST(0.4209371189673536961528554911637911573052); - B->A[8][5] = SUN_RCONST(4.405396469669310199890333024086430668831); - B->A[8][6] = SUN_RCONST(-176.4831190242986451721662888303399085999); - B->A[8][7] = SUN_RCONST(172.3641334014150743314530700445175170898); - - B->b[0] = SUN_RCONST(0.0343895786835703570760713887466408777982); - B->b[3] = SUN_RCONST(0.2582624555633503682372520415810868144035); - B->b[4] = SUN_RCONST(0.4209371189673536961528554911637911573052); - B->b[5] = SUN_RCONST(4.405396469669310199890333024086430668831); - B->b[6] = SUN_RCONST(-176.4831190242986451721662888303399085999); - B->b[7] = SUN_RCONST(172.3641334014150743314530700445175170898); - - B->d[0] = SUN_RCONST(0.04909967648382489863179145572757988702506); - B->d[3] = SUN_RCONST(0.2251112229516524232408869465871248394251); - B->d[4] = SUN_RCONST(0.4694682253029561769253064085205551236868); - B->d[5] = SUN_RCONST(0.806579224998886790132246460416354238987); - B->d[7] = SUN_RCONST(-0.607119489177795901291290192602900788188); - B->d[8] = SUN_RCONST(0.05686113944047568868889186433079885318875); - - B->c[1] = SUN_RCONST(0.06); - B->c[2] = SUN_RCONST(0.09593333333333333333333333333333333333333); - B->c[3] = SUN_RCONST(0.1439); - B->c[4] = SUN_RCONST(0.4973); - B->c[5] = SUN_RCONST(0.9725); - B->c[6] = SUN_RCONST(0.9995); - B->c[7] = SUN_RCONST(1.0); - B->c[8] = SUN_RCONST(1.0); + B->A[1][0] = SUN_RCONST(0.06); + B->A[2][0] = SUN_RCONST(0.01923996296296296296296296296296296296296); + B->A[2][1] = SUN_RCONST(0.07669337037037037037037037037037037037037); + B->A[3][0] = SUN_RCONST(0.035975); + B->A[3][2] = SUN_RCONST(0.107925); + B->A[4][0] = SUN_RCONST(1.318683415233148260919747276431735612861); + B->A[4][2] = SUN_RCONST(-5.042058063628562225427761634715637693344); + B->A[4][3] = SUN_RCONST(4.220674648395413964508014358283902080483); + B->A[5][0] = SUN_RCONST(-41.87259166432751461803757780644346812905); + B->A[5][2] = SUN_RCONST(159.4325621631374917700365669070346830453); + B->A[5][3] = SUN_RCONST(-122.1192135650100309202516203389242140663); + B->A[5][4] = SUN_RCONST(5.531743066200053768252631238332999150076); + B->A[6][0] = SUN_RCONST(-54.43015693531650433250642051294142461271); + B->A[6][2] = SUN_RCONST(207.0672513650184644273657173866509835987); + B->A[6][3] = SUN_RCONST(-158.6108137845899991828742424365058599469); + B->A[6][4] = SUN_RCONST(6.991816585950242321992597280791793907096); + B->A[6][5] = SUN_RCONST(-0.01859723106220323397765171799549294623692); + B->A[7][0] = SUN_RCONST(-54.66374178728197680241215648050386959351); + B->A[7][2] = SUN_RCONST(207.9528062553893734515824816699834244238); + B->A[7][3] = SUN_RCONST(-159.2889574744995071508959805871426654216); + B->A[7][4] = SUN_RCONST(7.018743740796944434698170760964252490817); + B->A[7][5] = SUN_RCONST(-0.01833878590504572306472782005141738268361); + B->A[7][6] = SUN_RCONST(-0.000511948499788209907787543249724516839584); + B->A[8][0] = SUN_RCONST(0.0343895786835703600927882012472832238652); + B->A[8][3] = SUN_RCONST(0.2582624555633503404659558098586120858767); + B->A[8][4] = SUN_RCONST(0.4209371189673537150642551514069801967032); + B->A[8][5] = SUN_RCONST(4.405396469669310170148836816197095664891); + B->A[8][6] = SUN_RCONST(-176.4831190242986576151740942499002125029); + B->A[8][7] = SUN_RCONST(172.3641334014150730294022582711902413315); + + B->b[0] = SUN_RCONST(0.0343895786835703600927882012472832238652); + B->b[3] = SUN_RCONST(0.2582624555633503404659558098586120858767); + B->b[4] = SUN_RCONST(0.4209371189673537150642551514069801967032); + B->b[5] = SUN_RCONST(4.405396469669310170148836816197095664891); + B->b[6] = SUN_RCONST(-176.4831190242986576151740942499002125029); + B->b[7] = SUN_RCONST(172.3641334014150730294022582711902413315); + + B->d[0] = SUN_RCONST(0.04909967648382489730906854927971225836479); + B->d[3] = SUN_RCONST(0.2251112229516524153401395320539875329485); + B->d[4] = SUN_RCONST(0.4694682253029562039431948525047387412553); + B->d[5] = SUN_RCONST(0.8065792249988867707634161808995217981443); + B->d[7] = SUN_RCONST(-0.6071194891777959797672951465256217122488); + B->d[8] = SUN_RCONST(0.05686113944047569241147603178766138153594); + + B->c[1] = SUN_RCONST(0.06); + B->c[2] = SUN_RCONST(0.09593333333333333333333333333333333333333); + B->c[3] = SUN_RCONST(0.1439); + B->c[4] = SUN_RCONST(0.4973); + B->c[5] = SUN_RCONST(0.9725); + B->c[6] = SUN_RCONST(0.9995); + B->c[7] = SUN_RCONST(1.0); + B->c[8] = SUN_RCONST(1.0); + return B; }) @@ -855,67 +856,67 @@ ARK_BUTCHER_TABLE(ARKODE_VERNER_10_6_7, { /* Verner-7-6 (DOI: 10.1007/s11075-009 B->q = 7; B->p = 6; - B->A[1][0] = SUN_RCONST(0.005); - B->A[2][0] = SUN_RCONST(-1.076790123456790123456790123456790123457); - B->A[2][1] = SUN_RCONST(1.185679012345679012345679012345679012346); - B->A[3][0] = SUN_RCONST(0.04083333333333333333333333333333333333333); - B->A[3][2] = SUN_RCONST(0.1225); - B->A[4][0] = SUN_RCONST(0.6389139236255726439495106205868069082499); - B->A[4][2] = SUN_RCONST(-2.45567263822365688952231721486896276474); - B->A[4][3] = SUN_RCONST(2.272258714598084150537715686368755996227); - B->A[5][0] = SUN_RCONST(-2.661577375018756796976049372460693120956); - B->A[5][2] = SUN_RCONST(10.80451388645613874928130826447159051895); - B->A[5][3] = SUN_RCONST(-8.353914657396199316963247838430106639862); - B->A[5][4] = SUN_RCONST(0.8204875949566569071080834874010179191828); - B->A[6][0] = SUN_RCONST(6.067741434696771740675558248767629265785); - B->A[6][2] = SUN_RCONST(-24.71127363591108760942915978375822305679); - B->A[6][3] = SUN_RCONST(20.42751793078889477328630164265632629395); - B->A[6][4] = SUN_RCONST(-1.906157978816647169395537275704555213451); - B->A[6][5] = SUN_RCONST(1.006172249242067939789535557792987674475); - B->A[7][0] = SUN_RCONST(12.05467007625320441377425595419481396675); - B->A[7][2] = SUN_RCONST(-49.75478495046898785858502378687262535095); - B->A[7][3] = SUN_RCONST(41.14288863860467415634047938510775566101); - B->A[7][4] = SUN_RCONST(-4.461760149974003830664059933042153716087); - B->A[7][5] = SUN_RCONST(2.042334822239175284863677006796933710575); - B->A[7][6] = SUN_RCONST(-0.0983484366540610666085342472797492519021); - B->A[8][0] = SUN_RCONST(10.13814652288180795380867493804544210434); - B->A[8][2] = SUN_RCONST(-42.64113603171750099818382295779883861542); - B->A[8][3] = SUN_RCONST(35.76384003992257021309342235326766967773); - B->A[8][4] = SUN_RCONST(-4.348022840392907539808220462873578071594); - B->A[8][5] = SUN_RCONST(2.009862268377035743327496675192378461361); - B->A[8][6] = SUN_RCONST(0.3487490460338271702767087845131754875183); - B->A[8][7] = SUN_RCONST(-0.2714390051048312657577810114162275567651); - B->A[9][0] = SUN_RCONST(-45.03007203429867644217665656469762325287); - B->A[9][2] = SUN_RCONST(187.3272437654588884470285847783088684082); - B->A[9][3] = SUN_RCONST(-154.0288236935018630902050063014030456543); - B->A[9][4] = SUN_RCONST(18.56465306347536170505918562412261962891); - B->A[9][5] = SUN_RCONST(-7.141809679295079149596858769655227661133); - B->A[9][6] = SUN_RCONST(1.3088085781613787439425777847645804286); - - B->b[0] = SUN_RCONST(0.04715561848627222024665783806085528340191); - B->b[3] = SUN_RCONST(0.2575056429843415317648691598151344805956); - B->b[4] = SUN_RCONST(0.2621665397741262393260797125549288466573); - B->b[5] = SUN_RCONST(0.1521609265673855848621798259046045131981); - B->b[6] = SUN_RCONST(0.4939969170032484924171001239301403984427); - B->b[7] = SUN_RCONST(-0.2943031171403250323415079492406221106648); - B->b[8] = SUN_RCONST(0.08131747232495110944139327102675451897085); - - B->d[0] = SUN_RCONST(0.04460860660634117375034080055229424033314); - B->d[3] = SUN_RCONST(0.2671640378571372709259890143584925681353); - B->d[4] = SUN_RCONST(0.2201018300177293163244485185714438557625); - B->d[5] = SUN_RCONST(0.2188431703143156881186115469972719438374); - B->d[6] = SUN_RCONST(0.2289871705411202773561285539472009986639); - B->d[9] = SUN_RCONST(0.02029518466335628046337546948052477091551); - - B->c[1] = SUN_RCONST(0.005); - B->c[2] = SUN_RCONST(0.1088888888888888888888888888888888888889); - B->c[3] = SUN_RCONST(0.1633333333333333333333333333333333333333); - B->c[4] = SUN_RCONST(0.4555); - B->c[5] = SUN_RCONST(0.6095094489978380991601625282783061265945); - B->c[6] = SUN_RCONST(0.884); - B->c[7] = SUN_RCONST(0.925); - B->c[8] = SUN_RCONST(1.0); - B->c[9] = SUN_RCONST(1.0); + B->A[1][0] = SUN_RCONST(0.005); + B->A[2][0] = SUN_RCONST(-1.076790123456790123456790123456790123457); + B->A[2][1] = SUN_RCONST(1.185679012345679012345679012345679012346); + B->A[3][0] = SUN_RCONST(0.04083333333333333333333333333333333333333); + B->A[3][2] = SUN_RCONST(0.1225); + B->A[4][0] = SUN_RCONST(0.6389139236255726780508121615993336109954); + B->A[4][2] = SUN_RCONST(-2.455672638223656809662640566430653894211); + B->A[4][3] = SUN_RCONST(2.272258714598084131611828404831320283215); + B->A[5][0] = SUN_RCONST(-2.661577375018757131119259297861818119279); + B->A[5][2] = SUN_RCONST(10.80451388645613769565396655365532838482); + B->A[5][3] = SUN_RCONST(-8.353914657396199411968048547819291691541); + B->A[5][4] = SUN_RCONST(0.8204875949566569791420417341743839209619); + B->A[6][0] = SUN_RCONST(6.067741434696770992718360183877276714679); + B->A[6][2] = SUN_RCONST(-24.71127363591108579734203485290746001803); + B->A[6][3] = SUN_RCONST(20.42751793078889394045773111748346612697); + B->A[6][4] = SUN_RCONST(-1.906157978816647150624096784352757010879); + B->A[6][5] = SUN_RCONST(1.006172249242068014790040335899474187268); + B->A[7][0] = SUN_RCONST(12.05467007625320299509109452892778311648); + B->A[7][2] = SUN_RCONST(-49.75478495046898932807257615331444758322); + B->A[7][3] = SUN_RCONST(41.14288863860467663259698416710157354209); + B->A[7][4] = SUN_RCONST(-4.461760149974004185641911603484815375051); + B->A[7][5] = SUN_RCONST(2.042334822239174959821717077708608543738); + B->A[7][6] = SUN_RCONST(-0.09834843665406107379530801693870224403537); + B->A[8][0] = SUN_RCONST(10.13814652288180787641845141981689030769); + B->A[8][2] = SUN_RCONST(-42.64113603171750214622846006736635730625); + B->A[8][3] = SUN_RCONST(35.76384003992257007135021178023160054034); + B->A[8][4] = SUN_RCONST(-4.34802284039290765334037029690824594371); + B->A[8][5] = SUN_RCONST(2.009862268377035895441943593011827554771); + B->A[8][6] = SUN_RCONST(0.348749046033827240595382285305314587914); + B->A[8][7] = SUN_RCONST(-0.2714390051048312842371587140910297407572); + B->A[9][0] = SUN_RCONST(-45.03007203429867712435322405073769635151); + B->A[9][2] = SUN_RCONST(187.3272437654588840752418206154201997384); + B->A[9][3] = SUN_RCONST(-154.0288236935018690596728621034510402582); + B->A[9][4] = SUN_RCONST(18.56465306347536233859492332958439136765); + B->A[9][5] = SUN_RCONST(-7.141809679295078854925420496823551192821); + B->A[9][6] = SUN_RCONST(1.308808578161378625114762706007696696508); + + B->b[0] = SUN_RCONST(0.04715561848627222170431765108838175679569); + B->b[3] = SUN_RCONST(0.2575056429843415189596436101037687580986); + B->b[4] = SUN_RCONST(0.2621665397741262047713863095764527711129); + B->b[5] = SUN_RCONST(0.1521609265673855740323133199165117535523); + B->b[6] = SUN_RCONST(0.4939969170032484246907175893227876844296); + B->b[7] = SUN_RCONST(-0.2943031171403250441557244744092703429139); + B->b[8] = SUN_RCONST(0.08131747232495109999734599440136761892478); + + B->d[0] = SUN_RCONST(0.04460860660634117628731817597479197781432); + B->d[3] = SUN_RCONST(0.2671640378571372680509102260943837899738); + B->d[4] = SUN_RCONST(0.2201018300177293019979715776650753096323); + B->d[5] = SUN_RCONST(0.2188431703143156830983120833512893824578); + B->d[6] = SUN_RCONST(0.2289871705411202883378173889763552365362); + B->d[9] = SUN_RCONST(0.02029518466335628222767054793810430358554); + + B->c[1] = SUN_RCONST(0.005); + B->c[2] = SUN_RCONST(0.1088888888888888888888888888888888888889); + B->c[3] = SUN_RCONST(0.1633333333333333333333333333333333333333); + B->c[4] = SUN_RCONST(0.4555); + B->c[5] = SUN_RCONST(0.6095094489978381317087004421486024949638); + B->c[6] = SUN_RCONST(0.884); + B->c[7] = SUN_RCONST(0.925); + B->c[8] = SUN_RCONST(1.0); + B->c[9] = SUN_RCONST(1.0); return B; }) @@ -924,94 +925,94 @@ ARK_BUTCHER_TABLE(ARKODE_VERNER_13_7_8, { /* Verner-8-7 (DOI: 10.1007/s11075-009 B->q = 8; B->p = 7; - B->A[1][0] = SUN_RCONST(0.05); - B->A[2][0] = SUN_RCONST(-0.006993164062499999597544153573380754096434); - B->A[2][1] = SUN_RCONST(0.1135556640625000057731597280508140102029); - B->A[3][0] = SUN_RCONST(0.0399609375); - B->A[3][2] = SUN_RCONST(0.1198828125); - B->A[4][0] = SUN_RCONST(0.3613975628004575391116759419674053788185); - B->A[4][2] = SUN_RCONST(-1.341524066700492845427561405813321471214); - B->A[4][3] = SUN_RCONST(1.370126503900035208616259296832140535116); - B->A[5][0] = SUN_RCONST(0.04904720279720279491053602782812959048897); - B->A[5][3] = SUN_RCONST(0.2350972042214404811311112553084967657924); - B->A[5][4] = SUN_RCONST(0.1808555929813567275665775468951324000955); - B->A[6][0] = SUN_RCONST(0.06169289044289043982827180911954201292247); - B->A[6][3] = SUN_RCONST(0.112365683146402772774052891691098921001); - B->A[6][4] = SUN_RCONST(-0.03885046071451366683779937716280983295292); - B->A[6][5] = SUN_RCONST(0.01979188712522046006414555563424073625356); - B->A[7][0] = SUN_RCONST(-1.767630240222326953869469434721395373344); - B->A[7][3] = SUN_RCONST(-62.5); - B->A[7][4] = SUN_RCONST(-6.061889377376669330033109872601926326752); - B->A[7][5] = SUN_RCONST(5.6508231982227634659921022830531001091); - B->A[7][6] = SUN_RCONST(65.6216964193762350987526588141918182373); - B->A[8][0] = SUN_RCONST(-1.180945066554970779293398663867264986038); - B->A[8][3] = SUN_RCONST(-41.50473441114321104805640061385929584503); - B->A[8][4] = SUN_RCONST(-4.434438319103724879255423729773610830307); - B->A[8][5] = SUN_RCONST(4.26040818858613334896290325559675693512); - B->A[8][6] = SUN_RCONST(43.75364022446171219371535698883235454559); - B->A[8][7] = SUN_RCONST(0.007871425489912309975126802896738809067756); - B->A[9][0] = SUN_RCONST(-1.281405999441488363643770753697026520967); - B->A[9][3] = SUN_RCONST(-45.04713996013986587740873801521956920624); - B->A[9][4] = SUN_RCONST(-4.731362069449575713520061981398612260818); - B->A[9][5] = SUN_RCONST(4.514967016593807613844546722248196601868); - B->A[9][6] = SUN_RCONST(47.4490955717298490412758837919682264328); - B->A[9][7] = SUN_RCONST(0.01059228297111661047658071055366235668771); - B->A[9][8] = SUN_RCONST(-0.005746842263844615696088968803678653785028); - B->A[10][0] = SUN_RCONST(-1.724470134262485077059068316884804517031); - B->A[10][3] = SUN_RCONST(-60.92349008483054007001555874012410640717); - B->A[10][4] = SUN_RCONST(-5.951518376222391992769189528189599514008); - B->A[10][5] = SUN_RCONST(5.55652373069845673114741657627746462822); - B->A[10][6] = SUN_RCONST(63.98301198033306036450085230171680450439); - B->A[10][7] = SUN_RCONST(0.01464202825041496271174512600055095390417); - B->A[10][8] = SUN_RCONST(0.06460408772358203211005900357122300192714); - B->A[10][9] = SUN_RCONST(-0.07930323169008879347074980614706873893738); - B->A[11][0] = SUN_RCONST(-3.30162266774707902072805154602974653244); - B->A[11][3] = SUN_RCONST(-118.0112723597525103969019255600869655609); - B->A[11][4] = SUN_RCONST(-10.14142238845611210251718148356303572655); - B->A[11][5] = SUN_RCONST(9.139311332232058049385159392841160297394); - B->A[11][6] = SUN_RCONST(123.3759428284042769519146531820297241211); - B->A[11][7] = SUN_RCONST(4.623244378874581173022306757047772407532); - B->A[11][8] = SUN_RCONST(-3.383277738068201756505004595965147018433); - B->A[11][9] = SUN_RCONST(4.527592100324618229478801367804408073425); - B->A[11][10] = SUN_RCONST(-5.828495485811623133542980212951079010963); - B->A[12][0] = SUN_RCONST(-3.039515033766308604867845133412629365921); - B->A[12][3] = SUN_RCONST(-109.260868089417627402326615992933511734); - B->A[12][4] = SUN_RCONST(-9.290642497400291688336437800899147987366); - B->A[12][5] = SUN_RCONST(8.43050498176491203139448771253228187561); - B->A[12][6] = SUN_RCONST(114.2010010378331372749016736634075641632); - B->A[12][7] = SUN_RCONST(-0.9637271342145479202656588313402608036995); - B->A[12][8] = SUN_RCONST(-5.034884088802189516798080148873850703239); - B->A[12][9] = SUN_RCONST(5.958130824002923375815043982584029436111); - - B->b[0] = SUN_RCONST(0.04427989419007950788742533632103004492819); - B->b[5] = SUN_RCONST(0.3541049391724448991425333588267676532269); - B->b[6] = SUN_RCONST(0.2479692154956437688539949704136233776808); - B->b[7] = SUN_RCONST(-15.69420203883808540012978482991456985474); - B->b[8] = SUN_RCONST(25.08406496555856435293208051007241010666); - B->b[9] = SUN_RCONST(-31.73836778626027665950459777377545833588); - B->b[10] = SUN_RCONST(22.93828327398878386134128959383815526962); - B->b[11] = SUN_RCONST(-0.2361324633071542056228508954518474638462); - - B->d[0] = SUN_RCONST(0.04431261522908979538781792939516890328377); - B->d[5] = SUN_RCONST(0.3546095642343226606030270886549260467291); - B->d[6] = SUN_RCONST(0.2478480431366653080615947146725375205278); - B->d[7] = SUN_RCONST(4.448134732475784502980786783155053853989); - B->d[8] = SUN_RCONST(19.8468863661187349123338208300992846489); - B->d[9] = SUN_RCONST(-23.58162337746561831863800762221217155457); - B->d[12] = SUN_RCONST(-0.3601679437289775354003040774841792881489); - - B->c[1] = SUN_RCONST(0.05); - B->c[2] = SUN_RCONST(0.1065625); - B->c[3] = SUN_RCONST(0.15984375); - B->c[4] = SUN_RCONST(0.39); - B->c[5] = SUN_RCONST(0.465); - B->c[6] = SUN_RCONST(0.155); - B->c[7] = SUN_RCONST(0.943); - B->c[8] = SUN_RCONST(0.9018020417358569851273841777583584189415); - B->c[9] = SUN_RCONST(0.909); - B->c[10] = SUN_RCONST(0.94); - B->c[11] = SUN_RCONST(1.0); - B->c[12] = SUN_RCONST(1.0); + B->A[1][0] = SUN_RCONST(0.05); + B->A[2][0] = SUN_RCONST(-0.0069931640625); + B->A[2][1] = SUN_RCONST(0.1135556640625); + B->A[3][0] = SUN_RCONST(0.0399609375); + B->A[3][2] = SUN_RCONST(0.1198828125); + B->A[4][0] = SUN_RCONST(0.3613975628004575124052940721184028345129); + B->A[4][2] = SUN_RCONST(-1.341524066700492771819987788202715834917); + B->A[4][3] = SUN_RCONST(1.370126503900035259414693716084313000404); + B->A[5][0] = SUN_RCONST(0.0490472027972027972027972027972027972028); + B->A[5][3] = SUN_RCONST(0.2350972042214404739862988335493427143122); + B->A[5][4] = SUN_RCONST(0.180855592981356728810903963653454488485); + B->A[6][0] = SUN_RCONST(0.06169289044289044289044289044289044289044); + B->A[6][3] = SUN_RCONST(0.1123656831464027662262557035130015442303); + B->A[6][4] = SUN_RCONST(-0.03885046071451366767049048108111244567456); + B->A[6][5] = SUN_RCONST(0.01979188712522045855379188712522045855379); + B->A[7][0] = SUN_RCONST(-1.767630240222326875735597119572145586714); + B->A[7][3] = SUN_RCONST(-62.5); + B->A[7][4] = SUN_RCONST(-6.061889377376669100821361459659331999758); + B->A[7][5] = SUN_RCONST(5.650823198222763138561298030600840174201); + B->A[7][6] = SUN_RCONST(65.62169641937623283799566054863063741227); + B->A[8][0] = SUN_RCONST(-1.180945066554970799825116282628297957882); + B->A[8][3] = SUN_RCONST(-41.50473441114320841606641502701994225874); + B->A[8][4] = SUN_RCONST(-4.434438319103725011225169229846100211776); + B->A[8][5] = SUN_RCONST(4.260408188586133024812193710744693240761); + B->A[8][6] = SUN_RCONST(43.75364022446171584987676829438379303004); + B->A[8][7] = SUN_RCONST(0.00787142548991231068744647504422630755086); + B->A[9][0] = SUN_RCONST(-1.281405999441488405459510291182054246266); + B->A[9][3] = SUN_RCONST(-45.04713996013986630220754257136007322267); + B->A[9][4] = SUN_RCONST(-4.731362069449576477311464265491282810943); + B->A[9][5] = SUN_RCONST(4.514967016593807841185851584597240996214); + B->A[9][6] = SUN_RCONST(47.44909557172985134869022392235929015114); + B->A[9][7] = SUN_RCONST(0.01059228297111661135687393955516542875228); + B->A[9][8] = SUN_RCONST(-0.005746842263844616254432318478286296232021); + B->A[10][0] = SUN_RCONST(-1.724470134262485191756709817484481861731); + B->A[10][3] = SUN_RCONST(-60.92349008483054016518434619253765246063); + B->A[10][4] = SUN_RCONST(-5.95151837622239245520283276706185486829); + B->A[10][5] = SUN_RCONST(5.556523730698456235979791650843592496839); + B->A[10][6] = SUN_RCONST(63.98301198033305336837536378635995939281); + B->A[10][7] = SUN_RCONST(0.01464202825041496159275921391759452676003); + B->A[10][8] = SUN_RCONST(0.06460408772358203603621865144977650714892); + B->A[10][9] = SUN_RCONST(-0.07930323169008878984024452548693373291447); + B->A[11][0] = SUN_RCONST(-3.301622667747079016353994789790983625569); + B->A[11][3] = SUN_RCONST(-118.011272359752508566692330395789886851); + B->A[11][4] = SUN_RCONST(-10.14142238845611248642783916034510897595); + B->A[11][5] = SUN_RCONST(9.139311332232057923544012273556827000619); + B->A[11][6] = SUN_RCONST(123.3759428284042683684847180986501894364); + B->A[11][7] = SUN_RCONST(4.623244378874580474839807625067630924792); + B->A[11][8] = SUN_RCONST(-3.383277738068201923652550971536811240814); + B->A[11][9] = SUN_RCONST(4.527592100324618189451265339351129035325); + B->A[11][10] = SUN_RCONST(-5.828495485811622963193088019162985703755); + B->A[12][0] = SUN_RCONST(-3.039515033766309030040102851821200251056); + B->A[12][3] = SUN_RCONST(-109.2608680894176254686444192322164623352); + B->A[12][4] = SUN_RCONST(-9.290642497400293449717665542656897549158); + B->A[12][5] = SUN_RCONST(8.430504981764911142134299253836167803454); + B->A[12][6] = SUN_RCONST(114.2010010378331313557424041095523427476); + B->A[12][7] = SUN_RCONST(-0.9637271342145479358162375658987901652762); + B->A[12][8] = SUN_RCONST(-5.034884088802189791198680336183332323118); + B->A[12][9] = SUN_RCONST(5.958130824002923177540402165388172072794); + + B->b[0] = SUN_RCONST(0.04427989419007951074716746668098518862111); + B->b[5] = SUN_RCONST(0.3541049391724448744815552028733568354121); + B->b[6] = SUN_RCONST(0.2479692154956437828667629415370663023884); + B->b[7] = SUN_RCONST(-15.69420203883808405099207034271191213468); + B->b[8] = SUN_RCONST(25.08406496555856261343930031237186278518); + B->b[9] = SUN_RCONST(-31.73836778626027646833156112007297739997); + B->b[10] = SUN_RCONST(22.93828327398878395231483560344797018313); + B->b[11] = SUN_RCONST(-0.2361324633071542145259900641263517600737); + + B->d[0] = SUN_RCONST(0.04431261522908979212486436510209029764893); + B->d[5] = SUN_RCONST(0.3546095642343226447863179350895055038855); + B->d[6] = SUN_RCONST(0.2478480431366653069619986721504458660017); + B->d[7] = SUN_RCONST(4.448134732475784492725128317159648871312); + B->d[8] = SUN_RCONST(19.84688636611873369930932399297687935291); + B->d[9] = SUN_RCONST(-23.58162337746561841969517960870394965085); + B->d[12] = SUN_RCONST(-0.360167943728977516212453673774620240911); + + B->c[1] = SUN_RCONST(0.05); + B->c[2] = SUN_RCONST(0.1065625); + B->c[3] = SUN_RCONST(0.15984375); + B->c[4] = SUN_RCONST(0.39); + B->c[5] = SUN_RCONST(0.465); + B->c[6] = SUN_RCONST(0.155); + B->c[7] = SUN_RCONST(0.943); + B->c[8] = SUN_RCONST(0.901802041735856958259707940678372149956); + B->c[9] = SUN_RCONST(0.909); + B->c[10] = SUN_RCONST(0.94); + B->c[11] = SUN_RCONST(1.0); + B->c[12] = SUN_RCONST(1.0); return B; }) diff --git a/test/answers b/test/answers index 726dc7cc48..5049e8db94 160000 --- a/test/answers +++ b/test/answers @@ -1 +1 @@ -Subproject commit 726dc7cc4869538d8db98e3aa1b3d0fde87c0494 +Subproject commit 5049e8db94f1eda7a7d839e0cf474b4cbcaec2b2