diff --git a/experimental/Intersection/QuadraticUtilities.cpp b/experimental/Intersection/QuadraticUtilities.cpp
index 4b695df..cc15bc1 100644
--- a/experimental/Intersection/QuadraticUtilities.cpp
+++ b/experimental/Intersection/QuadraticUtilities.cpp
@@ -1,6 +1,19 @@
 #include "QuadraticUtilities.h"
 #include <math.h>
 
+/*
+
+Numeric Solutions (5.6) suggests to solve the quadratic by computing
+
+       Q = -1/2(B + sgn(B)Sqrt(B^2 - 4 A C))
+
+and using the roots
+
+      t1 = Q / A
+      t2 = C / Q
+      
+*/
+
 int quadraticRoots(double A, double B, double C, double t[2]) {
     B *= 2;
     double square = B * B - 4 * A * C;
@@ -9,19 +22,24 @@
     }
     double squareRt = sqrt(square);
     double Q = (B + (B < 0 ? -squareRt : squareRt)) / -2;
-    double ratio;
     int foundRoots = 0;
-    if ((Q <= A) ^ (Q < 0)) {
-        ratio = Q / A;
-        if (!isnan(ratio)) {
-            t[foundRoots++] = ratio;
+    double ratio = Q / A;
+    if (ratio > -FLT_EPSILON && ratio < 1 + FLT_EPSILON) {
+        if (ratio < FLT_EPSILON) {
+            ratio = 0;
+        } else if (ratio > 1 - FLT_EPSILON) {
+            ratio = 1;
         }
+        t[foundRoots++] = ratio;
     }
-    if ((C <= Q) ^ (C < 0)) {
-        ratio = C / Q;
-        if (!isnan(ratio)) {
-            t[foundRoots++] = ratio;
+    ratio = C / Q;
+    if (ratio > -FLT_EPSILON && ratio < 1 + FLT_EPSILON) {
+        if (ratio < FLT_EPSILON) {
+            ratio = 0;
+        } else if (ratio > 1 - FLT_EPSILON) {
+            ratio = 1;
         }
+        t[foundRoots++] = ratio;
     }
     return foundRoots;
 }
