<!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>BaseAbstractUnivariateSolver (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="BaseAbstractUnivariateSolver (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><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/BaseAbstractUnivariateSolver.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/analysis/solvers/AllowedSolution.html" title="enum in org.apache.commons.math3.analysis.solvers"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseSecantSolver.html" title="class in org.apache.commons.math3.analysis.solvers"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html" target="_top">Frames</a></li>
<li><a href="BaseAbstractUnivariateSolver.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>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.commons.math3.analysis.solvers</div>
<h2 title="Class BaseAbstractUnivariateSolver" class="title">Class BaseAbstractUnivariateSolver&lt;FUNC extends <a href="../../../../../../org/apache/commons/math3/analysis/UnivariateFunction.html" title="interface in org.apache.commons.math3.analysis">UnivariateFunction</a>&gt;</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.commons.math3.analysis.solvers.BaseAbstractUnivariateSolver&lt;FUNC&gt;</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>FUNC</code> - Type of function to solve.</dd></dl>
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseUnivariateSolver.html" title="interface in org.apache.commons.math3.analysis.solvers">BaseUnivariateSolver</a>&lt;FUNC&gt;</dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../../org/apache/commons/math3/analysis/solvers/AbstractDifferentiableUnivariateSolver.html" title="class in org.apache.commons.math3.analysis.solvers">AbstractDifferentiableUnivariateSolver</a>, <a href="../../../../../../org/apache/commons/math3/analysis/solvers/AbstractPolynomialSolver.html" title="class in org.apache.commons.math3.analysis.solvers">AbstractPolynomialSolver</a>, <a href="../../../../../../org/apache/commons/math3/analysis/solvers/AbstractUnivariateDifferentiableSolver.html" title="class in org.apache.commons.math3.analysis.solvers">AbstractUnivariateDifferentiableSolver</a>, <a href="../../../../../../org/apache/commons/math3/analysis/solvers/AbstractUnivariateSolver.html" title="class in org.apache.commons.math3.analysis.solvers">AbstractUnivariateSolver</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="strong">BaseAbstractUnivariateSolver&lt;FUNC extends <a href="../../../../../../org/apache/commons/math3/analysis/UnivariateFunction.html" title="interface in org.apache.commons.math3.analysis">UnivariateFunction</a>&gt;</span>
extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseUnivariateSolver.html" title="interface in org.apache.commons.math3.analysis.solvers">BaseUnivariateSolver</a>&lt;FUNC&gt;</pre>
<div class="block">Provide a default implementation for several functions useful to generic
 solvers.</div>
<dl><dt><span class="strong">Since:</span></dt>
  <dd>2.0</dd>
<dt><span class="strong">Version:</span></dt>
  <dd>$Id: BaseAbstractUnivariateSolver.java 1455194 2013-03-11 15:45:54Z luc $</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html#BaseAbstractUnivariateSolver(double)">BaseAbstractUnivariateSolver</a></strong>(double&nbsp;absoluteAccuracy)</code>
<div class="block">Construct a solver with given absolute accuracy.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html#BaseAbstractUnivariateSolver(double, double)">BaseAbstractUnivariateSolver</a></strong>(double&nbsp;relativeAccuracy,
                            double&nbsp;absoluteAccuracy)</code>
<div class="block">Construct a solver with given accuracies.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html#BaseAbstractUnivariateSolver(double, double, double)">BaseAbstractUnivariateSolver</a></strong>(double&nbsp;relativeAccuracy,
                            double&nbsp;absoluteAccuracy,
                            double&nbsp;functionValueAccuracy)</code>
<div class="block">Construct a solver with given accuracies.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected double</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html#computeObjectiveValue(double)">computeObjectiveValue</a></strong>(double&nbsp;point)</code>
<div class="block">Compute the objective function value.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected abstract double</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html#doSolve()">doSolve</a></strong>()</code>
<div class="block">Method for implementing actual optimization algorithms in derived
 classes.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html#getAbsoluteAccuracy()">getAbsoluteAccuracy</a></strong>()</code>
