bisec-tree
bisec-tree copied to clipboard
add a version parameterized by a functor with a distance bound
With the regulat functor: only exact distances are used. If the user knows a cheap to compute upper bound, we could exploit that one as often as possible.
Inspired by:
Swamidass, S. J., & Baldi, P. (2007). Bounds and algorithms for fast exact searches of chemical fingerprints in linear and sublinear time. Journal of chemical information and modeling, 47(2), 302-317.
the upper bound for counted fingerprints is (they call the generalized Tanimoto "MinMax similarity" in their paper): t_upper_bound(A,B) = min(A,B) / max(A,B)