/***************************************************
Implementing the Quadratic Formula

Write a program that reads in the coefficients of
a quadratic polynomial, and prints out its roots.
This time, deal correctly with complex roots!!!

The quadratic formula says that the roots of a
polynomial  a x^2 + b x + c  are:
           ____________           ____________
    -b - \/ b^2 - 4 a c    -b + \/ b^2 - 4 a c
x = ------------------- ,  -------------------
            2 a                    2 a        

Remember, when b^2 - 4 a c you get imaginary roots,
and they are given by :
             ______________            ______________
    -b - i \/ -b^2 + 4 a c    -b + i \/ -b^2 + 4 a c
x = ----------------------- ,  ----------------------
              2 a                       2 a       

***************************************************/
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
  // read in the coefficients of a x^2 + b x + c
  double a,b,c;
  char s;
  cout << "Enter coefficients a, b, c: ";
  cin >> a >> s >> b >> s >> c;

  // compute the common subexpression within squareroot
  double d;
  d = b*b - 4.0*a*c;

  // THE CASE OF COMPLEX ROOTS
  if (d < 0) 
  { 
    cout << "The roots of the polynomial are ";
    cout << -b/(2.0*a) << " + "
	 <<"(" << -sqrt(-d)/(2.0*a) << ")*i";
    cout << " and ";
    cout << -b/(2.0*a) << " + "
	 << "(" << sqrt(-d)/(2.0*a) << ")*i" 
	 << endl;
  }
  //  THE CASE OF REAL ROOTS
  else
  {
    // compute x1 and x2, the two roots
    cout << "The roots of the polynomial are ";
    cout << (-b - sqrt(d))/(2.0*a) << " and ";
    cout << (-b + sqrt(d))/(2.0*a) << endl;
  }

  return 0;
}