⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multivariatesummarystatistics.java

📁 Apache的common math数学软件包
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    }    /**     * Append a text representation of an array to a buffer.     * @param buffer buffer to fill     * @param data data array     * @param prefix text prefix     * @param separator elements separator     * @param suffix text suffix     */    private void append(StringBuffer buffer, double[] data,                        String prefix, String separator, String suffix) {        buffer.append(prefix);        for (int i = 0; i < data.length; ++i) {            if (i > 0) {                buffer.append(separator);            }            buffer.append(data[i]);        }        buffer.append(suffix);    }    /**      * Resets all statistics and storage     */    public void clear() {        this.n = 0;        for (int i = 0; i < k; ++i) {            minImpl[i].clear();            maxImpl[i].clear();            sumImpl[i].clear();            sumLogImpl[i].clear();            sumSqImpl[i].clear();            geoMeanImpl[i].clear();            meanImpl[i].clear();        }        covarianceImpl.clear();    }        /**     * Returns true iff <code>object</code> is a <code>SummaryStatistics</code>     * instance and all statistics have the same values as this.     * @param object the object to test equality against.     * @return true if object equals this     */    public boolean equals(Object object) {        if (object == this ) {            return true;        }        if (object instanceof MultivariateSummaryStatistics == false) {            return false;        }        MultivariateSummaryStatistics stat = (MultivariateSummaryStatistics) object;        return (MathUtils.equals(stat.getGeometricMean(),                 this.getGeometricMean()) &&                MathUtils.equals(stat.getMax(), this.getMax()) &&                 MathUtils.equals(stat.getMean(),this.getMean()) &&                MathUtils.equals(stat.getMin(),this.getMin()) &&                MathUtils.equals(stat.getN(), this.getN()) &&                MathUtils.equals(stat.getSum(), this.getSum()) &&                MathUtils.equals(stat.getSumSq(),this.getSumSq()) &&                MathUtils.equals(stat.getSumLog(),this.getSumLog()) &&                stat.getCovariance().equals(this.getCovariance()));    }        /**     * Returns hash code based on values of statistics     *      * @return hash code     */    public int hashCode() {        int result = 31 + MathUtils.hash(getGeometricMean());        result = result * 31 + MathUtils.hash(getGeometricMean());        result = result * 31 + MathUtils.hash(getMax());        result = result * 31 + MathUtils.hash(getMean());        result = result * 31 + MathUtils.hash(getMin());        result = result * 31 + MathUtils.hash(getN());        result = result * 31 + MathUtils.hash(getSum());        result = result * 31 + MathUtils.hash(getSumSq());        result = result * 31 + MathUtils.hash(getSumLog());        result = result * 31 + getCovariance().hashCode();        return result;    }    // Getters and setters for statistics implementations    /**     * Sets statistics implementations.     * @param newImpl new implementations for statistics     * @param oldImpl old implementations for statistics     * @throws DimensionMismatchException if the array dimension     * does not match the one used at construction     * @throws IllegalStateException if data has already been added     *  (i.e if n > 0)     */    private void setImpl(StorelessUnivariateStatistic[] newImpl,                         StorelessUnivariateStatistic[] oldImpl)       throws DimensionMismatchException, IllegalStateException {        checkEmpty();        checkDimension(newImpl.length);        System.arraycopy(newImpl, 0, oldImpl, 0, newImpl.length);    }    /**     * Returns the currently configured Sum implementation     *      * @return the StorelessUnivariateStatistic implementing the sum     */    public StorelessUnivariateStatistic[] getSumImpl() {        return (StorelessUnivariateStatistic[]) sumImpl.clone();    }    /**     * <p>Sets the implementation for the Sum.</p>     * <p>This method must be activated before any data has been added - i.e.,     * before {@link #addValue(double[]) addValue} has been used to add data;      * otherwise an IllegalStateException will be thrown.</p>     *      * @param sumImpl the StorelessUnivariateStatistic instance to use     * for computing the Sum     * @throws DimensionMismatchException if the array dimension     * does not match the one used at construction     * @throws IllegalStateException if data has already been added     *  (i.e if n > 0)     */    public void setSumImpl(StorelessUnivariateStatistic[] sumImpl)      throws DimensionMismatchException {        setImpl(sumImpl, this.sumImpl);    }    /**     * Returns the currently configured sum of squares implementation     *      * @return the StorelessUnivariateStatistic implementing the sum of squares     */    public StorelessUnivariateStatistic[] getSumsqImpl() {        return (StorelessUnivariateStatistic[]) sumSqImpl.clone();    }    /**     * <p>Sets the implementation for the sum of squares.</p>     * <p>This method must be activated before any data has been added - i.e.,     * before {@link #addValue(double[]) addValue} has been used to add data;      * otherwise an IllegalStateException will be thrown.</p>     *      * @param sumsqImpl the StorelessUnivariateStatistic instance to use     * for computing the sum of squares     * @throws DimensionMismatchException if the array dimension     * does not match the one used at construction     * @throws IllegalStateException if data has already been added     *  (i.e if n > 0)     */    public void setSumsqImpl(StorelessUnivariateStatistic[] sumsqImpl)      throws DimensionMismatchException {        setImpl(sumsqImpl, this.sumSqImpl);    }    /**     * Returns the currently configured minimum implementation     *      * @return the StorelessUnivariateStatistic implementing the minimum     */    public StorelessUnivariateStatistic[] getMinImpl() {        return (StorelessUnivariateStatistic[]) minImpl.clone();    }    /**     * <p>Sets the implementation for the minimum.</p>     * <p>This method must be activated before any data has been added - i.e.,     * before {@link #addValue(double[]) addValue} has been used to add data;      * otherwise an IllegalStateException will be thrown.</p>     *      * @param minImpl the StorelessUnivariateStatistic instance to use     * for computing the minimum     * @throws DimensionMismatchException if the array dimension     * does not match the one used at construction     * @throws IllegalStateException if data has already been added     *  (i.e if n > 0)     */    public void setMinImpl(StorelessUnivariateStatistic[] minImpl)      throws DimensionMismatchException {        setImpl(minImpl, this.minImpl);    }    /**     * Returns the currently configured maximum implementation     *      * @return the StorelessUnivariateStatistic implementing the maximum     */    public StorelessUnivariateStatistic[] getMaxImpl() {        return (StorelessUnivariateStatistic[]) maxImpl.clone();    }    /**     * <p>Sets the implementation for the maximum.</p>     * <p>This method must be activated before any data has been added - i.e.,     * before {@link #addValue(double[]) addValue} has been used to add data;      * otherwise an IllegalStateException will be thrown.</p>     *      * @param maxImpl the StorelessUnivariateStatistic instance to use     * for computing the maximum     * @throws DimensionMismatchException if the array dimension     * does not match the one used at construction     * @throws IllegalStateException if data has already been added     *  (i.e if n > 0)     */    public void setMaxImpl(StorelessUnivariateStatistic[] maxImpl)      throws DimensionMismatchException {        setImpl(maxImpl, this.maxImpl);    }    /**     * Returns the currently configured sum of logs implementation     *      * @return the StorelessUnivariateStatistic implementing the log sum     */    public StorelessUnivariateStatistic[] getSumLogImpl() {        return (StorelessUnivariateStatistic[]) sumLogImpl.clone();    }    /**     * <p>Sets the implementation for the sum of logs.</p>     * <p>This method must be activated before any data has been added - i.e.,     * before {@link #addValue(double[]) addValue} has been used to add data;      * otherwise an IllegalStateException will be thrown.</p>     *      * @param sumLogImpl the StorelessUnivariateStatistic instance to use     * for computing the log sum     * @throws DimensionMismatchException if the array dimension     * does not match the one used at construction     * @throws IllegalStateException if data has already been added      *  (i.e if n > 0)     */    public void setSumLogImpl(StorelessUnivariateStatistic[] sumLogImpl)      throws DimensionMismatchException {        setImpl(sumLogImpl, this.sumLogImpl);    }    /**     * Returns the currently configured geometric mean implementation     *      * @return the StorelessUnivariateStatistic implementing the geometric mean     */    public StorelessUnivariateStatistic[] getGeoMeanImpl() {        return (StorelessUnivariateStatistic[]) geoMeanImpl.clone();    }    /**     * <p>Sets the implementation for the geometric mean.</p>     * <p>This method must be activated before any data has been added - i.e.,     * before {@link #addValue(double[]) addValue} has been used to add data;      * otherwise an IllegalStateException will be thrown.</p>     *      * @param geoMeanImpl the StorelessUnivariateStatistic instance to use     * for computing the geometric mean     * @throws DimensionMismatchException if the array dimension     * does not match the one used at construction     * @throws IllegalStateException if data has already been added     *  (i.e if n > 0)     */    public void setGeoMeanImpl(StorelessUnivariateStatistic[] geoMeanImpl)      throws DimensionMismatchException {        setImpl(geoMeanImpl, this.geoMeanImpl);    }    /**     * Returns the currently configured mean implementation     *      * @return the StorelessUnivariateStatistic implementing the mean     */    public StorelessUnivariateStatistic[] getMeanImpl() {        return (StorelessUnivariateStatistic[]) meanImpl.clone();    }    /**     * <p>Sets the implementation for the mean.</p>     * <p>This method must be activated before any data has been added - i.e.,     * before {@link #addValue(double[]) addValue} has been used to add data;      * otherwise an IllegalStateException will be thrown.</p>     *      * @param meanImpl the StorelessUnivariateStatistic instance to use     * for computing the mean     * @throws DimensionMismatchException if the array dimension     * does not match the one used at construction     * @throws IllegalStateException if data has already been added     *  (i.e if n > 0)     */    public void setMeanImpl(StorelessUnivariateStatistic[] meanImpl)      throws DimensionMismatchException {        setImpl(meanImpl, this.meanImpl);    }    /**     * Throws IllegalStateException if n > 0.     */    private void checkEmpty() {        if (n > 0) {            throw new IllegalStateException(                "Implementations must be configured before values are added.");        }    }    /**     * Throws DimensionMismatchException if dimension != k.     * @param dimension dimension to check     * @throws DimensionMismatchException if dimension != k     */    private void checkDimension(int dimension)      throws DimensionMismatchException {        if (dimension != k) {            throw new DimensionMismatchException(dimension, k);        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -