    001    /*
    002     * Licensed to the Apache Software Foundation (ASF) under one or more
    003     * contributor license agreements.  See the NOTICE file distributed with
    004     * this work for additional information regarding copyright ownership.
    005     * The ASF licenses this file to You under the Apache License, Version 2.0
    006     * (the "License"); you may not use this file except in compliance with
    007     * the License.  You may obtain a copy of the License at
    008     *
    009     *      http://www.apache.org/licenses/LICENSE-2.0
    010     *
    011     * Unless required by applicable law or agreed to in writing, software
    012     * distributed under the License is distributed on an "AS IS" BASIS,
    013     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    014     * See the License for the specific language governing permissions and
    015     * limitations under the License.
    016     */
    017    package org.apache.commons.math3.stat.descriptive;
    018
    019    import org.apache.commons.math3.linear.RealMatrix;
    020
    021    /**
    022     *  Reporting interface for basic multivariate statistics.
    023     *
    024     * @since 1.2
    025     * @version $Id: StatisticalMultivariateSummary.java 1416643 2012-12-03 19:37:14Z tn $
    026     */
    027    public interface StatisticalMultivariateSummary {
    028
    029        /**
    030         * Returns the dimension of the data
    031         * @return The dimension of the data
    032         */
    033        int getDimension();
    034
    035        /**
    036         * Returns an array whose i<sup>th</sup> entry is the
    037         * mean of the i<sup>th</sup> entries of the arrays
    038         * that correspond to each multivariate sample
    039         *
    040         * @return the array of component means
    041         */
    042        double[] getMean();
    043
    044        /**
    045         * Returns the covariance of the available values.
    046         * @return The covariance, null if no multivariate sample
    047         * have been added or a zeroed matrix for a single value set.
    048         */
    049        RealMatrix getCovariance();
    050
    051        /**
    052         * Returns an array whose i<sup>th</sup> entry is the
    053         * standard deviation of the i<sup>th</sup> entries of the arrays
    054         * that correspond to each multivariate sample
    055         *
    056         * @return the array of component standard deviations
    057         */
    058        double[] getStandardDeviation();
    059
    060        /**
    061         * Returns an array whose i<sup>th</sup> entry is the
    062         * maximum of the i<sup>th</sup> entries of the arrays
    063         * that correspond to each multivariate sample
    064         *
    065         * @return the array of component maxima
    066         */
    067        double[] getMax();
    068
    069        /**
    070         * Returns an array whose i<sup>th</sup> entry is the
    071         * minimum of the i<sup>th</sup> entries of the arrays
    072         * that correspond to each multivariate sample
    073         *
    074         * @return the array of component minima
    075         */
    076        double[] getMin();
    077
    078        /**
    079         * Returns the number of available values
    080         * @return The number of available values
    081         */
    082        long getN();
    083
    084        /**
    085         * Returns an array whose i<sup>th</sup> entry is the
    086         * geometric mean of the i<sup>th</sup> entries of the arrays
    087         * that correspond to each multivariate sample
    088         *
    089         * @return the array of component geometric means
    090         */
    091        double[] getGeometricMean();
    092
    093        /**
    094         * Returns an array whose i<sup>th</sup> entry is the
    095         * sum of the i<sup>th</sup> entries of the arrays
    096         * that correspond to each multivariate sample
    097         *
    098         * @return the array of component sums
    099         */
    100        double[] getSum();
    101
    102        /**
    103         * Returns an array whose i<sup>th</sup> entry is the
    104         * sum of squares of the i<sup>th</sup> entries of the arrays
    105         * that correspond to each multivariate sample
    106         *
    107         * @return the array of component sums of squares
    108         */
    109        double[] getSumSq();
    110
    111        /**
    112         * Returns an array whose i<sup>th</sup> entry is the
    113         * sum of logs of the i<sup>th</sup> entries of the arrays
    114         * that correspond to each multivariate sample
    115         *
    116         * @return the array of component log sums
    117         */
    118        double[] getSumLog();
    119
    120    }