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