hgeometry-point
Copyright(C) Frank Staals
Licensesee the LICENSE file
MaintainerFrank Staals
Safe HaskellNone
LanguageGHC2024

HGeometry.Point.EuclideanDistance

Description

Points that have to do with Euclidean distances between \(d\)-dimensional points.

Synopsis

Documentation

cmpByDistanceTo :: forall r point (d :: Nat) center. (Ord r, Num r, Point_ point d r, Point_ center d r, Metric_ (Vector d r) d r) => center -> point -> point -> Ordering Source #

Compare two points by their distance to the first argument

squaredEuclideanDist :: forall r point (d :: Nat) point'. (Num r, Point_ point d r, Point_ point' d r, Metric_ (Vector d r) d r) => point -> point' -> r Source #

Squared Euclidean distance between two points

euclideanDist :: forall r point (d :: Nat). (Radical r, Point_ point d r, Metric_ (Vector d r) d r) => point -> point -> r Source #

Euclidean distance between two points

class Metric_ (Vector (Dimension g) (NumType g)) (Dimension g) (NumType g) => HasSquaredEuclideanDistance g where Source #

Types for which we can compute the squared Euclidean distance.

Minimal complete definition

pointClosestToWithDistance | pointClosestTo

Methods

squaredEuclideanDistTo :: forall r (d :: Nat) point. (r ~ NumType g, d ~ Dimension g, Num r, Point_ point d r) => point -> g -> r Source #

Given a point q and a geometry g, the squared Euclidean distance between q and g.

pointClosestTo :: forall r (d :: Nat) point. (r ~ NumType g, d ~ Dimension g, Num r, Point_ point d r) => point -> g -> Point d r Source #

Given q and g, computes the point p in g closest to q according to the Squared Euclidean distance.

pointClosestToWithDistance :: forall r (d :: Nat) point. (r ~ NumType g, d ~ Dimension g, Num r, Point_ point d r) => point -> g -> (Point d r, r) Source #

Given q and g, computes the point p in g closest to q according to the Squared Euclidean distance. Returns both the point and the distance realized by this point.

Instances

Instances details
(Vector_ v d r, Metric_ (Vector d r) d r) => HasSquaredEuclideanDistance (PointF v) Source # 
Instance details

Defined in HGeometry.Point.EuclideanDistance

Methods

squaredEuclideanDistTo :: forall r0 (d0 :: Nat) point. (r0 ~ NumType (PointF v), d0 ~ Dimension (PointF v), Num r0, Point_ point d0 r0) => point -> PointF v -> r0 Source #

pointClosestTo :: forall r0 (d0 :: Nat) point. (r0 ~ NumType (PointF v), d0 ~ Dimension (PointF v), Num r0, Point_ point d0 r0) => point -> PointF v -> Point d0 r0 Source #

pointClosestToWithDistance :: forall r0 (d0 :: Nat) point. (r0 ~ NumType (PointF v), d0 ~ Dimension (PointF v), Num r0, Point_ point d0 r0) => point -> PointF v -> (Point d0 r0, r0) Source #

HasSquaredEuclideanDistance p => HasSquaredEuclideanDistance (p :+ extra) Source # 
Instance details

Defined in HGeometry.Point.EuclideanDistance

Methods

squaredEuclideanDistTo :: forall r (d :: Nat) point. (r ~ NumType (p :+ extra), d ~ Dimension (p :+ extra), Num r, Point_ point d r) => point -> (p :+ extra) -> r Source #

pointClosestTo :: forall r (d :: Nat) point. (r ~ NumType (p :+ extra), d ~ Dimension (p :+ extra), Num r, Point_ point d r) => point -> (p :+ extra) -> Point d r Source #

pointClosestToWithDistance :: forall r (d :: Nat) point. (r ~ NumType (p :+ extra), d ~ Dimension (p :+ extra), Num r, Point_ point d r) => point -> (p :+ extra) -> (Point d r, r) Source #