summaryrefslogtreecommitdiff
path: root/vendor/thecodingmachine/safe/deprecated/stats.php
blob: aca98485911559f6a06e4e53d80291260666c8c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?php

namespace Safe;

use Safe\Exceptions\StatsException;

/**
 * Returns the covariance of a and b.
 *
 * @param array $a The first array
 * @param array $b The second array
 * @return float Returns the covariance of a and b.
 * @throws StatsException
 *
 */
function stats_covariance(array $a, array $b): float
{
    error_clear_last();
    $result = \stats_covariance($a, $b);
    if ($result === false) {
        throw StatsException::createFromPhpError();
    }
    return $result;
}


/**
 * Returns the standard deviation of the values in a.
 *
 * @param array $a The array of data to find the standard deviation for. Note that all
 * values of the array will be cast to float.
 * @param bool $sample Indicates if a represents a sample of the
 * population; defaults to FALSE.
 * @return float Returns the standard deviation on success; FALSE on failure.
 * @throws StatsException
 *
 */
function stats_standard_deviation(array $a, bool $sample = false): float
{
    error_clear_last();
    $result = \stats_standard_deviation($a, $sample);
    if ($result === false) {
        throw StatsException::createFromPhpError();
    }
    return $result;
}


/**
 * Returns the Pearson correlation coefficient between arr1 and arr2.
 *
 * @param array $arr1 The first array
 * @param array $arr2 The second array
 * @return float Returns the Pearson correlation coefficient between arr1 and arr2.
 * @throws StatsException
 *
 */
function stats_stat_correlation(array $arr1, array $arr2): float
{
    error_clear_last();
    $result = \stats_stat_correlation($arr1, $arr2);
    if ($result === false) {
        throw StatsException::createFromPhpError();
    }
    return $result;
}


/**
 * Returns the inner product of arr1 and arr2.
 *
 * @param array $arr1 The first array
 * @param array $arr2 The second array
 * @return float Returns the inner product of arr1 and arr2.
 * @throws StatsException
 *
 */
function stats_stat_innerproduct(array $arr1, array $arr2): float
{
    error_clear_last();
    $result = \stats_stat_innerproduct($arr1, $arr2);
    if ($result === false) {
        throw StatsException::createFromPhpError();
    }
    return $result;
}


/**
 * Returns the variance of the values in a.
 *
 * @param array $a The array of data to find the standard deviation for. Note that all
 * values of the array will be cast to float.
 * @param bool $sample Indicates if a represents a sample of the
 * population; defaults to FALSE.
 * @return float Returns the variance on success; FALSE on failure.
 * @throws StatsException
 *
 */
function stats_variance(array $a, bool $sample = false): float
{
    error_clear_last();
    $result = \stats_variance($a, $sample);
    if ($result === false) {
        throw StatsException::createFromPhpError();
    }
    return $result;
}