Passed
Push — static-analysis ( fbc3f8...967946 )
by Matias
05:46
created

Euclidean   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 27
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 1 Features 0
Metric Value
eloc 6
c 1
b 1
f 0
dl 0
loc 27
ccs 0
cts 6
cp 0
rs 10
wmc 2

1 Method

Rating   Name   Duplication   Size   Complexity  
A distance() 0 8 2
1
<?php
2
3
namespace OCA\FaceRecognition\Helper;
4
5
class Euclidean
6
{
7
    /**
8
     * Euclidean distance metric between two vectors
9
     *
10
     * The euclidean distance between two vectors (vector1, vector2) is defined as
11
     * D = SQRT(SUM((vector1(i) - vector2(i))^2))  (i = 0..k)
12
     *
13
     * Refs:
14
     * - http://mathworld.wolfram.com/EuclideanMetric.html
15
     * - http://en.wikipedia.org/wiki/Euclidean_distance
16
     *
17
     * @param array $vector1 first vector
18
     * @param array $vector2 second vector
19
     *
20
     * @return double The Euclidean distance between vector1 and vector2
21
     *
22
     */
23
24
    public function distance($vector1, $vector2)
25
    {
26
        $n = count($vector1);
27
        $sum = 0;
28
        for ($i = 0; $i < $n; $i++) {
29
            $sum += ($vector1[$i] - $vector2[$i]) * ($vector1[$i] - $vector2[$i]);
30
        }
31
        return sqrt($sum);
32
    }
33
}
34