             return abs(denominator) > 0.0000001 ? numerator / denominator : 0
         }
         
+        /// - TODO: Refactor
         func tAndCompareValue(start: Double, end: Double, for extremum: Extremum)
             -> (t: Double, value: Double)
         {

            return compare(end, start) ? (t: 1, value: end) : (t: 0, value: start)
        }
        
        func isValid(t: Double, given value: Double, on axis: Axis, for extremum: Extremum)
            -> Bool
        {

        func ys(x: Double) -> Set<Double> {
            return quadratic(a.x, b.x, c.x - x)
        }
    }
    
    private let solver: Solver
