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 */
17package org.apache.commons.math.stat.descriptive;
18
19import org.apache.commons.math.linear.RealMatrix;
20
21/**
22 *  Reporting interface for basic multivariate statistics.
23 *
24 * @since 1.2
25 * @version $Revision: 811786 $ $Date: 2009-09-06 11:36:08 +0200 (dim. 06 sept. 2009) $
26 */
27public interface StatisticalMultivariateSummary {
28
29    /**
30     * Returns the dimension of the data
31     * @return The dimension of the data
32     */
33    int getDimension();
34
35    /**
36     * Returns an array whose i<sup>th</sup> entry is the
37     * mean of the i<sup>th</sup> entries of the arrays
38     * that correspond to each multivariate sample
39     *
40     * @return the array of component means
41     */
42    double[] getMean();
43
44    /**
45     * Returns the covariance of the available values.
46     * @return The covariance, null if no multivariate sample
47     * have been added or a zeroed matrix for a single value set.
48     */
49    RealMatrix getCovariance();
50
51    /**
52     * Returns an array whose i<sup>th</sup> entry is the
53     * standard deviation of the i<sup>th</sup> entries of the arrays
54     * that correspond to each multivariate sample
55     *
56     * @return the array of component standard deviations
57     */
58    double[] getStandardDeviation();
59
60    /**
61     * Returns an array whose i<sup>th</sup> entry is the
62     * maximum of the i<sup>th</sup> entries of the arrays
63     * that correspond to each multivariate sample
64     *
65     * @return the array of component maxima
66     */
67    double[] getMax();
68
69    /**
70     * Returns an array whose i<sup>th</sup> entry is the
71     * minimum of the i<sup>th</sup> entries of the arrays
72     * that correspond to each multivariate sample
73     *
74     * @return the array of component minima
75     */
76    double[] getMin();
77
78    /**
79     * Returns the number of available values
80     * @return The number of available values
81     */
82    long getN();
83
84    /**
85     * Returns an array whose i<sup>th</sup> entry is the
86     * geometric mean of the i<sup>th</sup> entries of the arrays
87     * that correspond to each multivariate sample
88     *
89     * @return the array of component geometric means
90     */
91    double[] getGeometricMean();
92
93    /**
94     * Returns an array whose i<sup>th</sup> entry is the
95     * sum of the i<sup>th</sup> entries of the arrays
96     * that correspond to each multivariate sample
97     *
98     * @return the array of component sums
99     */
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}
121