Use float32 to reduce memory footprint.
[master-thesis.git] / Parasitemia / Parasitemia / Utils.fs
index d6fa2f0..b30e9ac 100644 (file)
@@ -4,7 +4,7 @@ open System.Diagnostics
 
 open Types
 
-let roundInt = int << round
+let inline roundInt v = v |> round |> int
 
 let inline dprintfn fmt =
     Printf.ksprintf System.Diagnostics.Debug.WriteLine fmt
@@ -30,8 +30,12 @@ let inline pointFromTwoLines (l1: Line) (l2: Line) : PointD =
     let y = -(l2.A * l1.B - l1.A * l2.B) / (l1.A - l2.A)
     PointD(x, y)
 
+let inline linePassThroughSegment (l: Line) (p1: PointD) (p2: PointD) : bool =
+    let p = pointFromTwoLines l (lineFromTwoPoints p1 p2)
+    sign (p.X - p1.X) <> sign (p.X - p2.X)
+
 let inline squaredDistanceTwoPoints (p1: PointD) (p2: PointD) =
-    (p1.X - p2.X) ** 2.0 + (p1.Y - p2.Y) ** 2.0
+    (p1.X - p2.X) ** 2.f + (p1.Y - p2.Y) ** 2.f
 
 let distanceTwoPoints (p1: PointD) (p2: PointD) =
     squaredDistanceTwoPoints p1 p2 |> sqrt