úÎ"‹!1     NoneDR`a generic dataset is basically just an indexing function | and an indicator of the dataset size ¹this is the naive implementation of dynamic time warping no caching what so ever is taking place this should not be used and is just used as a reference for the other implementations tthis is the "standard" implementation of dynamic time warping O(N^2) is achieved by memoization of previous resultsz"standard" implementation of dynamic time warping with an additional parameter that can be used to define a search windowˆcreate a search window by projecting the path from a lower resolution to the next level as defined in the fastdtw paper (figure 6), ie:ÿŠ+-------+-------+ +---+---+---+---+ | | | | | | X | X | | | X | +---+---+---+---+ | | | | | X | X | X | +-------+-------+ -> +---+---+---+---+ | | | | X | X | X | | | X | | +---+---+---+---+ | | | | X | X | | | +-------+-------+ +---+---+---+---+cexpand the search window by a given radius (compare fastdtw paper figure 6) ie for a radius of 1:ÿŠ+---+---+---+---+ +---+---+---+---+ | | | X | X | | o | o | X | X | +---+---+---+---+ +---+---+---+---+ | | X | X | X | | o | X | X | X | +---+---+---+---+ -> +---+---+---+---+ | X | X | X | | | X | X | X | o | +---+---+---+---+ +---+---+---+---+ | X | X | | | | X | X | o | o | +---+---+---+---+ +---+---+---+---+"the "o"s mark the expanded regions Äthis is the "fast" implementation of dynamic time warping as per the authors this methods calculates a good approximate result in O(N), depending on the usecase the windowsize should be tweaked  2function that shrinks a dataset by a factor of twoBradius that the search window is expanded at each resolution level first datasetsecond datasetresult           "dtw-1.0.3.0-1EjJjxylXxDHEu8g6qXRSlData.DTWResultcostpathPathIndexDataSetItemixlendtwNaivedtwMemofastDtw$fDataSetVector$fDataSetVector0$fDataSetVector1 $fDataSet[] $fDataSetSeq $fShowResult $fReadResult $fEqResultdtwMemoWindowed projectPath expandWindowWindowvecMemo2