Skip to content

Latest commit

 

History

History
38 lines (23 loc) · 1.9 KB

README.md

File metadata and controls

38 lines (23 loc) · 1.9 KB

DTW_cpp

A small Dynamic Time Warping (DTW) single header library for C++

DTW.hpp computes the DTW distance between two c++ vectors a and b!

Build Status Coverage Status

Features

  • Supports N-Dimensional data
  • a and bcan 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 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.

Image of two different curves

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.

Examples

Check out the two examples.

Tests

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

Requirements

  • C++11 standard or later