Skip to content

Dynamic Time Warping single header library for C++

License

Notifications You must be signed in to change notification settings

Bo-Zhang1995/DTW_cpp

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Dynamic Time Warping single header library for C++

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 84.1%
  • C 12.4%
  • Shell 3.5%