{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,8]],"date-time":"2026-04-08T13:20:26Z","timestamp":1775654426238,"version":"3.50.1"},"reference-count":28,"publisher":"Association for Computing Machinery (ACM)","issue":"1","content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Math. Softw."],"published-print":{"date-parts":[[2026,3,31]]},"abstract":"<jats:p>\n                    Time series distance measures are fundamental in numerous domains, including finance, healthcare, and signal processing, enabling crucial tasks such as pattern recognition, anomaly detection, and predictive modeling. However, many applications require computing distances between all pairs of time series in large datasets, a computationally intensive task that can become a significant bottleneck in analysis pipelines. The\n                    <jats:italic toggle=\"yes\">tsdistances<\/jats:italic>\n                    library is a high-performance Python package designed for computing distances between time series, with GPU support for accelerated processing. This article introduces\n                    <jats:italic toggle=\"yes\">tsdistances<\/jats:italic>\n                    and its key features, focusing on the implementation of elastic distance algorithms and their optimizations. We present both CPU and GPU implementations, highlighting the use of dynamic programming techniques and GPU-specific optimizations such as warp-based parallelization. The performance of\n                    <jats:italic toggle=\"yes\">tsdistances<\/jats:italic>\n                    is compared with existing alternatives in the literature, demonstrating significant speed improvements, especially for large-scale time series analysis tasks.\n                  <\/jats:p>","DOI":"10.1145\/3802579","type":"journal-article","created":{"date-parts":[[2026,3,17]],"date-time":"2026-03-17T20:18:04Z","timestamp":1773778684000},"page":"1-21","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["Algorithm 1061:\n                    <i>tsdistances<\/i>\n                    : A High-Performance Python Library for Time Series Distances with GPU Support"],"prefix":"10.1145","volume":"52","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-5855-2295","authenticated-orcid":false,"given":"Alberto","family":"Azzari","sequence":"first","affiliation":[{"name":"Computer Science, University of Verona, Verona, Italy"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-6973-995X","authenticated-orcid":false,"given":"Andrea","family":"Cracco","sequence":"additional","affiliation":[{"name":"Computer Science, University of Verona, Verona, Italy"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2078-6835","authenticated-orcid":false,"given":"Francesco","family":"Masillo","sequence":"additional","affiliation":[{"name":"Computer Science, Dortmund Technical University, Dortmund, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2612-1519","authenticated-orcid":false,"given":"Pietro","family":"Sala","sequence":"additional","affiliation":[{"name":"Computer Science, University of Verona, Verona, Italy"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2026,4,8]]},"reference":[{"key":"e_1_3_2_2_2","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-57301-1_5"},{"key":"e_1_3_2_3_2","unstructured":"UCR Archive. 2026. Website. Retrieved from https:\/\/www.cs.ucr.edu\/%7Eeamonn\/time_series_data_2018\/"},{"key":"e_1_3_2_4_2","doi-asserted-by":"publisher","DOI":"10.1109\/spire.2000.878178"},{"key":"e_1_3_2_5_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.parco.2023.103019"},{"key":"e_1_3_2_6_2","doi-asserted-by":"publisher","DOI":"10.1016\/b978-012088469-8.50070-x"},{"key":"e_1_3_2_7_2","doi-asserted-by":"publisher","DOI":"10.1021\/ac802041e"},{"key":"e_1_3_2_8_2","doi-asserted-by":"publisher","DOI":"10.1109\/jas.2019.1911747"},{"key":"e_1_3_2_9_2","doi-asserted-by":"publisher","DOI":"10.14778\/1454159.1454226"},{"key":"e_1_3_2_10_2","doi-asserted-by":"publisher","DOI":"10.1145\/2379776.2379788"},{"key":"e_1_3_2_11_2","doi-asserted-by":"publisher","DOI":"10.1109\/icdm.2018.00119"},{"key":"e_1_3_2_12_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.patcog.2023.109333"},{"key":"e_1_3_2_13_2","doi-asserted-by":"publisher","unstructured":"Richard Hughey. 1996. Parallel hardware for sequence comparison and alignment. Bioinformatics 12 6 (1996) 473\u2013479. DOI: 10.1093\/bioinformatics\/12.6.473","DOI":"10.1093\/bioinformatics\/12.6.473"},{"key":"e_1_3_2_14_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.patcog.2010.09.022"},{"key":"e_1_3_2_15_2","doi-asserted-by":"publisher","DOI":"10.1137\/1.9781611972719.1"},{"key":"e_1_3_2_16_2","doi-asserted-by":"publisher","DOI":"10.1109\/tpami.2008.76"},{"key":"e_1_3_2_17_2","doi-asserted-by":"publisher","DOI":"10.5281\/zenodo.5901139"},{"key":"e_1_3_2_18_2","doi-asserted-by":"publisher","DOI":"10.1002\/widm.1119"},{"key":"e_1_3_2_19_2","doi-asserted-by":"publisher","DOI":"10.1109\/icde65448.2025.00229"},{"key":"e_1_3_2_20_2","doi-asserted-by":"publisher","DOI":"10.1109\/tassp.1978.1163055"},{"key":"e_1_3_2_21_2","doi-asserted-by":"publisher","DOI":"10.3390\/e26040311"},{"key":"e_1_3_2_22_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-57675-2_37"},{"key":"e_1_3_2_23_2","doi-asserted-by":"publisher","DOI":"10.1137\/1.9781611974348.94"},{"key":"e_1_3_2_24_2","doi-asserted-by":"publisher","DOI":"10.1109\/tkde.2012.88"},{"key":"e_1_3_2_25_2","unstructured":"tsdistances. 2026. GitHub Repository. Retrieved from https:\/\/github.com\/irazza\/tsdistances"},{"key":"e_1_3_2_26_2","doi-asserted-by":"publisher","DOI":"10.23919\/eusipco.2019.8903102"},{"key":"e_1_3_2_27_2","doi-asserted-by":"publisher","DOI":"10.54254\/2754-1169\/92\/20231279"},{"key":"e_1_3_2_28_2","doi-asserted-by":"publisher","DOI":"10.1007\/s10618-012-0250-5"},{"key":"e_1_3_2_29_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.patcog.2005.01.025"}],"container-title":["ACM Transactions on Mathematical Software"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3802579","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,4,8]],"date-time":"2026-04-08T12:32:01Z","timestamp":1775651521000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3802579"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2026,3,31]]},"references-count":28,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2026,3,31]]}},"alternative-id":["10.1145\/3802579"],"URL":"https:\/\/doi.org\/10.1145\/3802579","relation":{},"ISSN":["0098-3500","1557-7295"],"issn-type":[{"value":"0098-3500","type":"print"},{"value":"1557-7295","type":"electronic"}],"subject":[],"published":{"date-parts":[[2026,3,31]]},"assertion":[{"value":"2025-02-06","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2026-03-09","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2026-04-08","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}