<div class="block">Get the absolute accuracy of the solver.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html#getEvaluations()">getEvaluations</a></strong>()</code>
<div class="block">Get the number of evaluations of the objective function.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html#getFunctionValueAccuracy()">getFunctionValueAccuracy</a></strong>()</code>
<div class="block">Get the function value accuracy of the solver.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html#getMax()">getMax</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html#getMaxEvaluations()">getMaxEvaluations</a></strong>()</code>
<div class="block">Get the maximum number of function evaluations.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html#getMin()">getMin</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html#getRelativeAccuracy()">getRelativeAccuracy</a></strong>()</code>
<div class="block">Get the relative accuracy of the solver.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html#getStartValue()">getStartValue</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html#incrementEvaluationCount()">incrementEvaluationCount</a></strong>()</code>
<div class="block">Increment the evaluation count by one.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html#isBracketing(double, double)">isBracketing</a></strong>(double&nbsp;lower,
            double&nbsp;upper)</code>
<div class="block">Check whether the function takes opposite signs at the endpoints.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html#isSequence(double, double, double)">isSequence</a></strong>(double&nbsp;start,
          double&nbsp;mid,
          double&nbsp;end)</code>
<div class="block">Check whether the arguments form a (strictly) increasing sequence.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html#setup(int, FUNC, double, double, double)">setup</a></strong>(int&nbsp;maxEval,
     <a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html" title="type parameter in BaseAbstractUnivariateSolver">FUNC</a>&nbsp;f,
     double&nbsp;min,
     double&nbsp;max,
     double&nbsp;startValue)</code>
<div class="block">Prepare for computation.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html#solve(int, FUNC, double)">solve</a></strong>(int&nbsp;maxEval,
     <a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html" title="type parameter in BaseAbstractUnivariateSolver">FUNC</a>&nbsp;f,
     double&nbsp;startValue)</code>
<div class="block">Solve for a zero in the vicinity of <code>startValue</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html#solve(int, FUNC, double, double)">solve</a></strong>(int&nbsp;maxEval,
     <a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html" title="type parameter in BaseAbstractUnivariateSolver">FUNC</a>&nbsp;f,
     double&nbsp;min,
     double&nbsp;max)</code>
<div class="block">Solve for a zero root in the given interval.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html#solve(int, FUNC, double, double, double)">solve</a></strong>(int&nbsp;maxEval,
     <a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html" title="type parameter in BaseAbstractUnivariateSolver">FUNC</a>&nbsp;f,
     double&nbsp;min,
     double&nbsp;max,
     double&nbsp;startValue)</code>
<div class="block">Solve for a zero in the given interval, start at <code>startValue</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html#verifyBracketing(double, double)">verifyBracketing</a></strong>(double&nbsp;lower,
                double&nbsp;upper)</code>
<div class="block">Check that the endpoints specify an interval and the function takes
 opposite signs at the endpoints.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html#verifyInterval(double, double)">verifyInterval</a></strong>(double&nbsp;lower,
              double&nbsp;upper)</code>
<div class="block">Check that the endpoints specify an interval.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html#verifySequence(double, double, double)">verifySequence</a></strong>(double&nbsp;lower,
              double&nbsp;initial,
              double&nbsp;upper)</code>
<div class="block">Check that <code>lower &lt; initial &lt; upper</code>.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="BaseAbstractUnivariateSolver(double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>BaseAbstractUnivariateSolver</h4>
<pre>protected&nbsp;BaseAbstractUnivariateSolver(double&nbsp;absoluteAccuracy)</pre>
<div class="block">Construct a solver with given absolute accuracy.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>absoluteAccuracy</code> - Maximum absolute error.</dd></dl>
</li>
</ul>
<a name="BaseAbstractUnivariateSolver(double, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>BaseAbstractUnivariateSolver</h4>
<pre>protected&nbsp;BaseAbstractUnivariateSolver(double&nbsp;relativeAccuracy,
                            double&nbsp;absoluteAccuracy)</pre>
