projects
/
master-thesis.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix some approximation issues.
[master-thesis.git]
/
Parasitemia
/
ParasitemiaCore
/
Utils.fs
diff --git
a/Parasitemia/ParasitemiaCore/Utils.fs
b/Parasitemia/ParasitemiaCore/Utils.fs
index
bf245aa
..
2af692d
100644
(file)
--- a/
Parasitemia/ParasitemiaCore/Utils.fs
+++ b/
Parasitemia/ParasitemiaCore/Utils.fs
@@
-1,5
+1,7
@@
module ParasitemiaCore.Utils
module ParasitemiaCore.Utils
+open System
+
open Types
let inline roundInt v = v |> round |> int
open Types
let inline roundInt v = v |> round |> int
@@
-7,24
+9,24
@@
let inline roundInt v = v |> round |> int
let inline dprintfn fmt =
Printf.ksprintf System.Diagnostics.Debug.WriteLine fmt
let inline dprintfn fmt =
Printf.ksprintf System.Diagnostics.Debug.WriteLine fmt
-let inline lineFromTwoPoints (p1: Point
D) (p2: PointD
) : Line =
+let inline lineFromTwoPoints (p1: Point
F) (p2: PointF
) : Line =
let a = (p1.Y - p2.Y) / (p1.X - p2.X)
let b = -(p2.X * p1.Y - p1.X * p2.Y) / (p1.X - p2.X)
Line(a, b)
let a = (p1.Y - p2.Y) / (p1.X - p2.X)
let b = -(p2.X * p1.Y - p1.X * p2.Y) / (p1.X - p2.X)
Line(a, b)
-let inline pointFromTwoLines (l1: Line) (l2: Line) : Point
D
=
+let inline pointFromTwoLines (l1: Line) (l2: Line) : Point
F
=
let x = -(l1.B - l2.B) / (l1.A - l2.A)
let y = -(l2.A * l1.B - l1.A * l2.B) / (l1.A - l2.A)
let x = -(l1.B - l2.B) / (l1.A - l2.A)
let y = -(l2.A * l1.B - l1.A * l2.B) / (l1.A - l2.A)
- Point
D
(x, y)
+ Point
F
(x, y)
-let inline linePassThroughSegment (l: Line) (p1: Point
D) (p2: PointD
) : bool =
+let inline linePassThroughSegment (l: Line) (p1: Point
F) (p2: PointF
) : bool =
let p = pointFromTwoLines l (lineFromTwoPoints p1 p2)
sign (p.X - p1.X) <> sign (p.X - p2.X)
let p = pointFromTwoLines l (lineFromTwoPoints p1 p2)
sign (p.X - p1.X) <> sign (p.X - p2.X)
-let inline squaredDistanceTwoPoints (p1: Point
D) (p2: PointD
) =
+let inline squaredDistanceTwoPoints (p1: Point
F) (p2: PointF
) =
(p1.X - p2.X) ** 2.f + (p1.Y - p2.Y) ** 2.f
(p1.X - p2.X) ** 2.f + (p1.Y - p2.Y) ** 2.f
-let inline distanceTwoPoints (p1: Point
D) (p2: PointD
) =
+let inline distanceTwoPoints (p1: Point
F) (p2: PointF
) =
squaredDistanceTwoPoints p1 p2 |> sqrt
let countCells (cells: Cell list) : int * int =
squaredDistanceTwoPoints p1 p2 |> sqrt
let countCells (cells: Cell list) : int * int =