• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements.  See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License.  You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 package org.apache.commons.math.stat.descriptive;
18 
19 /**
20  * Extends the definition of {@link UnivariateStatistic} with
21  * {@link #increment} and {@link #incrementAll(double[])} methods for adding
22  * values and updating internal state.
23  * <p>
24  * This interface is designed to be used for calculating statistics that can be
25  * computed in one pass through the data without storing the full array of
26  * sample values.</p>
27  *
28  * @version $Revision: 811685 $ $Date: 2009-09-05 19:36:48 +0200 (sam. 05 sept. 2009) $
29  */
30 public interface StorelessUnivariateStatistic extends UnivariateStatistic {
31 
32     /**
33      * Updates the internal state of the statistic to reflect the addition of the new value.
34      * @param d  the new value.
35      */
increment(double d)36     void increment(double d);
37 
38     /**
39      * Updates the internal state of the statistic to reflect addition of
40      * all values in the values array.  Does not clear the statistic first --
41      * i.e., the values are added <strong>incrementally</strong> to the dataset.
42      *
43      * @param values  array holding the new values to add
44      * @throws IllegalArgumentException if the array is null
45      */
incrementAll(double[] values)46     void incrementAll(double[] values);
47 
48     /**
49      * Updates the internal state of the statistic to reflect addition of
50      * the values in the designated portion of the values array.  Does not
51      * clear the statistic first -- i.e., the values are added
52      * <strong>incrementally</strong> to the dataset.
53      *
54      * @param values  array holding the new values to add
55      * @param start  the array index of the first value to add
56      * @param length  the number of elements to add
57      * @throws IllegalArgumentException if the array is null or the index
58      */
incrementAll(double[] values, int start, int length)59     void incrementAll(double[] values, int start, int length);
60 
61     /**
62      * Returns the current value of the Statistic.
63      * @return value of the statistic, <code>Double.NaN</code> if it
64      * has been cleared or just instantiated.
65      */
getResult()66     double getResult();
67 
68     /**
69      * Returns the number of values that have been added.
70      * @return the number of values.
71      */
getN()72     long getN();
73 
74     /**
75      * Clears the internal state of the Statistic
76      */
clear()77     void clear();
78 
79     /**
80      * Returns a copy of the statistic with the same internal state.
81      *
82      * @return a copy of the statistic
83      */
copy()84     StorelessUnivariateStatistic copy();
85 
86 }
87