A small Dynamic Time Warping (DTW) single header library for C++
DTW.hpp computes the DTW distance between two c++ vectors
- Supports N-Dimensional data
bcan have different number of data points
- Compute the distance using any
DTW::dtw_distance_only(a, b, p);function which returns only the DTW distance
DTW::DTW MyDtw (a, b, p);class contains the pairwise distance vector, DTW distance vector, DTW distance, and a function to calculate the DTW alignment path
What is Dynamic Time Warping ?
Dynamic Time Warping (DTW) is an algorithm to measure the similarity between two temporal curves. The wiki page on DTW is a great place to learn more.
Consider the above Numerical and Experimental curves in 2D space. DTW can be used to measure the similarity between the two curves. A DTW distance of zero would mean that the warped curves match exactly.
The order of data points matters. Each curve is a sequence of data points, with a known beginning and ending.
Check out the two examples.
Run run_tests.sh in a linux environment.
- travisci tests using Ubuntu Xenial and g++ version 5.4.0
- also tested on openSUSE Leap 15.1 and g++ version 7.4.0
- C++11 standard or later