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 */
017package org.apache.commons.math3.stat.descriptive;
018
019import org.apache.commons.math3.linear.RealMatrix;
020
021/**
022 *  Reporting interface for basic multivariate statistics.
023 *
024 * @since 1.2
025 */
026public interface StatisticalMultivariateSummary {
027
028    /**
029     * Returns the dimension of the data
030     * @return The dimension of the data
031     */
032    int getDimension();
033
034    /**
035     * Returns an array whose i<sup>th</sup> entry is the
036     * mean of the i<sup>th</sup> entries of the arrays
037     * that correspond to each multivariate sample
038     *
039     * @return the array of component means
040     */
041    double[] getMean();
042
043    /**
044     * Returns the covariance of the available values.
045     * @return The covariance, null if no multivariate sample
046     * have been added or a zeroed matrix for a single value set.
047     */
048    RealMatrix getCovariance();
049
050    /**
051     * Returns an array whose i<sup>th</sup> entry is the
052     * standard deviation of the i<sup>th</sup> entries of the arrays
053     * that correspond to each multivariate sample
054     *
055     * @return the array of component standard deviations
056     */
057    double[] getStandardDeviation();
058
059    /**
060     * Returns an array whose i<sup>th</sup> entry is the
061     * maximum of the i<sup>th</sup> entries of the arrays
062     * that correspond to each multivariate sample
063     *
064     * @return the array of component maxima
065     */
066    double[] getMax();
067
068    /**
069     * Returns an array whose i<sup>th</sup> entry is the
070     * minimum of the i<sup>th</sup> entries of the arrays
071     * that correspond to each multivariate sample
072     *
073     * @return the array of component minima
074     */
075    double[] getMin();
076
077    /**
078     * Returns the number of available values
079     * @return The number of available values
080     */
081    long getN();
082
083    /**
084     * Returns an array whose i<sup>th</sup> entry is the
085     * geometric mean of the i<sup>th</sup> entries of the arrays
086     * that correspond to each multivariate sample
087     *
088     * @return the array of component geometric means
089     */
090    double[] getGeometricMean();
091
092    /**
093     * Returns an array whose i<sup>th</sup> entry is the
094     * sum of the i<sup>th</sup> entries of the arrays
095     * that correspond to each multivariate sample
096     *
097     * @return the array of component sums
098     */
099    double[] getSum();
100
101    /**
102     * Returns an array whose i<sup>th</sup> entry is the
103     * sum of squares of the i<sup>th</sup> entries of the arrays
104     * that correspond to each multivariate sample
105     *
106     * @return the array of component sums of squares
107     */
108    double[] getSumSq();
109
110    /**
111     * Returns an array whose i<sup>th</sup> entry is the
112     * sum of logs of the i<sup>th</sup> entries of the arrays
113     * that correspond to each multivariate sample
114     *
115     * @return the array of component log sums
116     */
117    double[] getSumLog();
118
119}