Will not work if the equation degenerates to linear (a == 0)