dtw alternatives and similar packages
Based on the "Algorithms" category.
Alternatively, view dtw alternatives based on common mentions on social networks and blogs.
-
arithmoi
Number theory: primes, arithmetic functions, modular computations, special sequences -
imj-animation
Monorepo for a multi-player game engine, and game examples -
search-algorithms
Haskell library containing common graph search algorithms -
lca
Improves the known complexity of online lowest common ancestor search to O(log h) persistently, and without preprocessing -
integer-logarithms
Integer logarithms, originally split from arithmoi package -
incremental-sat-solver
Simple, Incremental SAT Solving as a Haskell Library -
treeviz
Haskell library for visualizing algorithmic decomposition of computations. -
nonlinear-optimization-ad
Wrapper of nonlinear-optimization package for using with ad and backprop packages -
infinite-search
An implementation of Martin Escardo's exhaustively searchable sets in Haskell. -
edit-distance-vector
Calculate edit scripts and distances between Vectors. -
primesieve
A collection of packages related to math, algorithms and science, in Haskell. -
graph-generators
A Haskell library for creating random Data.Graph instances using several pop -
edit-distance-linear
Levenshtein edit distance in linear memory (also turns out to be faster than C++) -
epanet-haskell
Call the EPANET toolkit via Haskell's Foreign Function Interface
Build time-series-based applications quickly and at scale.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of dtw or a related project?
Popular Comparisons
README
This module implements dynamic time warping as described on Wikipedia
Additionally 'fastDtw' is implemented as described in the paper: "FastDTW: Toward Accurate Dynamic Time Warping in Linear Time and Space" by Stan Salvador and Philip Chan.
For further information see the documentation of the Data.DTW
module.
Example
>>> -- create two sample datasets
>>> let as = [ sin x | x <- [0,0.1..pi] ]
>>> let bs = [ sin (x+0.1) | x <- [0,0.1..pi] ]
>>> -- define a cost function between two datapoints
>>> let dist x y = abs (x-y)
>>> -- define a function that will half the size of a dataset (see below)
>>> let shrink xs = case xs of (a:b:cs) -> (a+b)/2 : shrink cs; a:[] -> [a]; [] -> []
>>> -- calculate the cost with fastDtw and dtwMemo for comparison
>>> cost $ fastDtw dist shrink 2 as bs :: Float
>>> 0.19879311
>>> cost $ dtwMemo (\x y -> abs (x-y)) as bs :: Float
>>> 0.19879311