Changes made over the original crate:
- Update Rust edition from 2018 to 2021
- Merge
ag/updates
branch into master - Heavier use of
#[inline]
- Use
codegen = 1
,lto = true
andopt-level = 3
incargo.toml
for release version - Use
panic = abort
(plays nicely with inlining and making more code fit in instructions cache) - A few other small changes
This crate provides a fast implementation of agglomerative hierarchical clustering.
This library is released under the MIT license.
The ideas and implementation in this crate are heavily based on the work of
Daniel Müllner, and in particular, his 2011 paper,
Modern hierarchical, agglomerative clustering algorithms.
Parts of the implementation have also been inspired by his C++
library, fastcluster
.
Müllner's work, in turn, is based on the hierarchical clustering facilities
provided by MATLAB and
SciPy.
The runtime performance of this library is on par with Müllner's fastcluster
implementation.
For a more detailed example of how to use hierarchical clustering, see the example in the API documentation.
Add this to your Cargo.toml
:
[dependencies]
kodama = { git = "https://github.com/SubconsciousCompute/kodama" }
and this to your crate root:
use kodama;
This repository includes
kodama-capi
,
which provides a C interface to hierarchical clustering.
This repository also includes Go FFI bindings via cgo to the aforementioned C API. Documentation for the Go library can be found at godoc.org/github.com/diffeo/kodama/go-kodama.