<div class="block">Construct a solver with given accuracies.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>relativeAccuracy</code> - Maximum relative error.</dd><dd><code>absoluteAccuracy</code> - Maximum absolute error.</dd></dl>
</li>
</ul>
<a name="BaseAbstractUnivariateSolver(double, double, double)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>BaseAbstractUnivariateSolver</h4>
<pre>protected&nbsp;BaseAbstractUnivariateSolver(double&nbsp;relativeAccuracy,
                            double&nbsp;absoluteAccuracy,
                            double&nbsp;functionValueAccuracy)</pre>
<div class="block">Construct a solver with given accuracies.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>relativeAccuracy</code> - Maximum relative error.</dd><dd><code>absoluteAccuracy</code> - Maximum absolute error.</dd><dd><code>functionValueAccuracy</code> - Maximum function value error.</dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getMaxEvaluations()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxEvaluations</h4>
<pre>public&nbsp;int&nbsp;getMaxEvaluations()</pre>
<div class="block">Get the maximum number of function evaluations.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseUnivariateSolver.html#getMaxEvaluations()">getMaxEvaluations</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseUnivariateSolver.html" title="interface in org.apache.commons.math3.analysis.solvers">BaseUnivariateSolver</a>&lt;<a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html" title="type parameter in BaseAbstractUnivariateSolver">FUNC</a> extends <a href="../../../../../../org/apache/commons/math3/analysis/UnivariateFunction.html" title="interface in org.apache.commons.math3.analysis">UnivariateFunction</a>&gt;</code></dd>
<dt><span class="strong">Returns:</span></dt><dd>the maximum number of function evaluations.</dd></dl>
</li>
</ul>
<a name="getEvaluations()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEvaluations</h4>
<pre>public&nbsp;int&nbsp;getEvaluations()</pre>
<div class="block">Get the number of evaluations of the objective function.
 The number of evaluations corresponds to the last call to the
 <code>optimize</code> method. It is 0 if the method has not been
 called yet.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseUnivariateSolver.html#getEvaluations()">getEvaluations</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseUnivariateSolver.html" title="interface in org.apache.commons.math3.analysis.solvers">BaseUnivariateSolver</a>&lt;<a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html" title="type parameter in BaseAbstractUnivariateSolver">FUNC</a> extends <a href="../../../../../../org/apache/commons/math3/analysis/UnivariateFunction.html" title="interface in org.apache.commons.math3.analysis">UnivariateFunction</a>&gt;</code></dd>
<dt><span class="strong">Returns:</span></dt><dd>the number of evaluations of the objective function.</dd></dl>
</li>
</ul>
<a name="getMin()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMin</h4>
<pre>public&nbsp;double&nbsp;getMin()</pre>
<dl><dt><span class="strong">Returns:</span></dt><dd>the lower end of the search interval.</dd></dl>
</li>
</ul>
<a name="getMax()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMax</h4>
<pre>public&nbsp;double&nbsp;getMax()</pre>
<dl><dt><span class="strong">Returns:</span></dt><dd>the higher end of the search interval.</dd></dl>
</li>
</ul>
<a name="getStartValue()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStartValue</h4>
<pre>public&nbsp;double&nbsp;getStartValue()</pre>
<dl><dt><span class="strong">Returns:</span></dt><dd>the initial guess.</dd></dl>
</li>
</ul>
<a name="getAbsoluteAccuracy()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAbsoluteAccuracy</h4>
<pre>public&nbsp;double&nbsp;getAbsoluteAccuracy()</pre>
<div class="block">Get the absolute accuracy of the solver.  Solutions returned by the
 solver should be accurate to this tolerance, i.e., if &epsilon; is the
 absolute accuracy of the solver and <code>v</code> is a value returned by
 one of the <code>solve</code> methods, then a root of the function should
 exist somewhere in the interval (<code>v</code> - &epsilon;, <code>v</code> + &epsilon;).</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseUnivariateSolver.html#getAbsoluteAccuracy()">getAbsoluteAccuracy</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseUnivariateSolver.html" title="interface in org.apache.commons.math3.analysis.solvers">BaseUnivariateSolver</a>&lt;<a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html" title="type parameter in BaseAbstractUnivariateSolver">FUNC</a> extends <a href="../../../../../../org/apache/commons/math3/analysis/UnivariateFunction.html" title="interface in org.apache.commons.math3.analysis">UnivariateFunction</a>&gt;</code></dd>
