-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathdistances.cpp
More file actions
41 lines (35 loc) · 1.28 KB
/
distances.cpp
File metadata and controls
41 lines (35 loc) · 1.28 KB
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
#include "../src/distances.h"
#/**
* @file distances.cpp
* @brief Example: distance metrics between position vectors
*
* Computes Euclidean, Manhattan, edit, Hamming and weighted transformation distances
* between example vectors and prints intermediate transformation steps.
*
* @example
*/
#include "../src/distances.h"
int main() {
PositionVector a = PositionVector({0, 4, 7, 11});
PositionVector b = PositionVector({7, 11, 14, 17});
cout << "Vector A:" << endl;
a.printData();
cout << "Vector B:" << endl;
b.printData();
double euc = euclideanDistance(a, b);
cout << "Euclidean Distance: " << euc << endl;
int man = manhattanDistance(a, b);
cout << "Manhattan Distance: " << man << endl;
int ed = editDistance(a, b);
cout << "Edit Distance: " << ed << endl;
vector<pair<int, pair<int, int>>> steps = transformationSteps(a.data, b.data);
cout << "Transformation Steps:" << endl;
printSteps(steps);
int wtd = weightedTransformationDistance(a, b);
cout << "Weighted Transformation Distance: " << wtd << endl;
int diff = difference(a, b);
cout << "Difference: " << diff << endl;
int ham = hammingDistance(a, b);
cout << "Hamming Distance: " << ham << endl;
return 0;
}