<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE Runge-Kutta PUBLIC "-//spaceroots.org//DTD Runge-Kutta V1.2//EN"
                             "Runge-Kutta.dtd" >

<!-- $Id: DormandPrinceRKsuite.xml,v 1.3 2004/05/23 17:41:52 luc Exp $ -->

<!-- The original article describing this method is:                         -->
<!-- High order embedded Runge-Kutta formulae                                -->
<!-- P.J. Prince and J.R. Dormand                                            -->
<!-- Journal of Computational and Applied Mathematics, volume 7, no. 1, 1981 -->
<!--                                                                         -->
<!-- The coefficients of the article were given as rational approximations.  -->
<!-- Quoting the article: "they were computed using a precision of about 24  -->
<!-- significant digits and the rationals presented in table 2 are continued -->
<!-- fractions accurate to 18 significant figures".                          -->
<!--                                                                         -->
<!-- Unfortunately, the given approximations do not verify the equations of  -->
<!-- conditions, hence preventing from computing the method order.           -->
<!--                                                                         -->
<!-- The values given here are NOT the ones given in the article.            -->
<!-- The simplest rational numbers (like 1/18 or 215595617/4500000000) were  -->
<!-- directly deduced as continued fractions from the 30 digits values       -->
<!-- Dormand and Prince provided to R.W. Brankin (NAG), I. Gladwell and      -->
<!-- L.F. Shampine (SMU) for rksuite. The remaining values were computed by  -->
<!-- solving the equations of conditions and the additional equations as in  -->
<!-- the article. Since the simplest rational number were already known at   -->
<!-- this stage, the solution had only two degrees of freedom. Once again,   -->
<!-- continued fraction approximations of the corresponding values found in  -->
<!-- rksuite were used for these free parameters which are c(9) and a(8,4).  -->
<!-- This lead to a consistent set of rational numbers that are both exact   -->
<!-- solutions of the equations of conditions and that are consistent with   -->
<!-- the floating point approximations used in rksuite (the difference with  -->
<!-- rksuite is less than 4.49e-29).                                         -->
<!--                                                                         -->
<!--                                                       Luc Maisonobe     -->

