#include "QuadraticUtilities.h" | |
int quadraticRoots(double A, double B, double C, double t[2]) { | |
B *= 2; | |
double square = B * B - 4 * A * C; | |
if (square < 0) { | |
return 0; | |
} | |
double squareRt = sqrt(square); | |
double Q = (B + (B < 0 ? -squareRt : squareRt)) / -2; | |
int foundRoots = 0; | |
if ((Q <= A) ^ (Q < 0)) { | |
t[foundRoots++] = Q / A; | |
} | |
if ((C <= Q) ^ (C < 0)) { | |
t[foundRoots++] = C / Q; | |
} | |
return foundRoots; | |
} | |