A small Dynamic Time Warping (DTW) single header library for C++
DTW.hpp computes the DTW distance between two c++ vectors a
and b
!
- Supports N-Dimensional data
a
andb
can have different number of data points- Compute the distance using any
p
-norm DTW::dtw_distance_only(a, b, p);
function which returns only the DTW distanceDTW::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
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