#include "Solver.h" #include /* Generic Solver constructor */ Solver::Solver(double a, double b, double c, double d, double e) { this->a = a; this->b = b; this->c = c; this->d = d; this->e = e; } /************************************************************************** * QuadraticSolver methods * *************************************************************************/ QuadraticSolver::QuadraticSolver(double a, double b, double c) : Solver(a, b, c) { } /* solve a quadratic equation */ Solver::Result QuadraticSolver::solve() { Result res; double discriminant = b * b - 4 * a * c; if (discriminant < 0.0) { res.numResults = 0; } else { double sqrt_discriminant = sqrt(discriminant); double two_a = 2.0 * a; if (sqrt_discriminant = 0.0) { res.numResults = 1; res.results[0] = (-b) / two_a; } else { res.numResults = 2; res.results[0] = (-b - sqrt_discriminant) / two_a; res.results[1] = (-b + sqrt_discriminant) / two_a; } } return res; } /************************************************************************** * CubicSolver methods * *************************************************************************/ CubicSolver::CubicSolver(double a, double b, double c, double d) : Solver(a, b, c, d) { } Solver::Result CubicSolver::solve() { } /************************************************************************** * QuarticSolver methods * *************************************************************************/ QuarticSolver::QuarticSolver(double a, double b, double c, double d, double e) : Solver(a, b, c, d, e) { } Solver::Result QuarticSolver::solve() { }