curve_similarities

Crates.iocurve_similarities
lib.rscurve_similarities
version0.2.0
created_at2024-08-24 09:38:57.115392+00
updated_at2025-09-20 09:15:15.474852+00
descriptionCalculation of curve similarities for nd-array
homepagehttps://github.com/nucccc/curve_similarities
repositoryhttps://github.com/nucccc/curve_similarities
max_upload_size
id1350147
size38,094
(nucccc)

documentation

https://docs.rs/curve_similarities

README

curve_similarities

Implementation of calculations for curves similarities as in python package similarity_measures.

The following distances are currently implemented:

  • Dynamic Time Warping, from: Senin, P., 2008. Dynamic time warping algorithm review. Information and Computer Science Department University of Hawaii at Manoa Honolulu, USA, 855, pp.1-23 PDF
  • Frechet distance, from: Thomas Eiter and Heikki Mannila, Computing discrete Frechet distance. Technical report, 1994.
  • Curve length measure, from: A Andrade-Campos, R De-Carvalho, and R A F Valente. Novel criteria for determination of material model parameters. International Journal of Mechanical Sciences, 54(1):294-305, 2012. ISSN 0020-7403. DOI URL
  • Area between two curves, from: Jekel, C. F., Venter, G., Venter, M. P., Stander, N., & Haftka, R. T. (2018). Similarity measures for identifying material parameters from hysteresis loops using inverse analysis. International Journal of Material Forming. DOI

The library requires in input a bidimensional array of the ndarray rust library.

Examples

use curve_similarities::{frechet, DistMetric};
use ndarray::array;


fn main() {
    let fr = frechet(
        &array![[1.0], [1.0], [3.0]],
        &array![[2.0], [4.0]],
        DistMetric::Euclidean
    ).unwrap();

    println!("Frechet distance between curves is {}", fr);
}

Commit count: 21

cargo fmt