Modified:
websites/production/commons/content/proper/commons-math/xref-test/org/apache/commons/math3/ode/nonstiff/DormandPrince853IntegratorTest.html
==============================================================================
---
websites/production/commons/content/proper/commons-math/xref-test/org/apache/commons/math3/ode/nonstiff/DormandPrince853IntegratorTest.html
(original)
+++
websites/production/commons/content/proper/commons-math/xref-test/org/apache/commons/math3/ode/nonstiff/DormandPrince853IntegratorTest.html
Sun Apr 7 07:52:05 2013
@@ -298,7 +298,7 @@
<a class="jxr_linenumber" name="288" href="#288">288</a>
FirstOrderIntegrator integ = <strong class="jxr_keyword">new</strong>
DormandPrince853Integrator(minStep, maxStep,
<a class="jxr_linenumber" name="289" href="#289">289</a>
scalAbsoluteTolerance,
<a class="jxr_linenumber" name="290" href="#290">290</a>
scalRelativeTolerance);
-<a class="jxr_linenumber" name="291" href="#291">291</a>
integ.addStepHandler(<strong class="jxr_keyword">new</strong> <a
href="../../../../../../org/apache/commons/math3/ode/nonstiff/ThreeEighthesIntegratorTest.html">KeplerHandler</a>(pb));
+<a class="jxr_linenumber" name="291" href="#291">291</a>
integ.addStepHandler(<strong class="jxr_keyword">new</strong> <a
href="../../../../../../org/apache/commons/math3/ode/nonstiff/DormandPrince853IntegratorTest.html">KeplerHandler</a>(pb));
<a class="jxr_linenumber" name="292" href="#292">292</a>
integ.integrate(pb,
<a class="jxr_linenumber" name="293" href="#293">293</a>
pb.getInitialTime(), pb.getInitialState(),
<a class="jxr_linenumber" name="294" href="#294">294</a>
pb.getFinalTime(), <strong class="jxr_keyword">new</strong> <strong
class="jxr_keyword">double</strong>[pb.getDimension()]);
@@ -343,84 +343,151 @@
<a class="jxr_linenumber" name="333" href="#333">333</a>
Assert.assertEquals(8.0, y[0], 1.0e-12);
<a class="jxr_linenumber" name="334" href="#334">334</a> }
<a class="jxr_linenumber" name="335" href="#335">335</a>
-<a class="jxr_linenumber" name="336" href="#336">336</a> <strong
class="jxr_keyword">private</strong> <strong
class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong>
<a
href="../../../../../../org/apache/commons/math3/ode/nonstiff/ThreeEighthesIntegratorTest.html">KeplerHandler</a>
<strong class="jxr_keyword">implements</strong> StepHandler {
-<a class="jxr_linenumber" name="337" href="#337">337</a> <strong
class="jxr_keyword">public</strong> <a
href="../../../../../../org/apache/commons/math3/ode/nonstiff/ThreeEighthesIntegratorTest.html">KeplerHandler</a>(<a
href="../../../../../../org/apache/commons/math3/ode/TestProblem3.html">TestProblem3</a>
pb) {
-<a class="jxr_linenumber" name="338" href="#338">338</a> <strong
class="jxr_keyword">this</strong>.pb = pb;
-<a class="jxr_linenumber" name="339" href="#339">339</a> }
-<a class="jxr_linenumber" name="340" href="#340">340</a> <strong
class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong>
init(<strong class="jxr_keyword">double</strong> t0, <strong
class="jxr_keyword">double</strong>[] y0, <strong
class="jxr_keyword">double</strong> t) {
-<a class="jxr_linenumber" name="341" href="#341">341</a> nbSteps = 0;
-<a class="jxr_linenumber" name="342" href="#342">342</a> maxError = 0;
-<a class="jxr_linenumber" name="343" href="#343">343</a> }
-<a class="jxr_linenumber" name="344" href="#344">344</a> <strong
class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong>
handleStep(StepInterpolator interpolator, <strong
class="jxr_keyword">boolean</strong> isLast)
-<a class="jxr_linenumber" name="345" href="#345">345</a> <strong
class="jxr_keyword">throws</strong> MaxCountExceededException {
-<a class="jxr_linenumber" name="346" href="#346">346</a>
-<a class="jxr_linenumber" name="347" href="#347">347</a> ++nbSteps;
-<a class="jxr_linenumber" name="348" href="#348">348</a> <strong
class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> a =
1; a < 10; ++a) {
+<a class="jxr_linenumber" name="336" href="#336">336</a> @Test
+<a class="jxr_linenumber" name="337" href="#337">337</a> <strong
class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong>
testEventsScheduling() {
+<a class="jxr_linenumber" name="338" href="#338">338</a>
+<a class="jxr_linenumber" name="339" href="#339">339</a>
FirstOrderDifferentialEquations sincos = <strong
class="jxr_keyword">new</strong> FirstOrderDifferentialEquations() {
+<a class="jxr_linenumber" name="340" href="#340">340</a>
+<a class="jxr_linenumber" name="341" href="#341">341</a> <strong
class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong>
getDimension() {
+<a class="jxr_linenumber" name="342" href="#342">342</a> <strong
class="jxr_keyword">return</strong> 2;
+<a class="jxr_linenumber" name="343" href="#343">343</a> }
+<a class="jxr_linenumber" name="344" href="#344">344</a>
+<a class="jxr_linenumber" name="345" href="#345">345</a> <strong
class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong>
computeDerivatives(<strong class="jxr_keyword">double</strong> t, <strong
class="jxr_keyword">double</strong>[] y, <strong
class="jxr_keyword">double</strong>[] yDot) {
+<a class="jxr_linenumber" name="346" href="#346">346</a> yDot[0]
= y[1];
+<a class="jxr_linenumber" name="347" href="#347">347</a> yDot[1]
= -y[0];
+<a class="jxr_linenumber" name="348" href="#348">348</a> }
<a class="jxr_linenumber" name="349" href="#349">349</a>
-<a class="jxr_linenumber" name="350" href="#350">350</a> <strong
class="jxr_keyword">double</strong> prev = interpolator.getPreviousTime();
-<a class="jxr_linenumber" name="351" href="#351">351</a> <strong
class="jxr_keyword">double</strong> curr = interpolator.getCurrentTime();
-<a class="jxr_linenumber" name="352" href="#352">352</a> <strong
class="jxr_keyword">double</strong> interp = ((10 - a) * prev + a * curr) / 10;
-<a class="jxr_linenumber" name="353" href="#353">353</a>
interpolator.setInterpolatedTime(interp);
+<a class="jxr_linenumber" name="350" href="#350">350</a> };
+<a class="jxr_linenumber" name="351" href="#351">351</a>
+<a class="jxr_linenumber" name="352" href="#352">352</a> <a
href="../../../../../../org/apache/commons/math3/ode/nonstiff/DormandPrince853IntegratorTest.html">SchedulingChecker</a>
sinChecker = <strong class="jxr_keyword">new</strong> <a
href="../../../../../../org/apache/commons/math3/ode/nonstiff/DormandPrince853IntegratorTest.html">SchedulingChecker</a>(0);
<em class="jxr_comment">// events at 0, PI, 2PI ...</em>
+<a class="jxr_linenumber" name="353" href="#353">353</a> <a
href="../../../../../../org/apache/commons/math3/ode/nonstiff/DormandPrince853IntegratorTest.html">SchedulingChecker</a>
cosChecker = <strong class="jxr_keyword">new</strong> <a
href="../../../../../../org/apache/commons/math3/ode/nonstiff/DormandPrince853IntegratorTest.html">SchedulingChecker</a>(1);
<em class="jxr_comment">// events at PI/2, 3PI/2, 5PI/2 ...</em>
<a class="jxr_linenumber" name="354" href="#354">354</a>
-<a class="jxr_linenumber" name="355" href="#355">355</a> <strong
class="jxr_keyword">double</strong>[] interpolatedY =
interpolator.getInterpolatedState ();
-<a class="jxr_linenumber" name="356" href="#356">356</a> <strong
class="jxr_keyword">double</strong>[] theoreticalY =
pb.computeTheoreticalState(interpolator.getInterpolatedTime());
-<a class="jxr_linenumber" name="357" href="#357">357</a> <strong
class="jxr_keyword">double</strong> dx = interpolatedY[0] - theoreticalY[0];
-<a class="jxr_linenumber" name="358" href="#358">358</a> <strong
class="jxr_keyword">double</strong> dy = interpolatedY[1] - theoreticalY[1];
-<a class="jxr_linenumber" name="359" href="#359">359</a> <strong
class="jxr_keyword">double</strong> error = dx * dx + dy * dy;
-<a class="jxr_linenumber" name="360" href="#360">360</a> <strong
class="jxr_keyword">if</strong> (error > maxError) {
-<a class="jxr_linenumber" name="361" href="#361">361</a> maxError =
error;
-<a class="jxr_linenumber" name="362" href="#362">362</a> }
-<a class="jxr_linenumber" name="363" href="#363">363</a> }
-<a class="jxr_linenumber" name="364" href="#364">364</a> <strong
class="jxr_keyword">if</strong> (isLast) {
-<a class="jxr_linenumber" name="365" href="#365">365</a>
Assert.assertTrue(maxError < 2.4e-10);
-<a class="jxr_linenumber" name="366" href="#366">366</a>
Assert.assertTrue(nbSteps < 150);
-<a class="jxr_linenumber" name="367" href="#367">367</a> }
-<a class="jxr_linenumber" name="368" href="#368">368</a> }
-<a class="jxr_linenumber" name="369" href="#369">369</a> <strong
class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong>
nbSteps;
-<a class="jxr_linenumber" name="370" href="#370">370</a> <strong
class="jxr_keyword">private</strong> <strong
class="jxr_keyword">double</strong> maxError;
-<a class="jxr_linenumber" name="371" href="#371">371</a> <strong
class="jxr_keyword">private</strong> <a
href="../../../../../../org/apache/commons/math3/ode/TestProblem3.html">TestProblem3</a>
pb;
-<a class="jxr_linenumber" name="372" href="#372">372</a> }
+<a class="jxr_linenumber" name="355" href="#355">355</a>
FirstOrderIntegrator integ =
+<a class="jxr_linenumber" name="356" href="#356">356</a> <strong
class="jxr_keyword">new</strong> DormandPrince853Integrator(0.001, 1.0,
1.0e-12, 0.0);
+<a class="jxr_linenumber" name="357" href="#357">357</a>
integ.addEventHandler(sinChecker, 0.01, 1.0e-7, 100);
+<a class="jxr_linenumber" name="358" href="#358">358</a>
integ.addStepHandler(sinChecker);
+<a class="jxr_linenumber" name="359" href="#359">359</a>
integ.addEventHandler(cosChecker, 0.01, 1.0e-7, 100);
+<a class="jxr_linenumber" name="360" href="#360">360</a>
integ.addStepHandler(cosChecker);
+<a class="jxr_linenumber" name="361" href="#361">361</a> <strong
class="jxr_keyword">double</strong> t0 = 0.5;
+<a class="jxr_linenumber" name="362" href="#362">362</a> <strong
class="jxr_keyword">double</strong>[] y0 = <strong
class="jxr_keyword">new</strong> <strong class="jxr_keyword">double</strong>[]
{ FastMath.sin(t0), FastMath.cos(t0) };
+<a class="jxr_linenumber" name="363" href="#363">363</a> <strong
class="jxr_keyword">double</strong> t = 10.0;
+<a class="jxr_linenumber" name="364" href="#364">364</a> <strong
class="jxr_keyword">double</strong>[] y = <strong
class="jxr_keyword">new</strong> <strong class="jxr_keyword">double</strong>[2];
+<a class="jxr_linenumber" name="365" href="#365">365</a>
integ.integrate(sincos, t0, y0, t, y);
+<a class="jxr_linenumber" name="366" href="#366">366</a>
+<a class="jxr_linenumber" name="367" href="#367">367</a> }
+<a class="jxr_linenumber" name="368" href="#368">368</a>
+<a class="jxr_linenumber" name="369" href="#369">369</a> <strong
class="jxr_keyword">private</strong> <strong
class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong>
<a
href="../../../../../../org/apache/commons/math3/ode/nonstiff/DormandPrince853IntegratorTest.html">SchedulingChecker</a>
<strong class="jxr_keyword">implements</strong> StepHandler, EventHandler {
+<a class="jxr_linenumber" name="370" href="#370">370</a>
+<a class="jxr_linenumber" name="371" href="#371">371</a> <strong
class="jxr_keyword">int</strong> index;
+<a class="jxr_linenumber" name="372" href="#372">372</a> <strong
class="jxr_keyword">double</strong> tMin;
<a class="jxr_linenumber" name="373" href="#373">373</a>
-<a class="jxr_linenumber" name="374" href="#374">374</a> <strong
class="jxr_keyword">private</strong> <strong
class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong>
<a
href="../../../../../../org/apache/commons/math3/ode/nonstiff/DormandPrince853IntegratorTest.html">VariableHandler</a>
<strong class="jxr_keyword">implements</strong> StepHandler {
-<a class="jxr_linenumber" name="375" href="#375">375</a> <strong
class="jxr_keyword">public</strong> <a
href="../../../../../../org/apache/commons/math3/ode/nonstiff/DormandPrince853IntegratorTest.html">VariableHandler</a>()
{
-<a class="jxr_linenumber" name="376" href="#376">376</a> firstTime =
<strong class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="377" href="#377">377</a> minStep = 0;
-<a class="jxr_linenumber" name="378" href="#378">378</a> maxStep = 0;
-<a class="jxr_linenumber" name="379" href="#379">379</a> }
-<a class="jxr_linenumber" name="380" href="#380">380</a> <strong
class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong>
init(<strong class="jxr_keyword">double</strong> t0, <strong
class="jxr_keyword">double</strong>[] y0, <strong
class="jxr_keyword">double</strong> t) {
-<a class="jxr_linenumber" name="381" href="#381">381</a> firstTime =
<strong class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="382" href="#382">382</a> minStep = 0;
-<a class="jxr_linenumber" name="383" href="#383">383</a> maxStep = 0;
-<a class="jxr_linenumber" name="384" href="#384">384</a> }
-<a class="jxr_linenumber" name="385" href="#385">385</a> <strong
class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong>
handleStep(StepInterpolator interpolator,
-<a class="jxr_linenumber" name="386" href="#386">386</a>
<strong class="jxr_keyword">boolean</strong> isLast) {
-<a class="jxr_linenumber" name="387" href="#387">387</a>
-<a class="jxr_linenumber" name="388" href="#388">388</a> <strong
class="jxr_keyword">double</strong> step =
FastMath.abs(interpolator.getCurrentTime()
-<a class="jxr_linenumber" name="389" href="#389">389</a>
- interpolator.getPreviousTime());
-<a class="jxr_linenumber" name="390" href="#390">390</a> <strong
class="jxr_keyword">if</strong> (firstTime) {
-<a class="jxr_linenumber" name="391" href="#391">391</a> minStep =
FastMath.abs(step);
-<a class="jxr_linenumber" name="392" href="#392">392</a> maxStep =
minStep;
-<a class="jxr_linenumber" name="393" href="#393">393</a> firstTime =
false;
-<a class="jxr_linenumber" name="394" href="#394">394</a> } <strong
class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="395" href="#395">395</a> <strong
class="jxr_keyword">if</strong> (step < minStep) {
-<a class="jxr_linenumber" name="396" href="#396">396</a> minStep =
step;
-<a class="jxr_linenumber" name="397" href="#397">397</a> }
-<a class="jxr_linenumber" name="398" href="#398">398</a> <strong
class="jxr_keyword">if</strong> (step > maxStep) {
-<a class="jxr_linenumber" name="399" href="#399">399</a> maxStep =
step;
-<a class="jxr_linenumber" name="400" href="#400">400</a> }
-<a class="jxr_linenumber" name="401" href="#401">401</a> }
+<a class="jxr_linenumber" name="374" href="#374">374</a> <strong
class="jxr_keyword">public</strong> <a
href="../../../../../../org/apache/commons/math3/ode/nonstiff/DormandPrince853IntegratorTest.html">SchedulingChecker</a>(<strong
class="jxr_keyword">int</strong> index) {
+<a class="jxr_linenumber" name="375" href="#375">375</a> <strong
class="jxr_keyword">this</strong>.index = index;
+<a class="jxr_linenumber" name="376" href="#376">376</a> }
+<a class="jxr_linenumber" name="377" href="#377">377</a>
+<a class="jxr_linenumber" name="378" href="#378">378</a> <strong
class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong>
init(<strong class="jxr_keyword">double</strong> t0, <strong
class="jxr_keyword">double</strong>[] y0, <strong
class="jxr_keyword">double</strong> t) {
+<a class="jxr_linenumber" name="379" href="#379">379</a> tMin = t0;
+<a class="jxr_linenumber" name="380" href="#380">380</a> }
+<a class="jxr_linenumber" name="381" href="#381">381</a>
+<a class="jxr_linenumber" name="382" href="#382">382</a> <strong
class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong>
handleStep(StepInterpolator interpolator, <strong
class="jxr_keyword">boolean</strong> isLast) {
+<a class="jxr_linenumber" name="383" href="#383">383</a> tMin =
interpolator.getCurrentTime();
+<a class="jxr_linenumber" name="384" href="#384">384</a> }
+<a class="jxr_linenumber" name="385" href="#385">385</a>
+<a class="jxr_linenumber" name="386" href="#386">386</a> <strong
class="jxr_keyword">public</strong> <strong class="jxr_keyword">double</strong>
g(<strong class="jxr_keyword">double</strong> t, <strong
class="jxr_keyword">double</strong>[] y) {
+<a class="jxr_linenumber" name="387" href="#387">387</a> <em
class="jxr_comment">// once a step has been handled by handleStep,</em>
+<a class="jxr_linenumber" name="388" href="#388">388</a> <em
class="jxr_comment">// events checking should only refer to dates after the
step</em>
+<a class="jxr_linenumber" name="389" href="#389">389</a>
Assert.assertTrue(t >= tMin);
+<a class="jxr_linenumber" name="390" href="#390">390</a> <strong
class="jxr_keyword">return</strong> y[index];
+<a class="jxr_linenumber" name="391" href="#391">391</a> }
+<a class="jxr_linenumber" name="392" href="#392">392</a>
+<a class="jxr_linenumber" name="393" href="#393">393</a> <strong
class="jxr_keyword">public</strong> Action eventOccurred(<strong
class="jxr_keyword">double</strong> t, <strong
class="jxr_keyword">double</strong>[] y, <strong
class="jxr_keyword">boolean</strong> increasing) {
+<a class="jxr_linenumber" name="394" href="#394">394</a> <strong
class="jxr_keyword">return</strong> Action.RESET_STATE;
+<a class="jxr_linenumber" name="395" href="#395">395</a> }
+<a class="jxr_linenumber" name="396" href="#396">396</a>
+<a class="jxr_linenumber" name="397" href="#397">397</a> <strong
class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong>
resetState(<strong class="jxr_keyword">double</strong> t, <strong
class="jxr_keyword">double</strong>[] y) {
+<a class="jxr_linenumber" name="398" href="#398">398</a> <em
class="jxr_comment">// in fact, we don't need to reset anything for the
test</em>
+<a class="jxr_linenumber" name="399" href="#399">399</a> }
+<a class="jxr_linenumber" name="400" href="#400">400</a>
+<a class="jxr_linenumber" name="401" href="#401">401</a> }
<a class="jxr_linenumber" name="402" href="#402">402</a>
-<a class="jxr_linenumber" name="403" href="#403">403</a> <strong
class="jxr_keyword">if</strong> (isLast) {
-<a class="jxr_linenumber" name="404" href="#404">404</a>
Assert.assertTrue(minStep < (1.0 / 100.0));
-<a class="jxr_linenumber" name="405" href="#405">405</a>
Assert.assertTrue(maxStep > (1.0 / 2.0));
-<a class="jxr_linenumber" name="406" href="#406">406</a> }
-<a class="jxr_linenumber" name="407" href="#407">407</a> }
-<a class="jxr_linenumber" name="408" href="#408">408</a> <strong
class="jxr_keyword">private</strong> <strong
class="jxr_keyword">boolean</strong> firstTime = <strong
class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="409" href="#409">409</a> <strong
class="jxr_keyword">private</strong> <strong
class="jxr_keyword">double</strong> minStep = 0;
-<a class="jxr_linenumber" name="410" href="#410">410</a> <strong
class="jxr_keyword">private</strong> <strong
class="jxr_keyword">double</strong> maxStep = 0;
-<a class="jxr_linenumber" name="411" href="#411">411</a> }
-<a class="jxr_linenumber" name="412" href="#412">412</a>
-<a class="jxr_linenumber" name="413" href="#413">413</a> }
+<a class="jxr_linenumber" name="403" href="#403">403</a> <strong
class="jxr_keyword">private</strong> <strong
class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong>
<a
href="../../../../../../org/apache/commons/math3/ode/nonstiff/DormandPrince853IntegratorTest.html">KeplerHandler</a>
<strong class="jxr_keyword">implements</strong> StepHandler {
+<a class="jxr_linenumber" name="404" href="#404">404</a> <strong
class="jxr_keyword">public</strong> <a
href="../../../../../../org/apache/commons/math3/ode/nonstiff/DormandPrince853IntegratorTest.html">KeplerHandler</a>(<a
href="../../../../../../org/apache/commons/math3/ode/TestProblem3.html">TestProblem3</a>
pb) {
+<a class="jxr_linenumber" name="405" href="#405">405</a> <strong
class="jxr_keyword">this</strong>.pb = pb;
+<a class="jxr_linenumber" name="406" href="#406">406</a> }
+<a class="jxr_linenumber" name="407" href="#407">407</a> <strong
class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong>
init(<strong class="jxr_keyword">double</strong> t0, <strong
class="jxr_keyword">double</strong>[] y0, <strong
class="jxr_keyword">double</strong> t) {
+<a class="jxr_linenumber" name="408" href="#408">408</a> nbSteps = 0;
+<a class="jxr_linenumber" name="409" href="#409">409</a> maxError = 0;
+<a class="jxr_linenumber" name="410" href="#410">410</a> }
+<a class="jxr_linenumber" name="411" href="#411">411</a> <strong
class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong>
handleStep(StepInterpolator interpolator, <strong
class="jxr_keyword">boolean</strong> isLast)
+<a class="jxr_linenumber" name="412" href="#412">412</a> <strong
class="jxr_keyword">throws</strong> MaxCountExceededException {
+<a class="jxr_linenumber" name="413" href="#413">413</a>
+<a class="jxr_linenumber" name="414" href="#414">414</a> ++nbSteps;
+<a class="jxr_linenumber" name="415" href="#415">415</a> <strong
class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> a =
1; a < 10; ++a) {
+<a class="jxr_linenumber" name="416" href="#416">416</a>
+<a class="jxr_linenumber" name="417" href="#417">417</a> <strong
class="jxr_keyword">double</strong> prev = interpolator.getPreviousTime();
+<a class="jxr_linenumber" name="418" href="#418">418</a> <strong
class="jxr_keyword">double</strong> curr = interpolator.getCurrentTime();
+<a class="jxr_linenumber" name="419" href="#419">419</a> <strong
class="jxr_keyword">double</strong> interp = ((10 - a) * prev + a * curr) / 10;
+<a class="jxr_linenumber" name="420" href="#420">420</a>
interpolator.setInterpolatedTime(interp);
+<a class="jxr_linenumber" name="421" href="#421">421</a>
+<a class="jxr_linenumber" name="422" href="#422">422</a> <strong
class="jxr_keyword">double</strong>[] interpolatedY =
interpolator.getInterpolatedState ();
+<a class="jxr_linenumber" name="423" href="#423">423</a> <strong
class="jxr_keyword">double</strong>[] theoreticalY =
pb.computeTheoreticalState(interpolator.getInterpolatedTime());
+<a class="jxr_linenumber" name="424" href="#424">424</a> <strong
class="jxr_keyword">double</strong> dx = interpolatedY[0] - theoreticalY[0];
+<a class="jxr_linenumber" name="425" href="#425">425</a> <strong
class="jxr_keyword">double</strong> dy = interpolatedY[1] - theoreticalY[1];
+<a class="jxr_linenumber" name="426" href="#426">426</a> <strong
class="jxr_keyword">double</strong> error = dx * dx + dy * dy;
+<a class="jxr_linenumber" name="427" href="#427">427</a> <strong
class="jxr_keyword">if</strong> (error > maxError) {
+<a class="jxr_linenumber" name="428" href="#428">428</a> maxError =
error;
+<a class="jxr_linenumber" name="429" href="#429">429</a> }
+<a class="jxr_linenumber" name="430" href="#430">430</a> }
+<a class="jxr_linenumber" name="431" href="#431">431</a> <strong
class="jxr_keyword">if</strong> (isLast) {
+<a class="jxr_linenumber" name="432" href="#432">432</a>
Assert.assertTrue(maxError < 2.4e-10);
+<a class="jxr_linenumber" name="433" href="#433">433</a>
Assert.assertTrue(nbSteps < 150);
+<a class="jxr_linenumber" name="434" href="#434">434</a> }
+<a class="jxr_linenumber" name="435" href="#435">435</a> }
+<a class="jxr_linenumber" name="436" href="#436">436</a> <strong
class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong>
nbSteps;
+<a class="jxr_linenumber" name="437" href="#437">437</a> <strong
class="jxr_keyword">private</strong> <strong
class="jxr_keyword">double</strong> maxError;
+<a class="jxr_linenumber" name="438" href="#438">438</a> <strong
class="jxr_keyword">private</strong> <a
href="../../../../../../org/apache/commons/math3/ode/TestProblem3.html">TestProblem3</a>
pb;
+<a class="jxr_linenumber" name="439" href="#439">439</a> }
+<a class="jxr_linenumber" name="440" href="#440">440</a>
+<a class="jxr_linenumber" name="441" href="#441">441</a> <strong
class="jxr_keyword">private</strong> <strong
class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong>
<a
href="../../../../../../org/apache/commons/math3/ode/nonstiff/DormandPrince853IntegratorTest.html">VariableHandler</a>
<strong class="jxr_keyword">implements</strong> StepHandler {
+<a class="jxr_linenumber" name="442" href="#442">442</a> <strong
class="jxr_keyword">public</strong> <a
href="../../../../../../org/apache/commons/math3/ode/nonstiff/DormandPrince853IntegratorTest.html">VariableHandler</a>()
{
+<a class="jxr_linenumber" name="443" href="#443">443</a> firstTime =
<strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="444" href="#444">444</a> minStep = 0;
+<a class="jxr_linenumber" name="445" href="#445">445</a> maxStep = 0;
+<a class="jxr_linenumber" name="446" href="#446">446</a> }
+<a class="jxr_linenumber" name="447" href="#447">447</a> <strong
class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong>
init(<strong class="jxr_keyword">double</strong> t0, <strong
class="jxr_keyword">double</strong>[] y0, <strong
class="jxr_keyword">double</strong> t) {
+<a class="jxr_linenumber" name="448" href="#448">448</a> firstTime =
<strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="449" href="#449">449</a> minStep = 0;
+<a class="jxr_linenumber" name="450" href="#450">450</a> maxStep = 0;
+<a class="jxr_linenumber" name="451" href="#451">451</a> }
+<a class="jxr_linenumber" name="452" href="#452">452</a> <strong
class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong>
handleStep(StepInterpolator interpolator,
+<a class="jxr_linenumber" name="453" href="#453">453</a>
<strong class="jxr_keyword">boolean</strong> isLast) {
+<a class="jxr_linenumber" name="454" href="#454">454</a>
+<a class="jxr_linenumber" name="455" href="#455">455</a> <strong
class="jxr_keyword">double</strong> step =
FastMath.abs(interpolator.getCurrentTime()
+<a class="jxr_linenumber" name="456" href="#456">456</a>
- interpolator.getPreviousTime());
+<a class="jxr_linenumber" name="457" href="#457">457</a> <strong
class="jxr_keyword">if</strong> (firstTime) {
+<a class="jxr_linenumber" name="458" href="#458">458</a> minStep =
FastMath.abs(step);
+<a class="jxr_linenumber" name="459" href="#459">459</a> maxStep =
minStep;
+<a class="jxr_linenumber" name="460" href="#460">460</a> firstTime =
false;
+<a class="jxr_linenumber" name="461" href="#461">461</a> } <strong
class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="462" href="#462">462</a> <strong
class="jxr_keyword">if</strong> (step < minStep) {
+<a class="jxr_linenumber" name="463" href="#463">463</a> minStep =
step;
+<a class="jxr_linenumber" name="464" href="#464">464</a> }
+<a class="jxr_linenumber" name="465" href="#465">465</a> <strong
class="jxr_keyword">if</strong> (step > maxStep) {
+<a class="jxr_linenumber" name="466" href="#466">466</a> maxStep =
step;
+<a class="jxr_linenumber" name="467" href="#467">467</a> }
+<a class="jxr_linenumber" name="468" href="#468">468</a> }
+<a class="jxr_linenumber" name="469" href="#469">469</a>
+<a class="jxr_linenumber" name="470" href="#470">470</a> <strong
class="jxr_keyword">if</strong> (isLast) {
+<a class="jxr_linenumber" name="471" href="#471">471</a>
Assert.assertTrue(minStep < (1.0 / 100.0));
+<a class="jxr_linenumber" name="472" href="#472">472</a>
Assert.assertTrue(maxStep > (1.0 / 2.0));
+<a class="jxr_linenumber" name="473" href="#473">473</a> }
+<a class="jxr_linenumber" name="474" href="#474">474</a> }
+<a class="jxr_linenumber" name="475" href="#475">475</a> <strong
class="jxr_keyword">private</strong> <strong
class="jxr_keyword">boolean</strong> firstTime = <strong
class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="476" href="#476">476</a> <strong
class="jxr_keyword">private</strong> <strong
class="jxr_keyword">double</strong> minStep = 0;
+<a class="jxr_linenumber" name="477" href="#477">477</a> <strong
class="jxr_keyword">private</strong> <strong
class="jxr_keyword">double</strong> maxStep = 0;
+<a class="jxr_linenumber" name="478" href="#478">478</a> }
+<a class="jxr_linenumber" name="479" href="#479">479</a>
+<a class="jxr_linenumber" name="480" href="#480">480</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a
href="http://maven.apache.org/">Maven</a></div></body>
</html>
Modified:
websites/production/commons/content/proper/commons-math/xref-test/org/apache/commons/math3/ode/nonstiff/ThreeEighthesIntegratorTest.html
==============================================================================
---
websites/production/commons/content/proper/commons-math/xref-test/org/apache/commons/math3/ode/nonstiff/ThreeEighthesIntegratorTest.html
(original)
+++
websites/production/commons/content/proper/commons-math/xref-test/org/apache/commons/math3/ode/nonstiff/ThreeEighthesIntegratorTest.html
Sun Apr 7 07:52:05 2013
@@ -177,15 +177,15 @@
<a class="jxr_linenumber" name="167" href="#167">167</a> <strong
class="jxr_keyword">double</strong> step = (pb.getFinalTime() -
pb.getInitialTime()) * 0.0003;
<a class="jxr_linenumber" name="168" href="#168">168</a>
<a class="jxr_linenumber" name="169" href="#169">169</a>
FirstOrderIntegrator integ = <strong class="jxr_keyword">new</strong>
ThreeEighthesIntegrator(step);
-<a class="jxr_linenumber" name="170" href="#170">170</a>
integ.addStepHandler(<strong class="jxr_keyword">new</strong> <a
href="../../../../../../org/apache/commons/math3/ode/nonstiff/ThreeEighthesIntegratorTest.html">KeplerHandler</a>(pb));
+<a class="jxr_linenumber" name="170" href="#170">170</a>
integ.addStepHandler(<strong class="jxr_keyword">new</strong> <a
href="../../../../../../org/apache/commons/math3/ode/nonstiff/DormandPrince853IntegratorTest.html">KeplerHandler</a>(pb));
<a class="jxr_linenumber" name="171" href="#171">171</a>
integ.integrate(pb,
<a class="jxr_linenumber" name="172" href="#172">172</a>
pb.getInitialTime(), pb.getInitialState(),
<a class="jxr_linenumber" name="173" href="#173">173</a>
pb.getFinalTime(), <strong class="jxr_keyword">new</strong> <strong
class="jxr_keyword">double</strong>[pb.getDimension()]);
<a class="jxr_linenumber" name="174" href="#174">174</a> }
<a class="jxr_linenumber" name="175" href="#175">175</a>
-<a class="jxr_linenumber" name="176" href="#176">176</a> <strong
class="jxr_keyword">private</strong> <strong
class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong>
<a
href="../../../../../../org/apache/commons/math3/ode/nonstiff/ThreeEighthesIntegratorTest.html">KeplerHandler</a>
<strong class="jxr_keyword">implements</strong> StepHandler {
+<a class="jxr_linenumber" name="176" href="#176">176</a> <strong
class="jxr_keyword">private</strong> <strong
class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong>
<a
href="../../../../../../org/apache/commons/math3/ode/nonstiff/DormandPrince853IntegratorTest.html">KeplerHandler</a>
<strong class="jxr_keyword">implements</strong> StepHandler {
<a class="jxr_linenumber" name="177" href="#177">177</a>
-<a class="jxr_linenumber" name="178" href="#178">178</a> <strong
class="jxr_keyword">public</strong> <a
href="../../../../../../org/apache/commons/math3/ode/nonstiff/ThreeEighthesIntegratorTest.html">KeplerHandler</a>(<a
href="../../../../../../org/apache/commons/math3/ode/TestProblem3.html">TestProblem3</a>
pb) {
+<a class="jxr_linenumber" name="178" href="#178">178</a> <strong
class="jxr_keyword">public</strong> <a
href="../../../../../../org/apache/commons/math3/ode/nonstiff/DormandPrince853IntegratorTest.html">KeplerHandler</a>(<a
href="../../../../../../org/apache/commons/math3/ode/TestProblem3.html">TestProblem3</a>
pb) {
<a class="jxr_linenumber" name="179" href="#179">179</a> <strong
class="jxr_keyword">this</strong>.pb = pb;
<a class="jxr_linenumber" name="180" href="#180">180</a> maxError = 0;
<a class="jxr_linenumber" name="181" href="#181">181</a> }
Modified:
websites/production/commons/content/proper/commons-math/xref-test/org/apache/commons/math3/ode/nonstiff/package-frame.html
==============================================================================
---
websites/production/commons/content/proper/commons-math/xref-test/org/apache/commons/math3/ode/nonstiff/package-frame.html
(original)
+++
websites/production/commons/content/proper/commons-math/xref-test/org/apache/commons/math3/ode/nonstiff/package-frame.html
Sun Apr 7 07:52:05 2013
@@ -3,7 +3,7 @@
<html xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html;
charset=UTF-8" />
- <title>Commons Math 3.1.1 Reference Package
org.apache.commons.math3.ode.nonstiff</title>
+ <title>Commons Math 3.2 Reference Package
org.apache.commons.math3.ode.nonstiff</title>
<link rel="stylesheet" type="text/css"
href="../../../../../../stylesheet.css" title="style" />
</head>
<body>
@@ -70,7 +70,7 @@
<a href="HighamHall54StepInterpolatorTest.html"
target="classFrame">HighamHall54StepInterpolatorTest</a>
</li>
<li>
- <a href="ThreeEighthesIntegratorTest.html"
target="classFrame">KeplerHandler</a>
+ <a href="DormandPrince853IntegratorTest.html"
target="classFrame">KeplerHandler</a>
</li>
<li>
<a href="GraggBulirschStoerIntegratorTest.html"
target="classFrame">KeplerStepHandler</a>
@@ -85,6 +85,9 @@
<a href="MidpointStepInterpolatorTest.html"
target="classFrame">MidpointStepInterpolatorTest</a>
</li>
<li>
+ <a href="DormandPrince853IntegratorTest.html"
target="classFrame">SchedulingChecker</a>
+ </li>
+ <li>
<a href="StepProblem.html" target="classFrame">StepProblem</a>
</li>
<li>
Modified:
websites/production/commons/content/proper/commons-math/xref-test/org/apache/commons/math3/ode/nonstiff/package-summary.html
==============================================================================
---
websites/production/commons/content/proper/commons-math/xref-test/org/apache/commons/math3/ode/nonstiff/package-summary.html
(original)
+++
websites/production/commons/content/proper/commons-math/xref-test/org/apache/commons/math3/ode/nonstiff/package-summary.html
Sun Apr 7 07:52:05 2013
@@ -3,7 +3,7 @@
<html xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html;
charset=UTF-8" />
- <title>Commons Math 3.1.1 Reference Package
org.apache.commons.math3.ode.nonstiff</title>
+ <title>Commons Math 3.2 Reference Package
org.apache.commons.math3.ode.nonstiff</title>
<link rel="stylesheet" type="text/css"
href="../../../../../../stylesheet.css" title="style" />
</head>
<body>
@@ -127,7 +127,7 @@
</tr>
<tr>
<td>
- <a href="ThreeEighthesIntegratorTest.html"
target="classFrame">KeplerHandler</a>
+ <a href="DormandPrince853IntegratorTest.html"
target="classFrame">KeplerHandler</a>
</td>
</tr>
<tr>
@@ -152,6 +152,11 @@
</tr>
<tr>
<td>
+ <a href="DormandPrince853IntegratorTest.html"
target="classFrame">SchedulingChecker</a>
+ </td>
+ </tr>
+ <tr>
+ <td>
<a href="StepProblem.html"
target="classFrame">StepProblem</a>
</td>
</tr>
Modified:
websites/production/commons/content/proper/commons-math/xref-test/org/apache/commons/math3/ode/package-frame.html
==============================================================================
---
websites/production/commons/content/proper/commons-math/xref-test/org/apache/commons/math3/ode/package-frame.html
(original)
+++
websites/production/commons/content/proper/commons-math/xref-test/org/apache/commons/math3/ode/package-frame.html
Sun Apr 7 07:52:05 2013
@@ -3,7 +3,7 @@
<html xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html;
charset=UTF-8" />
- <title>Commons Math 3.1.1 Reference Package
org.apache.commons.math3.ode</title>
+ <title>Commons Math 3.2 Reference Package
org.apache.commons.math3.ode</title>
<link rel="stylesheet" type="text/css"
href="../../../../../stylesheet.css" title="style" />
</head>
<body>
Modified:
websites/production/commons/content/proper/commons-math/xref-test/org/apache/commons/math3/ode/package-summary.html
==============================================================================
---
websites/production/commons/content/proper/commons-math/xref-test/org/apache/commons/math3/ode/package-summary.html
(original)
+++
websites/production/commons/content/proper/commons-math/xref-test/org/apache/commons/math3/ode/package-summary.html
Sun Apr 7 07:52:05 2013
@@ -3,7 +3,7 @@
<html xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html;
charset=UTF-8" />
- <title>Commons Math 3.1.1 Reference Package
org.apache.commons.math3.ode</title>
+ <title>Commons Math 3.2 Reference Package
org.apache.commons.math3.ode</title>
<link rel="stylesheet" type="text/css"
href="../../../../../stylesheet.css" title="style" />
</head>
<body>
Modified:
websites/production/commons/content/proper/commons-math/xref-test/org/apache/commons/math3/ode/sampling/package-frame.html
==============================================================================
---
websites/production/commons/content/proper/commons-math/xref-test/org/apache/commons/math3/ode/sampling/package-frame.html
(original)
+++
websites/production/commons/content/proper/commons-math/xref-test/org/apache/commons/math3/ode/sampling/package-frame.html
Sun Apr 7 07:52:05 2013
@@ -3,7 +3,7 @@
<html xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html;
charset=UTF-8" />
- <title>Commons Math 3.1.1 Reference Package
org.apache.commons.math3.ode.sampling</title>
+ <title>Commons Math 3.2 Reference Package
org.apache.commons.math3.ode.sampling</title>
<link rel="stylesheet" type="text/css"
href="../../../../../../stylesheet.css" title="style" />
</head>
<body>
Modified:
websites/production/commons/content/proper/commons-math/xref-test/org/apache/commons/math3/ode/sampling/package-summary.html
==============================================================================
---
websites/production/commons/content/proper/commons-math/xref-test/org/apache/commons/math3/ode/sampling/package-summary.html
(original)
+++
websites/production/commons/content/proper/commons-math/xref-test/org/apache/commons/math3/ode/sampling/package-summary.html
Sun Apr 7 07:52:05 2013
@@ -3,7 +3,7 @@
<html xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html;
charset=UTF-8" />
- <title>Commons Math 3.1.1 Reference Package
org.apache.commons.math3.ode.sampling</title>
+ <title>Commons Math 3.2 Reference Package
org.apache.commons.math3.ode.sampling</title>
<link rel="stylesheet" type="text/css"
href="../../../../../../stylesheet.css" title="style" />
</head>
<body>