<Runge-Kutta name="Dormand-Prince 8(7) from RKsuite" >

  <time-steps>
    <zero/>
    <rational> <p>                1</p> <q>               18</q> </rational>
    <rational> <p>                1</p> <q>               12</q> </rational>
    <rational> <p>                1</p> <q>                8</q> </rational>
    <rational> <p>                5</p> <q>               16</q> </rational>
    <rational> <p>                3</p> <q>                8</q> </rational>
    <rational> <p>               59</p> <q>              400</q> </rational>
    <rational> <p>               93</p> <q>              200</q> </rational>
    <rational> <p>       5490023248</p> <q>       9719169821</q> </rational>
    <rational> <p>               13</p> <q>               20</q> </rational>
    <rational> <p>30992876149296355</p> <q>33518267164510641</q> </rational>
    <one/>
    <one/>
  </time-steps>

  <internal-weights>
    <row>
      <!-- empty first row -->
    </row>
    <row>
      <rational> <p>  1</p> <q>18</q> </rational>
    </row>
    <row>
      <rational> <p>  1</p> <q>48</q> </rational>
      <rational> <p>  1</p> <q>16</q> </rational>
    </row>
    <row>
      <rational> <p>  1</p> <q>32</q> </rational>
      <zero/>
      <rational> <p>  3</p> <q>32</q> </rational>
    </row>
    <row>
      <rational> <p>  5</p> <q>16</q> </rational>
      <zero/>
      <rational> <p>-75</p> <q>64</q> </rational>
      <rational> <p> 75</p> <q>64</q> </rational>
    </row>
    <row>
      <rational> <p>  3</p> <q>80</q> </rational>
      <zero/>
      <zero/>
      <rational> <p>  3</p> <q>16</q> </rational>
      <rational> <p>  3</p> <q>20</q> </rational>
    </row>
    <row>
      <rational> <p>215595617</p> <q>4500000000</q> </rational>
      <zero/>
      <zero/>
      <rational> <p>202047683</p> <q>1800000000</q> </rational>
      <rational> <p>-28693883</p> <q>1125000000</q> </rational>
      <rational> <p> 23124283</p> <q>1800000000</q> </rational>
    </row>
    <row>
      <rational>
        <p>11726598164226006069237</p>
        <q>693143707477248946250000</q>
      </rational>
      <zero/>
      <zero/>
      <rational>
        <p>3645214829674366</p>
        <q>9398558745454223</q>
      </rational>
      <rational>
        <p>581170260096696027639</p>
        <q>16153772843749445781250</q>
      </rational>
      <rational>
        <p>42115621944092059256013</p>
        <q>213817211459083573250000</q>
      </rational>
      <rational>
        <p>-9586818837113403869317</p>
        <q>55506948094778095615700</q>
      </rational>
    </row>
    <row>
      <rational>
        <p>18990076562085425080258247486211701152017430309999225682105254195543216</p>
        <q>274837101252316540755496047148804418355047711809575397308579300198922755</q>
      </rational>
      <zero/>
      <zero/>
      <rational>
        <p>-590897882709508452965021848121076251042970688582402105372680900808448</p>
        <q>931651190685818782222020498809506502898466819693475923079929831182789</q>
      </rational>
      <rational>
        <p>-8259895209151807841968536963440354359819248538768464774645526139720704</p>
        <q>51240815487720033022211127434522857659415675083141175769396140715053395</q>
      </rational>
      <rational>
        <p>11754809056560733035757504658414647207251941885994101675389520031911168</p>
        <q>84780258352409509182203865391665091763760480592106309000273614637633799</q>
      </rational>
      <rational>
        <p>5752459885771421411587874676442760720310695365376904193018458469488000000</p>
        <q>6113598630079307939916700959910071617186727989364110504575286211091592839</q>
      </rational>
      <rational>
        <p>6992959981041103840944260661352231159203510904000000</p>
        <q>33042342481018810238716485165383193327572243242031481</q>
      </rational>
    </row>
    <row>
      <rational>
        <p>2734214853457982889849495637027471346235271839</p>
        <q>14895726670967050272805521235317503773908800000</q>
      </rational>
      <zero/>
      <zero/>
      <rational>
        <p>-824017847133664346341678842869033</p>
        <q>333776936103783033354867040252500</q>
      </rational>
      <rational>
        <p>-121531056178163917478329562321909</p>
        <q>417221170129728791693583800315625</q>
      </rational>
      <rational>
        <p>-58283598224692420054431661070719456861879</p>
        <q>2201622546708156066415046081711898231757500</q>
      </rational>
      <rational>
        <p>1048530694613735923175802230971909330841325</p>
        <q>368184711788251276632850372248063743443451</q>
      </rational>
      <rational>
        <p>6560308981643238155096750</p>
        <q>23314158982833116227901307</q>
      </rational>
      <rational>
        <p>1586281686644478270321241459439899956623408540189275177</p>
        <q>12818966182821619734532382093543907143647820508227904000</q>
      </rational>
    </row>
    <row>
      <rational>
        <p>-255616412274365331553655604579059074842908650368438523233953802985615283524118823825321342949913096651956084368505842598512186024437378483</p>
        <q>210310344676059035396899078985427670579926627352889760451040969375489218212919359752871432017697736288589298881016287842334398044550154592</q>
      </rational>
      <zero/>
      <zero/>
      <rational>
        <p>282519818032024410149663138738085998471579779523231555143713854988952583353558050577643427421062839907221729672560</p>
        <q>16945147798561261109097516510243332523101872581998783094851537483012509125428997297578966743900269265826886675903</q>
      </rational>
      <rational>
        <p>56897062302108258873205213083011114100590143417643589005836840929183184257753907131080885023549906770543022922944</p>
        <q>62132208594724624066690893870892219251373532800662204681122304104379200126572990091122878060967653974698584478311</q>
      </rational>
      <rational>
        <p>-525291077225643741823242526796844342673910005728849153262338591273687724425341532030687488503036810854975964906004884944732450315833551600</p>
        <q>86730273389712616801659796491275280653522844940656791717704780574309787136540583706576467481350057323337378623231974078392279116344634203</q>
      </rational>
      <rational>
        <p>-67005823047604763471102738065795946484453119312642130946020241261059478265347095684019781388883780160177181933729257905012186702321982785000000</p>
        <q>4186928791458954491688701813893415392112637908086222164290289027506274589758695893801068079773199852630682421232750997635690152390541737772491</q>
      </rational>
      <rational>
        <p>14452808190943733856347403293564049428070036006455540637351575894308889412108389906599600485253194980566957563315340127500000</p>
        <q>973298753951638431793701721528200883789914680313298926814615071301495341142665245758696799918623095581715765886887649741383</q>
      </rational>
      <rational>
        <p>-847205714160239289113307424793539077951658318917591980262304042838612275700008766016957700930195545053374220841398660187944621107065829310608865394026418258355</p>
        <q>63358704383980726998416112830322706485300332630289060627019459285960825979588560697460438306253611095891491565590971432387489415884103732012574255897878321824</q>
      </rational>
      <rational>
        <p>115188988949323598098458035263894669359112068207548636038131244599058496172710646622536373145562218909633738697549245770000</p>
        <q>22435701423704647109276644681016984863989966659062291511947760084943925084166270812354794844590216383205333034660617626349</q>
      </rational>
    </row>
    <row>
      <rational>
        <p>10998550512933626725088302038371530964598147297512468840039417648</p>
        <q>42488262284880962424740919553843298578958836657248988424817846831</q>
      </rational>
      <zero/>
      <zero/>
      <rational>
        <p>-1912335884341980913188205966714</p>
        <q>400532323324539640025840448303</q>
      </rational>
      <rational>
        <p>-638985657458099472113117565704</p>
        <q>1468618518856645346761414977111</q>
      </rational>
      <rational>
        <p>-356186466170487241265364552580842894529369348660487772967498582078</p>
        <q>116802234143855707931697571288763963529925702052646364297066296933</q>
      </rational>
      <rational>
        <p>104504098425278653402875078131305487283744744990687417095543404053455375000</p>
        <q>18735316691000084087755568783004219910813327510146536291633503672603916571</q>
      </rational>
      <rational>
        <p>102968047255116137164987219663037502898143843145000000</p>
        <q>16726911019578511096352500731821705820659977305290973</q>
      </rational>
      <rational>
        <p>-111383789341965407321602142444917514115800834690201329379027449761759895100011973929185171163615</p>
        <q>22003454775272439861723739055800175619777853128055268766511800511549546753240522083740083243539</q>
      </rational>
      <rational>
        <p>44737471541467333111555512048686345065750</p>
        <q>20391511842264262870398286145868618178341</q>
      </rational>
      <rational>
        <p>596546910748352988538198147432444829112451075399436970876618894337461087953328002664759407401623072330633057948252</p>
        <q>4431076125983762085449284205348478790535717302043416234911901479328512794465980800998816354448181196721636373483787</q>
      </rational>
    </row>
    <row>
      <rational>
        <p>2668961086350337587026359936713763973977088899787889667452914349242161003201604196856266669293198351</p>
        <q>3245223151025578623911962071839712523460079734738883504948691727307229053954261682956037571373336000</q>
      </rational>
      <zero/>
      <zero/>
      <rational>
        <p>-123842528157684102596564980219993635496684032691952381988876439</p>
        <q>10622351739755481416233216084726691961257583759334304249675475</q>
      </rational>
      <rational>
        <p>-3983625661608052245493831625049667377279125867118223009050948692</p>
        <q>5258064111178963301035441961939712520822503960870480603589360125</q>
      </rational>
      <rational>
        <p>19904850223010756923046721436638832449160820438206932738859880532987781491556687164382628385926059</p>
        <q>27878972770294953613744168085878196472277911654488779445654737668312052420805424854525717225852025</q>
      </rational>
      <rational>
        <p>2963016919642684458108838644215240652094661424341241119431773847822472831467146820084467232939611682500</p>
        <q>245368675953257979528752841999502074158701941434250184214775300276994288791546583371623599188616367543</q>
      </rational>
      <rational>
        <p>-339784374935367314296824613776444883113869450234942131172912300100535979345925250000</p>
        <q>159698690787587746004588725210359673189662237866695585709500421500486548151424426361</q>
      </rational>
      <rational>
        <p>4955095692700499418628052380948016677978733013841365878109775677669056866398110949788869771135857671298802131693154421086808143</p>
        <q>2489789885462873158531234022579722982784822257458164105126884288597324542930882581099522281388970940826324647386340365850671680</q>
      </rational>
      <rational>
        <p>-563115171027780776675066866318087406247194110301648522108648094708415</p>
        <q>2403532595444498372383116767918060257292523183751650851596520916634577</q>
      </rational>
      <rational>
        <p>147332487580158450887955957061658718012538967463083369806963200702426559434915876714751833908862217396388157664714990174448521780809</p>
        <q>837599084085749358149340415048050308970085851893614803629073546048735327947816070400330404870816820234727495143522673498826476267825</q>
      </rational>
      <zero/>
    </row>
  </internal-weights>

  <estimation-weights>
    <rational><p>212810988215683677989664967567559</p>
              <q>5097575504458999984164528930580800</q></rational>
    <zero/>
    <zero/>
    <zero/>
    <zero/>
    <rational><p>-570667999368605802515460802224128</p>
              <q>10291145812277763122885317774476825</q></rational>
    <rational><p>3970894643399159150754126826496000000000000</p>
              <q>16592904867230933191457493387696939021741363</q></rational>
    <rational><p>177094288219480472437690862000000000000</p>
              <q>251729356670100506734814442705774463449</q></rational>
    <rational><p>-66822609448295850920212176513645119787713273203022994500406050793972052314809461629969645683</p>
              <q>87952305220338336969447643899150816363456821562985998778022435070001091778042097545895594560</q></rational>
    <rational><p>314652731163869955629145958568800000</p>
              <q>476340207420551356675670184044905167</q></rational>
    <rational><p>177014954088789647707522848990757432519504314686067075784476503038212450536095365316360385634933688213244039743969578872631174179769</p>
              <q>1119019983628991838522384101261104859676427163726922121733732080377576616485631933067985100908132443862205090961383250990215178108200</q></rational>
    <rational><p>-454665916000392064556420344242099</p>
              <q>1909482158429176288068071462671400</q></rational>
    <rational> <p>1</p> <q>4</q> </rational>
  </estimation-weights>

  <error-weights>
    <rational><p>-559451250909552448081850892236801</p>
              <q>45878179540130999857480760375227200</q> </rational>
    <zero/>
    <zero/>
    <zero/>
    <zero/>
    <rational><p>-71609760116422713354476914206310528</p>
              <q>92620312310499868105967859970291425</q></rational>
    <rational><p>3580488005821135667723845710315526400000000</p>
              <q>49778714601692799574372480163090817065224089 </q></rational>
    <rational><p>27972562545477622404092544611840050000000</p>
              <q>15858949470216331924293309890463791197287 </q></rational>
    <rational><p>-471560340278689218632246039700525107155830047772252224686621762531930221518280119324115757721</p>
              <q>263856915661015010908342931697452449090370464688957996334067305210003275334126292637686783680</q></rational>
    <rational><p>1118902501819104896163701784473602000</p>
              <q>1429020622261654070027010552134715501</q></rational>
    <rational><p>-88147315286003959023733493243065519345795376001177086741745644035284828010330363433456007369695214461423474478023841014226368181849</p>
              <q>1119019983628991838522384101261104859676427163726922121733732080377576616485631933067985100908132443862205090961383250990215178108200</q></rational>
    <rational><p>4855786107375199096235011683247451</p>
              <q>17185339425862586592612643164042600</q></rational>
    <rational><p>-1</p>
              <q>4</q></rational>
  </error-weights>

</Runge-Kutta>