<dt><span class="strong">Returns:</span></dt><dd>the absolute accuracy.</dd></dl>
</li>
</ul>
<a name="getRelativeAccuracy()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRelativeAccuracy</h4>
<pre>public&nbsp;double&nbsp;getRelativeAccuracy()</pre>
<div class="block">Get the relative accuracy of the solver.  The contract for relative
 accuracy is the same as <a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseUnivariateSolver.html#getAbsoluteAccuracy()"><code>BaseUnivariateSolver.getAbsoluteAccuracy()</code></a>, but using
 relative, rather than absolute error.  If &rho; is the relative accuracy
 configured for a solver and <code>v</code> is a value returned, then a root
 of the function should exist somewhere in the interval
 (<code>v</code> - &rho; <code>v</code>, <code>v</code> + &rho; <code>v</code>).</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseUnivariateSolver.html#getRelativeAccuracy()">getRelativeAccuracy</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseUnivariateSolver.html" title="interface in org.apache.commons.math3.analysis.solvers">BaseUnivariateSolver</a>&lt;<a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html" title="type parameter in BaseAbstractUnivariateSolver">FUNC</a> extends <a href="../../../../../../org/apache/commons/math3/analysis/UnivariateFunction.html" title="interface in org.apache.commons.math3.analysis">UnivariateFunction</a>&gt;</code></dd>
<dt><span class="strong">Returns:</span></dt><dd>the relative accuracy.</dd></dl>
</li>
</ul>
<a name="getFunctionValueAccuracy()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFunctionValueAccuracy</h4>
<pre>public&nbsp;double&nbsp;getFunctionValueAccuracy()</pre>
<div class="block">Get the function value accuracy of the solver.  If <code>v</code> is
 a value returned by the solver for a function <code>f</code>,
 then by contract, <code>|f(v)|</code> should be less than or equal to
 the function value accuracy configured for the solver.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseUnivariateSolver.html#getFunctionValueAccuracy()">getFunctionValueAccuracy</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseUnivariateSolver.html" title="interface in org.apache.commons.math3.analysis.solvers">BaseUnivariateSolver</a>&lt;<a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html" title="type parameter in BaseAbstractUnivariateSolver">FUNC</a> extends <a href="../../../../../../org/apache/commons/math3/analysis/UnivariateFunction.html" title="interface in org.apache.commons.math3.analysis">UnivariateFunction</a>&gt;</code></dd>
<dt><span class="strong">Returns:</span></dt><dd>the function value accuracy.</dd></dl>
</li>
</ul>
<a name="computeObjectiveValue(double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>computeObjectiveValue</h4>
<pre>protected&nbsp;double&nbsp;computeObjectiveValue(double&nbsp;point)
                                throws <a href="../../../../../../org/apache/commons/math3/exception/TooManyEvaluationsException.html" title="class in org.apache.commons.math3.exception">TooManyEvaluationsException</a></pre>
<div class="block">Compute the objective function value.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>point</code> - Point at which the objective function must be evaluated.</dd>
<dt><span class="strong">Returns:</span></dt><dd>the objective function value at specified point.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/TooManyEvaluationsException.html" title="class in org.apache.commons.math3.exception">TooManyEvaluationsException</a></code> - if the maximal number of evaluations
 is exceeded.</dd></dl>
</li>
</ul>
<a name="setup(int,org.apache.commons.math3.analysis.UnivariateFunction,double,double,double)">
<!--   -->
</a><a name="setup(int, FUNC, double, double, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setup</h4>
<pre>protected&nbsp;void&nbsp;setup(int&nbsp;maxEval,
         <a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html" title="type parameter in BaseAbstractUnivariateSolver">FUNC</a>&nbsp;f,
         double&nbsp;min,
         double&nbsp;max,
         double&nbsp;startValue)
              throws <a href="../../../../../../org/apache/commons/math3/exception/NullArgumentException.html" title="class in org.apache.commons.math3.exception">NullArgumentException</a></pre>
