<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>AbstractStorelessUnivariateStatistic</title>
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="AbstractStorelessUnivariateStatistic";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":10,"i3":10,"i4":10,"i5":6,"i6":10,"i7":6,"i8":10,"i9":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<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="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>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractUnivariateStatistic.html" title="class in org.apache.openejb.math.stat.descriptive"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html" target="_top">Frames</a></li>
<li><a href="AbstractStorelessUnivariateStatistic.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;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.openejb.math.stat.descriptive</div>
<h2 title="Class AbstractStorelessUnivariateStatistic" class="title">Class AbstractStorelessUnivariateStatistic</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractUnivariateStatistic.html" title="class in org.apache.openejb.math.stat.descriptive">org.apache.openejb.math.stat.descriptive.AbstractUnivariateStatistic</a></li>
<li>
<ul class="inheritance">
<li>org.apache.openejb.math.stat.descriptive.AbstractStorelessUnivariateStatistic</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../../org/apache/openejb/math/stat/descriptive/StorelessUnivariateStatistic.html" title="interface in org.apache.openejb.math.stat.descriptive">StorelessUnivariateStatistic</a>, <a href="../../../../../../org/apache/openejb/math/stat/descriptive/UnivariateStatistic.html" title="interface in org.apache.openejb.math.stat.descriptive">UnivariateStatistic</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../../org/apache/openejb/math/stat/descriptive/moment/FirstMoment.html" title="class in org.apache.openejb.math.stat.descriptive.moment">FirstMoment</a>, <a href="../../../../../../org/apache/openejb/math/stat/descriptive/moment/GeometricMean.html" title="class in org.apache.openejb.math.stat.descriptive.moment">GeometricMean</a>, <a href="../../../../../../org/apache/openejb/math/stat/descriptive/moment/Kurtosis.html" title="class in org.apache.openejb.math.stat.descriptive.moment">Kurtosis</a>, <a href="../../../../../../org/apache/openejb/math/stat/descriptive/rank/Max.html" title="class in org.apache.openejb.math.stat.descriptive.rank">Max</a>, <a href="../../../../../../org/apache/openejb/math/stat/descriptive/moment/Mean.html" title="class in org.apache.openejb.math.stat.descriptive.moment">Mean</a>, <a href="../../../../../../org/apache/openejb/math/stat/descriptive/rank/Min.html" title="class in org.apache.openejb.math.stat.descriptive.rank">Min</a>, <a href="../../../../../../org/apache/openejb/math/stat/descriptive/moment/Skewness.html" title="class in org.apache.openejb.math.stat.descriptive.moment">Skewness</a>, <a href="../../../../../../org/apache/openejb/math/stat/descriptive/summary/Sum.html" title="class in org.apache.openejb.math.stat.descriptive.summary">Sum</a>, <a href="../../../../../../org/apache/openejb/math/stat/descriptive/summary/SumOfLogs.html" title="class in org.apache.openejb.math.stat.descriptive.summary">SumOfLogs</a>, <a href="../../../../../../org/apache/openejb/math/stat/descriptive/summary/SumOfSquares.html" title="class in org.apache.openejb.math.stat.descriptive.summary">SumOfSquares</a>, <a href="../../../../../../org/apache/openejb/math/stat/descriptive/moment/Variance.html" title="class in org.apache.openejb.math.stat.descriptive.moment">Variance</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">AbstractStorelessUnivariateStatistic</span>
extends <a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractUnivariateStatistic.html" title="class in org.apache.openejb.math.stat.descriptive">AbstractUnivariateStatistic</a>
implements <a href="../../../../../../org/apache/openejb/math/stat/descriptive/StorelessUnivariateStatistic.html" title="interface in org.apache.openejb.math.stat.descriptive">StorelessUnivariateStatistic</a></pre>
<div class="block">Abstract implementation of the <a href="../../../../../../org/apache/openejb/math/stat/descriptive/StorelessUnivariateStatistic.html" title="interface in org.apache.openejb.math.stat.descriptive"><code>StorelessUnivariateStatistic</code></a> interface.
 <p>
 Provides default <code>evaluate()</code> and <code>incrementAll(double[])<code>
 implementations.</p>
 <p>
 <strong>Note that these implementations are not synchronized.</strong></p></div>
