ms

metric spaces

BSD-2-CLAUSE License

Downloads
2.1K
Stars
6
Committers
1

ms - metric spaces

A metric space is a set together with some notion of distance function which obeys four laws. See the haddock for more information.

We implement these not using a typeclass, but using a simple datatype. This avoids needing to create newtypes for every metric implementation over a given type, meaning that we gain more code re-use and an easier-to-use API.

WARNING: The triangle-inequality law does not necessarily hold in the presence of Floating a => a, which we use. This is because Double and Float both don't have arbitrary precision. However, some of our metrics, such as that of euclidean distance, require the use of the sqrt function, which requires a Floating constraint.

Usage

dist levenshtein "foo" "bar"   -- => 3.0
dist euclidean (V.fromList [3,2]) (V.fromList [2,3])  -- => 1.4142135623730951

License

BSD-2.

Package Rankings
Top 34.69% on Hackage.haskell.org
Badges
Extracted from project README
Build Status