<div class="block">Prepare for computation.
 Subclasses must call this method if they override any of the
 <code>solve</code> methods.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>f</code> - Function to solve.</dd><dd><code>min</code> - Lower bound for the interval.</dd><dd><code>max</code> - Upper bound for the interval.</dd><dd><code>startValue</code> - Start value to use.</dd><dd><code>maxEval</code> - Maximum number of evaluations.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/NullArgumentException.html" title="class in org.apache.commons.math3.exception">NullArgumentException</a></code> - if f is null</dd></dl>
</li>
</ul>
<a name="solve(int,org.apache.commons.math3.analysis.UnivariateFunction,double,double,double)">
<!--   -->
</a><a name="solve(int, FUNC, double, double, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>solve</h4>
<pre>public&nbsp;double&nbsp;solve(int&nbsp;maxEval,
           <a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html" title="type parameter in BaseAbstractUnivariateSolver">FUNC</a>&nbsp;f,
           double&nbsp;min,
           double&nbsp;max,
           double&nbsp;startValue)
             throws <a href="../../../../../../org/apache/commons/math3/exception/TooManyEvaluationsException.html" title="class in org.apache.commons.math3.exception">TooManyEvaluationsException</a>,
                    <a href="../../../../../../org/apache/commons/math3/exception/NoBracketingException.html" title="class in org.apache.commons.math3.exception">NoBracketingException</a></pre>
<div class="block">Solve for a zero in the given interval, start at <code>startValue</code>.
 A solver may require that the interval brackets a single zero root.
 Solvers that do require bracketing should be able to handle the case
 where one of the endpoints is itself a root.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseUnivariateSolver.html#solve(int, FUNC, double, double, double)">solve</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseUnivariateSolver.html" title="interface in org.apache.commons.math3.analysis.solvers">BaseUnivariateSolver</a>&lt;<a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html" title="type parameter in BaseAbstractUnivariateSolver">FUNC</a> extends <a href="../../../../../../org/apache/commons/math3/analysis/UnivariateFunction.html" title="interface in org.apache.commons.math3.analysis">UnivariateFunction</a>&gt;</code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>maxEval</code> - Maximum number of evaluations.</dd><dd><code>f</code> - Function to solve.</dd><dd><code>min</code> - Lower bound for the interval.</dd><dd><code>max</code> - Upper bound for the interval.</dd><dd><code>startValue</code> - Start value to use.</dd>
<dt><span class="strong">Returns:</span></dt><dd>a value where the function is zero.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/TooManyEvaluationsException.html" title="class in org.apache.commons.math3.exception">TooManyEvaluationsException</a></code> - if
 the allowed number of evaluations is exceeded.</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/NoBracketingException.html" title="class in org.apache.commons.math3.exception">NoBracketingException</a></code></dd></dl>
</li>
</ul>
<a name="solve(int,org.apache.commons.math3.analysis.UnivariateFunction,double,double)">
<!--   -->
</a><a name="solve(int, FUNC, double, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>solve</h4>
<pre>public&nbsp;double&nbsp;solve(int&nbsp;maxEval,
           <a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html" title="type parameter in BaseAbstractUnivariateSolver">FUNC</a>&nbsp;f,
           double&nbsp;min,
           double&nbsp;max)</pre>
<div class="block">Solve for a zero root in the given interval.
 A solver may require that the interval brackets a single zero root.
 Solvers that do require bracketing should be able to handle the case
 where one of the endpoints is itself a root.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseUnivariateSolver.html#solve(int, FUNC, double, double)">solve</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseUnivariateSolver.html" title="interface in org.apache.commons.math3.analysis.solvers">BaseUnivariateSolver</a>&lt;<a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html" title="type parameter in BaseAbstractUnivariateSolver">FUNC</a> extends <a href="../../../../../../org/apache/commons/math3/analysis/UnivariateFunction.html" title="interface in org.apache.commons.math3.analysis">UnivariateFunction</a>&gt;</code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>maxEval</code> - Maximum number of evaluations.</dd><dd><code>f</code> - Function to solve.</dd><dd><code>min</code> - Lower bound for the interval.</dd><dd><code>max</code> - Upper bound for the interval.</dd>
