Git Product home page Git Product logo

dtw_cpp's Introduction

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

dtw_cpp's People

Contributors

cjekel avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.