blob: e687987c008d9abcdd28de4eb394e14133295bb3 [file] [log] [blame]
<!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>