<dt><span class="strong">Returns:</span></dt><dd>a value where the function is zero.</dd></dl>
</li>
</ul>
<a name="solve(int,org.apache.commons.math3.analysis.UnivariateFunction,double)">
<!--   -->
</a><a name="solve(int, FUNC, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>solve</h4>
<pre>public&nbsp;double&nbsp;solve(int&nbsp;maxEval,
           <a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html" title="type parameter in BaseAbstractUnivariateSolver">FUNC</a>&nbsp;f,
           double&nbsp;startValue)
             throws <a href="../../../../../../org/apache/commons/math3/exception/TooManyEvaluationsException.html" title="class in org.apache.commons.math3.exception">TooManyEvaluationsException</a>,
                    <a href="../../../../../../org/apache/commons/math3/exception/NoBracketingException.html" title="class in org.apache.commons.math3.exception">NoBracketingException</a></pre>
<div class="block">Solve for a zero in the vicinity of <code>startValue</code>.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseUnivariateSolver.html#solve(int, FUNC, double)">solve</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseUnivariateSolver.html" title="interface in org.apache.commons.math3.analysis.solvers">BaseUnivariateSolver</a>&lt;<a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html" title="type parameter in BaseAbstractUnivariateSolver">FUNC</a> extends <a href="../../../../../../org/apache/commons/math3/analysis/UnivariateFunction.html" title="interface in org.apache.commons.math3.analysis">UnivariateFunction</a>&gt;</code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>maxEval</code> - Maximum number of evaluations.</dd><dd><code>f</code> - Function to solve.</dd><dd><code>startValue</code> - Start value to use.</dd>
<dt><span class="strong">Returns:</span></dt><dd>a value where the function is zero.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/TooManyEvaluationsException.html" title="class in org.apache.commons.math3.exception">TooManyEvaluationsException</a></code> - if
 the allowed number of evaluations is exceeded.</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/NoBracketingException.html" title="class in org.apache.commons.math3.exception">NoBracketingException</a></code></dd></dl>
</li>
</ul>
<a name="doSolve()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doSolve</h4>
<pre>protected abstract&nbsp;double&nbsp;doSolve()
                           throws <a href="../../../../../../org/apache/commons/math3/exception/TooManyEvaluationsException.html" title="class in org.apache.commons.math3.exception">TooManyEvaluationsException</a>,
                                  <a href="../../../../../../org/apache/commons/math3/exception/NoBracketingException.html" title="class in org.apache.commons.math3.exception">NoBracketingException</a></pre>
<div class="block">Method for implementing actual optimization algorithms in derived
 classes.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the root.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/TooManyEvaluationsException.html" title="class in org.apache.commons.math3.exception">TooManyEvaluationsException</a></code> - if the maximal number of evaluations
 is exceeded.</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/NoBracketingException.html" title="class in org.apache.commons.math3.exception">NoBracketingException</a></code> - if the initial search interval does not bracket
 a root and the solver requires it.</dd></dl>
</li>
</ul>
<a name="isBracketing(double, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isBracketing</h4>
<pre>protected&nbsp;boolean&nbsp;isBracketing(double&nbsp;lower,
                   double&nbsp;upper)</pre>
<div class="block">Check whether the function takes opposite signs at the endpoints.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>lower</code> - Lower endpoint.</dd><dd><code>upper</code> - Upper endpoint.</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>true</code> if the function values have opposite signs at the
 given points.</dd></dl>
</li>
</ul>
<a name="isSequence(double, double, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSequence</h4>
<pre>protected&nbsp;boolean&nbsp;isSequence(double&nbsp;start,
                 double&nbsp;mid,
                 double&nbsp;end)</pre>