</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="memberSummary" 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="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#AbstractStorelessUnivariateStatistic--">AbstractStorelessUnivariateStatistic</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#clear--">clear</a></span>()</code>
<div class="block">Clears the internal state of the Statistic</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../../../org/apache/openejb/math/stat/descriptive/StorelessUnivariateStatistic.html" title="interface in org.apache.openejb.math.stat.descriptive">StorelessUnivariateStatistic</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#copy--">copy</a></span>()</code>
<div class="block">Returns a copy of the statistic with the same internal state.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#equals-java.lang.Object-">equals</a></span>(java.lang.Object&nbsp;object)</code>
<div class="block">Returns true iff <code>object</code> is an
 <code>AbstractStorelessUnivariateStatistic</code> returning the same
 values as this for <code>getResult()</code> and <code>getN()</code></div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#evaluate-double:A-">evaluate</a></span>(double[]&nbsp;values)</code>
<div class="block">This default implementation calls <a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#clear--"><code>clear()</code></a>, then invokes
 <a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#increment-double-"><code>increment(double)</code></a> in a loop over the the input array, and then uses
 <a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#getResult--"><code>getResult()</code></a> to compute the return value.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#evaluate-double:A-int-int-">evaluate</a></span>(double[]&nbsp;values,
        int&nbsp;begin,
        int&nbsp;length)</code>
<div class="block">This default implementation calls <a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#clear--"><code>clear()</code></a>, then invokes
 <a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#increment-double-"><code>increment(double)</code></a> in a loop over the specified portion of the input
 array, and then uses <a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#getResult--"><code>getResult()</code></a> to compute the return value.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>abstract double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#getResult--">getResult</a></span>()</code>
<div class="block">Returns the current value of the Statistic.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#hashCode--">hashCode</a></span>()</code>
<div class="block">Returns hash code based on getResult() and getN()</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#increment-double-">increment</a></span>(double&nbsp;d)</code>
<div class="block">Updates the internal state of the statistic to reflect the addition of the new value.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#incrementAll-double:A-">incrementAll</a></span>(double[]&nbsp;values)</code>
<div class="block">This default implementation just calls <a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#increment-double-"><code>increment(double)</code></a> in a loop over
 the input array.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#incrementAll-double:A-int-int-">incrementAll</a></span>(double[]&nbsp;values,
            int&nbsp;begin,
            int&nbsp;length)</code>
<div class="block">This default implementation just calls <a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#increment-double-"><code>increment(double)</code></a> in a loop over
 the specified portion of the input array.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.openejb.math.stat.descriptive.AbstractUnivariateStatistic">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.openejb.math.stat.descriptive.<a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractUnivariateStatistic.html" title="class in org.apache.openejb.math.stat.descriptive">AbstractUnivariateStatistic</a></h3>
<code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractUnivariateStatistic.html#test-double:A-double:A-int-int-">test</a>, <a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractUnivariateStatistic.html#test-double:A-int-int-">test</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.openejb.math.stat.descriptive.StorelessUnivariateStatistic">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.openejb.math.stat.descriptive.<a href="../../../../../../org/apache/openejb/math/stat/descriptive/StorelessUnivariateStatistic.html" title="interface in org.apache.openejb.math.stat.descriptive">StorelessUnivariateStatistic</a></h3>
<code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/StorelessUnivariateStatistic.html#getN--">getN</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="AbstractStorelessUnivariateStatistic--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AbstractStorelessUnivariateStatistic</h4>
<pre>public&nbsp;AbstractStorelessUnivariateStatistic()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="evaluate-double:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>evaluate</h4>
<pre>public&nbsp;double&nbsp;evaluate(double[]&nbsp;values)</pre>
<div class="block">This default implementation calls <a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#clear--"><code>clear()</code></a>, then invokes
 <a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#increment-double-"><code>increment(double)</code></a> in a loop over the the input array, and then uses
 <a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#getResult--"><code>getResult()</code></a> to compute the return value.
 <p>
 Note that this implementation changes the internal state of the
 statistic.  Its side effects are the same as invoking <a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#clear--"><code>clear()</code></a> and
 then <a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#incrementAll-double:A-"><code>incrementAll(double[])</code></a>.</p>
 <p>
 Implementations may override this method with a more efficient and
 possibly more accurate implementation that works directly with the
 input array.</p>
 <p>
 If the array is null, an IllegalArgumentException is thrown.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/UnivariateStatistic.html#evaluate-double:A-">evaluate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/UnivariateStatistic.html" title="interface in org.apache.openejb.math.stat.descriptive">UnivariateStatistic</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractUnivariateStatistic.html#evaluate-double:A-">evaluate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractUnivariateStatistic.html" title="class in org.apache.openejb.math.stat.descriptive">AbstractUnivariateStatistic</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>values</code> - input array</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value of the statistic applied to the input array</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../org/apache/openejb/math/stat/descriptive/UnivariateStatistic.html#evaluate-double:A-"><code>UnivariateStatistic.evaluate(double[])</code></a></dd>
