#include #include //From http://www.richelbilderbeek.nl/CppSolveQuadratic.htm const std::vector SolveQuadratic(const double a, const double b, const double c) { if (a == 0.0) { if (b == 0.0) return std::vector(1,0.0); else return std::vector(1,c/b); } const double d = (b * b) - (4.0 * a * c); if (d < 0.0) return std::vector(); if (d == 0.0) return std::vector(1,-b/(2.0*a)); const double rD = std::sqrt(d); std::vector solutions; solutions.reserve(2); solutions.push_back((-b + rD)/(2.0 * a)); solutions.push_back((-b - rD)/(2.0 * a)); return solutions; }