<div class="block">Check whether the arguments form a (strictly) increasing sequence.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>start</code> - First number.</dd><dd><code>mid</code> - Second number.</dd><dd><code>end</code> - Third number.</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>true</code> if the arguments form an increasing sequence.</dd></dl>
</li>
</ul>
<a name="verifyInterval(double, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>verifyInterval</h4>
<pre>protected&nbsp;void&nbsp;verifyInterval(double&nbsp;lower,
                  double&nbsp;upper)
                       throws <a href="../../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a></pre>
<div class="block">Check that the endpoints specify an interval.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>lower</code> - Lower endpoint.</dd><dd><code>upper</code> - Upper endpoint.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a></code> - if <code>lower &gt;= upper</code>.</dd></dl>
</li>
</ul>
<a name="verifySequence(double, double, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>verifySequence</h4>
<pre>protected&nbsp;void&nbsp;verifySequence(double&nbsp;lower,
                  double&nbsp;initial,
                  double&nbsp;upper)
                       throws <a href="../../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a></pre>
<div class="block">Check that <code>lower &lt; initial &lt; upper</code>.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>lower</code> - Lower endpoint.</dd><dd><code>initial</code> - Initial value.</dd><dd><code>upper</code> - Upper endpoint.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/NumberIsTooLargeException.html" title="class in org.apache.commons.math3.exception">NumberIsTooLargeException</a></code> - if <code>lower &gt;= initial</code> or
 <code>initial &gt;= upper</code>.</dd></dl>
</li>
</ul>
<a name="verifyBracketing(double, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>verifyBracketing</h4>
<pre>protected&nbsp;void&nbsp;verifyBracketing(double&nbsp;lower,
                    double&nbsp;upper)
                         throws <a href="../../../../../../org/apache/commons/math3/exception/NullArgumentException.html" title="class in org.apache.commons.math3.exception">NullArgumentException</a>,
                                <a href="../../../../../../org/apache/commons/math3/exception/NoBracketingException.html" title="class in org.apache.commons.math3.exception">NoBracketingException</a></pre>
<div class="block">Check that the endpoints specify an interval and the function takes
 opposite signs at the endpoints.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>lower</code> - Lower endpoint.</dd><dd><code>upper</code> - Upper endpoint.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/NullArgumentException.html" title="class in org.apache.commons.math3.exception">NullArgumentException</a></code> - if the function has not been set.</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/NoBracketingException.html" title="class in org.apache.commons.math3.exception">NoBracketingException</a></code> - if the function has the same sign at
 the endpoints.</dd></dl>
</li>
</ul>
<a name="incrementEvaluationCount()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>incrementEvaluationCount</h4>
<pre>protected&nbsp;void&nbsp;incrementEvaluationCount()
                                 throws <a href="../../../../../../org/apache/commons/math3/exception/TooManyEvaluationsException.html" title="class in org.apache.commons.math3.exception">TooManyEvaluationsException</a></pre>
<div class="block">Increment the evaluation count by one.
 Method <a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html#computeObjectiveValue(double)"><code>computeObjectiveValue(double)</code></a> calls this method internally.
 It is provided for subclasses that do not exclusively use
 <code>computeObjectiveValue</code> to solve the function.
 See e.g. <a href="../../../../../../org/apache/commons/math3/analysis/solvers/AbstractUnivariateDifferentiableSolver.html" title="class in org.apache.commons.math3.analysis.solvers"><code>AbstractUnivariateDifferentiableSolver</code></a>.</div>
<dl><dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/TooManyEvaluationsException.html" title="class in org.apache.commons.math3.exception">TooManyEvaluationsException</a></code> - when the allowed number of function
 evaluations has been exhausted.</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= 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><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/BaseAbstractUnivariateSolver.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/analysis/solvers/AllowedSolution.html" title="enum in org.apache.commons.math3.analysis.solvers"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../org/apache/commons/math3/analysis/solvers/BaseSecantSolver.html" title="class in org.apache.commons.math3.analysis.solvers"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.html" target="_top">Frames</a></li>
<li><a href="BaseAbstractUnivariateSolver.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>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</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>
