<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>org.apache.commons.math3.ode (Apache Commons Math 3.3 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="org.apache.commons.math3.ode (Apache Commons Math 3.3 API)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/commons/math3/ml/neuralnet/twod/package-summary.html">Prev Package</a></li>
<li><a href="../../../../../org/apache/commons/math3/ode/events/package-summary.html">Next Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/commons/math3/ode/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Package" class="title">Package&nbsp;org.apache.commons.math3.ode</h1>
<div class="docSummary">
<div class="block">
 This package provides classes to solve Ordinary Differential Equations problems.</div>
</div>
<p>See:&nbsp;<a href="#package_description">Description</a></p>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/ode/FirstOrderDifferentialEquations.html" title="interface in org.apache.commons.math3.ode">FirstOrderDifferentialEquations</a></td>
<td class="colLast">
<div class="block">This interface represents a first order differential equations set.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/ode/FirstOrderIntegrator.html" title="interface in org.apache.commons.math3.ode">FirstOrderIntegrator</a></td>
<td class="colLast">
<div class="block">This interface represents a first order integrator for
 differential equations.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/ode/MainStateJacobianProvider.html" title="interface in org.apache.commons.math3.ode">MainStateJacobianProvider</a></td>
<td class="colLast">
<div class="block">Interface expanding <a href="../../../../../org/apache/commons/math3/ode/FirstOrderDifferentialEquations.html" title="interface in org.apache.commons.math3.ode"><code>first order
  differential equations</code></a> in order to compute exactly the main state jacobian
  matrix for <a href="../../../../../org/apache/commons/math3/ode/JacobianMatrices.html" title="class in org.apache.commons.math3.ode"><code>partial derivatives equations</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/ode/MultistepIntegrator.NordsieckTransformer.html" title="interface in org.apache.commons.math3.ode">MultistepIntegrator.NordsieckTransformer</a></td>
<td class="colLast">
<div class="block">Transformer used to convert the first step to Nordsieck representation.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/ode/ODEIntegrator.html" title="interface in org.apache.commons.math3.ode">ODEIntegrator</a></td>
<td class="colLast">
<div class="block">This interface defines the common parts shared by integrators
 for first and second order differential equations.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/ode/Parameterizable.html" title="interface in org.apache.commons.math3.ode">Parameterizable</a></td>
<td class="colLast">
<div class="block">This interface enables to process any parameterizable object.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/ode/ParameterizedODE.html" title="interface in org.apache.commons.math3.ode">ParameterizedODE</a></td>
<td class="colLast">
<div class="block">Interface to compute by finite difference Jacobian matrix for some parameter
  when computing <a href="../../../../../org/apache/commons/math3/ode/JacobianMatrices.html" title="class in org.apache.commons.math3.ode"><code>partial derivatives equations</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/ode/ParameterJacobianProvider.html" title="interface in org.apache.commons.math3.ode">ParameterJacobianProvider</a></td>
<td class="colLast">
<div class="block">Interface to compute exactly Jacobian matrix for some parameter
  when computing <a href="../../../../../org/apache/commons/math3/ode/JacobianMatrices.html" title="class in org.apache.commons.math3.ode"><code>partial derivatives equations</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/ode/SecondaryEquations.html" title="interface in org.apache.commons.math3.ode">SecondaryEquations</a></td>
<td class="colLast">
<div class="block">This interface allows users to add secondary differential equations to a primary
 set of differential equations.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/ode/SecondOrderDifferentialEquations.html" title="interface in org.apache.commons.math3.ode">SecondOrderDifferentialEquations</a></td>
<td class="colLast">
<div class="block">This interface represents a second order differential equations set.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/ode/SecondOrderIntegrator.html" title="interface in org.apache.commons.math3.ode">SecondOrderIntegrator</a></td>
<td class="colLast">
<div class="block">This interface represents a second order integrator for
 differential equations.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html" title="class in org.apache.commons.math3.ode">AbstractIntegrator</a></td>
<td class="colLast">
<div class="block">Base class managing common boilerplate for all integrators.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/ode/AbstractParameterizable.html" title="class in org.apache.commons.math3.ode">AbstractParameterizable</a></td>
<td class="colLast">
<div class="block">This abstract class provides boilerplate parameters list.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/ode/ContinuousOutputModel.html" title="class in org.apache.commons.math3.ode">ContinuousOutputModel</a></td>
<td class="colLast">
<div class="block">This class stores all information provided by an ODE integrator
 during the integration process and build a continuous model of the
 solution from this.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/ode/EquationsMapper.html" title="class in org.apache.commons.math3.ode">EquationsMapper</a></td>
<td class="colLast">
<div class="block">Class mapping the part of a complete state or derivative that pertains
 to a specific differential equation.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/ode/ExpandableStatefulODE.html" title="class in org.apache.commons.math3.ode">ExpandableStatefulODE</a></td>
<td class="colLast">
<div class="block">This class represents a combined set of first order differential equations,
 with at least a primary set of equations expandable by some sets of secondary
 equations.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/ode/FirstOrderConverter.html" title="class in org.apache.commons.math3.ode">FirstOrderConverter</a></td>
<td class="colLast">
<div class="block">This class converts second order differential equations to first
 order ones.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/ode/JacobianMatrices.html" title="class in org.apache.commons.math3.ode">JacobianMatrices</a></td>
<td class="colLast">
<div class="block">This class defines a set of <a href="../../../../../org/apache/commons/math3/ode/SecondaryEquations.html" title="interface in org.apache.commons.math3.ode"><code>secondary equations</code></a> to
 compute the Jacobian matrices with respect to the initial state vector and, if
 any, to some parameters of the primary ODE set.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/ode/MultistepIntegrator.html" title="class in org.apache.commons.math3.ode">MultistepIntegrator</a></td>
<td class="colLast">
<div class="block">This class is the base class for multistep integrators for Ordinary
 Differential Equations.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="packageSummary" border="0" cellpadding="3" cellspacing="0" summary="Exception Summary table, listing exceptions, and an explanation">
<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Exception</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/ode/JacobianMatrices.MismatchedEquations.html" title="class in org.apache.commons.math3.ode">JacobianMatrices.MismatchedEquations</a></td>
<td class="colLast">
<div class="block">Special exception for equations mismatch.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/commons/math3/ode/UnknownParameterException.html" title="class in org.apache.commons.math3.ode">UnknownParameterException</a></td>
<td class="colLast">
<div class="block">Exception to be thrown when a parameter is unknown.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="package_description">
<!--   -->
</a>
<h2 title="Package org.apache.commons.math3.ode Description">Package org.apache.commons.math3.ode Description</h2>
<div class="block"><p>
 This package provides classes to solve Ordinary Differential Equations problems.
 </p>

 <p>
 This package solves Initial Value Problems of the form
 <code>y'=f(t,y)</code> with <code>t<sub>0</sub></code> and
 <code>y(t<sub>0</sub>)=y<sub>0</sub></code> known. The provided
 integrators compute an estimate of <code>y(t)</code> from
 <code>t=t<sub>0</sub></code> to <code>t=t<sub>1</sub></code>.
 It is also possible to get thederivatives with respect to the initial state
 <code>dy(t)/dy(t<sub>0</sub>)</code> or the derivatives with
 respect to some ODE parameters <code>dy(t)/dp</code>.
 </p>

 <p>
 All integrators provide dense output. This means that besides
 computing the state vector at discrete times, they also provide a
 cheap mean to get the state between the time steps. They do so through
 classes extending the <a href="../../../../../org/apache/commons/math3/ode/sampling/StepInterpolator.html" title="interface in org.apache.commons.math3.ode.sampling"><code>StepInterpolator</code></a>
 abstract class, which are made available to the user at the end of
 each step.
 </p>

 <p>
 All integrators handle multiple discrete events detection based on switching
 functions. This means that the integrator can be driven by user specified
 discrete events. The steps are shortened as needed to ensure the events occur
 at step boundaries (even if the integrator is a fixed-step
 integrator). When the events are triggered, integration can be stopped
 (this is called a G-stop facility), the state vector can be changed,
 or integration can simply go on. The latter case is useful to handle
 discontinuities in the differential equations gracefully and get
 accurate dense output even close to the discontinuity.
 </p>

 <p>
 The user should describe his problem in his own classes
 (<code>UserProblem</code> in the diagram below) which should implement
 the <a href="../../../../../org/apache/commons/math3/ode/FirstOrderDifferentialEquations.html" title="interface in org.apache.commons.math3.ode"><code>FirstOrderDifferentialEquations</code></a> interface. Then he should pass it to
 the integrator he prefers among all the classes that implement the
 <a href="../../../../../org/apache/commons/math3/ode/FirstOrderIntegrator.html" title="interface in org.apache.commons.math3.ode"><code>FirstOrderIntegrator</code></a> interface.
 </p>

 <p>
 The solution of the integration problem is provided by two means. The
 first one is aimed towards simple use: the state vector at the end of
 the integration process is copied in the <code>y</code> array of the
 <a href="../../../../../org/apache/commons/math3/ode/FirstOrderIntegrator.html#integrate(org.apache.commons.math3.ode.FirstOrderDifferentialEquations, double, double[], double, double[])"><code>FirstOrderIntegrator.integrate</code></a> method. The second one should be used
 when more in-depth information is needed throughout the integration
 process. The user can register an object implementing the <a href="../../../../../org/apache/commons/math3/ode/sampling/StepHandler.html" title="interface in org.apache.commons.math3.ode.sampling"><code>StepHandler</code></a> interface or a
 <a href="../../../../../org/apache/commons/math3/ode/sampling/StepNormalizer.html" title="class in org.apache.commons.math3.ode.sampling"><code>StepNormalizer</code></a>
 object wrapping a user-specified object implementing the <a href="../../../../../org/apache/commons/math3/ode/sampling/FixedStepHandler.html" title="interface in org.apache.commons.math3.ode.sampling"><code>FixedStepHandler</code></a>
 interface into the integrator before calling the <a href="../../../../../org/apache/commons/math3/ode/FirstOrderIntegrator.html#integrate(org.apache.commons.math3.ode.FirstOrderDifferentialEquations, double, double[], double, double[])"><code>FirstOrderIntegrator.integrate</code></a> method. The user object will be called
 appropriately during the integration process, allowing the user to
 process intermediate results. The default step handler does nothing.
 </p>

 <p>
 <a href="../../../../../org/apache/commons/math3/ode/ContinuousOutputModel.html" title="class in org.apache.commons.math3.ode"><code>ContinuousOutputModel</code></a> is a special-purpose step handler that is able
 to store all steps and to provide transparent access to any
 intermediate result once the integration is over. An important feature
 of this class is that it implements the <code>Serializable</code>
 interface. This means that a complete continuous model of the
 integrated function throughout the integration range can be serialized
 and reused later (if stored into a persistent medium like a filesystem
 or a database) or elsewhere (if sent to another application). Only the
 result of the integration is stored, there is no reference to the
 integrated problem by itself.
 </p>

 <p>
 Other default implementations of the <a href="../../../../../org/apache/commons/math3/ode/sampling/StepHandler.html" title="interface in org.apache.commons.math3.ode.sampling"><code>StepHandler</code></a> interface are
 available for general needs (<a href="../../../../../org/apache/commons/math3/ode/sampling/DummyStepHandler.html" title="class in org.apache.commons.math3.ode.sampling"><code>DummyStepHandler</code></a>, <a href="../../../../../org/apache/commons/math3/ode/sampling/StepNormalizer.html" title="class in org.apache.commons.math3.ode.sampling"><code>StepNormalizer</code></a>) and custom
 implementations can be developed for specific needs. As an example,
 if an application is to be completely driven by the integration
 process, then most of the application code will be run inside a step
 handler specific to this application.
 </p>

 <p>
 Some integrators (the simple ones) use fixed steps that are set at
 creation time. The more efficient integrators use variable steps that
 are handled internally in order to control the integration error with
 respect to a specified accuracy (these integrators extend the <a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><code>AdaptiveStepsizeIntegrator</code></a> abstract class). In this case, the step
 handler which is called after each successful step shows up the
 variable stepsize. The <a href="../../../../../org/apache/commons/math3/ode/sampling/StepNormalizer.html" title="class in org.apache.commons.math3.ode.sampling"><code>StepNormalizer</code></a> class can
 be used to convert the variable stepsize into a fixed stepsize that
 can be handled by classes implementing the <a href="../../../../../org/apache/commons/math3/ode/sampling/FixedStepHandler.html" title="interface in org.apache.commons.math3.ode.sampling"><code>FixedStepHandler</code></a>
 interface. Adaptive stepsize integrators can automatically compute the
 initial stepsize by themselves, however the user can specify it if he
 prefers to retain full control over the integration or if the
 automatic guess is wrong.
 </p>

 <p>
 <table border="1" align="center">
 <tr BGCOLOR="#CCCCFF"><td colspan=2><font size="+2">Fixed Step Integrators</font></td></tr>
 <tr BGCOLOR="#EEEEFF"><font size="+1"><td>Name</td><td>Order</td></font></tr>
 <tr><td><a href="../../../../../org/apache/commons/math3/ode/nonstiff/EulerIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><code>Euler</code></a></td><td>1</td></tr>
 <tr><td><a href="../../../../../org/apache/commons/math3/ode/nonstiff/MidpointIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><code>Midpoint</code></a></td><td>2</td></tr>
 <tr><td><a href="../../../../../org/apache/commons/math3/ode/nonstiff/ClassicalRungeKuttaIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><code>Classical Runge-Kutta</code></a></td><td>4</td></tr>
 <tr><td><a href="../../../../../org/apache/commons/math3/ode/nonstiff/GillIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><code>Gill</code></a></td><td>4</td></tr>
 <tr><td><a href="../../../../../org/apache/commons/math3/ode/nonstiff/ThreeEighthesIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><code>3/8</code></a></td><td>4</td></tr>
 <tr><td><a href="../../../../../org/apache/commons/math3/ode/nonstiff/LutherIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><code>Luther</code></a></td><td>6</td></tr>
 </table>
 </p>

 <table border="1" align="center">
 <tr BGCOLOR="#CCCCFF"><td colspan=3><font size="+2">Adaptive Stepsize Integrators</font></td></tr>
 <tr BGCOLOR="#EEEEFF"><font size="+1"><td>Name</td><td>Integration Order</td><td>Error Estimation Order</td></font></tr>
 <tr><td><a href="../../../../../org/apache/commons/math3/ode/nonstiff/HighamHall54Integrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><code>Higham and Hall</code></a></td><td>5</td><td>4</td></tr>
 <tr><td><a href="../../../../../org/apache/commons/math3/ode/nonstiff/DormandPrince54Integrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><code>Dormand-Prince 5(4)</code></a></td><td>5</td><td>4</td></tr>
 <tr><td><a href="../../../../../org/apache/commons/math3/ode/nonstiff/DormandPrince853Integrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><code>Dormand-Prince 8(5,3)</code></a></td><td>8</td><td>5 and 3</td></tr>
 <tr><td><a href="../../../../../org/apache/commons/math3/ode/nonstiff/GraggBulirschStoerIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><code>Gragg-Bulirsch-Stoer</code></a></td><td>variable (up to 18 by default)</td><td>variable</td></tr>
 <tr><td><a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdamsBashforthIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><code>Adams-Bashforth</code></a></td><td>variable</td><td>variable</td></tr>
 <tr><td><a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdamsMoultonIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><code>Adams-Moulton</code></a></td><td>variable</td><td>variable</td></tr>
 </table>
 </p>

 <p>
 In the table above, the <a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdamsBashforthIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><code>Adams-Bashforth</code></a> and <a href="../../../../../org/apache/commons/math3/ode/nonstiff/AdamsMoultonIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><code>Adams-Moulton</code></a> integrators appear as variable-step ones. This is an experimental extension
 to the classical algorithms using the Nordsieck vector representation.
 </p></div>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/commons/math3/ml/neuralnet/twod/package-summary.html">Prev Package</a></li>
<li><a href="../../../../../org/apache/commons/math3/ode/events/package-summary.html">Next Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/commons/math3/ode/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2003&#x2013;2014 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>
