Skip to content
Dynamic Time Warping single header library for C++
C++ C Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples
include
tests
.gitignore
.travis.yml add gcov-options Aug 18, 2019
LICENSE
README.md
run_tests.sh

README.md

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
You can’t perform that action at this time.