</dl>
</li>
</ul>
<a name="evaluate-double:A-int-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>evaluate</h4>
<pre>public&nbsp;double&nbsp;evaluate(double[]&nbsp;values,
                       int&nbsp;begin,
                       int&nbsp;length)</pre>
<div class="block">This default implementation calls <a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#clear--"><code>clear()</code></a>, then invokes
 <a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#increment-double-"><code>increment(double)</code></a> in a loop over the specified portion of the input
 array, and then uses <a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#getResult--"><code>getResult()</code></a> to compute the return value.
 <p>
 Note that this implementation changes the internal state of the
 statistic.  Its side effects are the same as invoking <a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#clear--"><code>clear()</code></a> and
 then <a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#incrementAll-double:A-int-int-"><code>incrementAll(double[], int, int)</code></a>.</p>
 <p>
 Implementations may override this method with a more efficient and
 possibly more accurate implementation that works directly with the
 input array.</p>
 <p>
 If the array is null or the index parameters are not valid, an
 IllegalArgumentException is thrown.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/UnivariateStatistic.html#evaluate-double:A-int-int-">evaluate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/UnivariateStatistic.html" title="interface in org.apache.openejb.math.stat.descriptive">UnivariateStatistic</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractUnivariateStatistic.html#evaluate-double:A-int-int-">evaluate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractUnivariateStatistic.html" title="class in org.apache.openejb.math.stat.descriptive">AbstractUnivariateStatistic</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>values</code> - the input array</dd>
<dd><code>begin</code> - the index of the first element to include</dd>
<dd><code>length</code> - the number of elements to include</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value of the statistic applied to the included array entries</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../org/apache/openejb/math/stat/descriptive/UnivariateStatistic.html#evaluate-double:A-int-int-"><code>UnivariateStatistic.evaluate(double[], int, int)</code></a></dd>
</dl>
</li>
</ul>
<a name="copy--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>copy</h4>
<pre>public abstract&nbsp;<a href="../../../../../../org/apache/openejb/math/stat/descriptive/StorelessUnivariateStatistic.html" title="interface in org.apache.openejb.math.stat.descriptive">StorelessUnivariateStatistic</a>&nbsp;copy()</pre>
<div class="block">Returns a copy of the statistic with the same internal state.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/StorelessUnivariateStatistic.html#copy--">copy</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/StorelessUnivariateStatistic.html" title="interface in org.apache.openejb.math.stat.descriptive">StorelessUnivariateStatistic</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/UnivariateStatistic.html#copy--">copy</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/UnivariateStatistic.html" title="interface in org.apache.openejb.math.stat.descriptive">UnivariateStatistic</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractUnivariateStatistic.html#copy--">copy</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractUnivariateStatistic.html" title="class in org.apache.openejb.math.stat.descriptive">AbstractUnivariateStatistic</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a copy of the statistic</dd>
</dl>
</li>
</ul>
<a name="clear--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clear</h4>
<pre>public abstract&nbsp;void&nbsp;clear()</pre>
<div class="block">Clears the internal state of the Statistic</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/StorelessUnivariateStatistic.html#clear--">clear</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/StorelessUnivariateStatistic.html" title="interface in org.apache.openejb.math.stat.descriptive">StorelessUnivariateStatistic</a></code></dd>
</dl>
</li>
</ul>
<a name="getResult--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getResult</h4>
<pre>public abstract&nbsp;double&nbsp;getResult()</pre>
<div class="block">Returns the current value of the Statistic.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/StorelessUnivariateStatistic.html#getResult--">getResult</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/StorelessUnivariateStatistic.html" title="interface in org.apache.openejb.math.stat.descriptive">StorelessUnivariateStatistic</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>value of the statistic, <code>Double.NaN</code> if it
 has been cleared or just instantiated.</dd>
</dl>
</li>
</ul>
<a name="increment-double-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>increment</h4>
<pre>public abstract&nbsp;void&nbsp;increment(double&nbsp;d)</pre>
<div class="block">Updates the internal state of the statistic to reflect the addition of the new value.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/StorelessUnivariateStatistic.html#increment-double-">increment</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/StorelessUnivariateStatistic.html" title="interface in org.apache.openejb.math.stat.descriptive">StorelessUnivariateStatistic</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>d</code> - the new value.</dd>
</dl>
</li>
</ul>
<a name="incrementAll-double:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>incrementAll</h4>
<pre>public&nbsp;void&nbsp;incrementAll(double[]&nbsp;values)</pre>
<div class="block">This default implementation just calls <a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#increment-double-"><code>increment(double)</code></a> in a loop over
 the input array.
 <p>
 Throws IllegalArgumentException if the input values array is null.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/StorelessUnivariateStatistic.html#incrementAll-double:A-">incrementAll</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/StorelessUnivariateStatistic.html" title="interface in org.apache.openejb.math.stat.descriptive">StorelessUnivariateStatistic</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>values</code> - values to add</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if values is null</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../org/apache/openejb/math/stat/descriptive/StorelessUnivariateStatistic.html#incrementAll-double:A-"><code>StorelessUnivariateStatistic.incrementAll(double[])</code></a></dd>
</dl>
</li>
</ul>
<a name="incrementAll-double:A-int-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>incrementAll</h4>
<pre>public&nbsp;void&nbsp;incrementAll(double[]&nbsp;values,
                         int&nbsp;begin,
                         int&nbsp;length)</pre>
<div class="block">This default implementation just calls <a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html#increment-double-"><code>increment(double)</code></a> in a loop over
 the specified portion of the input array.
 <p>
 Throws IllegalArgumentException if the input values array is null.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/StorelessUnivariateStatistic.html#incrementAll-double:A-int-int-">incrementAll</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/openejb/math/stat/descriptive/StorelessUnivariateStatistic.html" title="interface in org.apache.openejb.math.stat.descriptive">StorelessUnivariateStatistic</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>values</code> - array holding values to add</dd>
<dd><code>begin</code> - index of the first array element to add</dd>
<dd><code>length</code> - number of array elements to add</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if values is null</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../org/apache/openejb/math/stat/descriptive/StorelessUnivariateStatistic.html#incrementAll-double:A-int-int-"><code>StorelessUnivariateStatistic.incrementAll(double[], int, int)</code></a></dd>
</dl>
</li>
</ul>
<a name="equals-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre>public&nbsp;boolean&nbsp;equals(java.lang.Object&nbsp;object)</pre>
<div class="block">Returns true iff <code>object</code> is an
 <code>AbstractStorelessUnivariateStatistic</code> returning the same
 values as this for <code>getResult()</code> and <code>getN()</code></div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>equals</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>object</code> - object to test equality against.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if object returns the same value as this</dd>
</dl>
</li>
</ul>
<a name="hashCode--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>hashCode</h4>
<pre>public&nbsp;int&nbsp;hashCode()</pre>
<div class="block">Returns hash code based on getResult() and getN()</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>hashCode</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>hash code</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>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<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="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>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../../org/apache/openejb/math/stat/descriptive/AbstractUnivariateStatistic.html" title="class in org.apache.openejb.math.stat.descriptive"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/openejb/math/stat/descriptive/AbstractStorelessUnivariateStatistic.html" target="_top">Frames</a></li>
<li><a href="AbstractStorelessUnivariateStatistic.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;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 ======= -->
</body>
</html>
