// quadFunctions.cc  P. Conrad CISC181 04/06/06 


#include <iostream>
#include <cstdlib> // for exit fn prototype
#include "quadFunctions.h"

using std::endl;

double discriminant(double a, double b, double c) 
{
  
  double num = b*b - 4*a*c;
  
  //The reason I check for num < 0 is because I
  //am not using complex numbers yet, when the complex
  //class is defined, this will be changed.
  
  if(num < 0) 
    {
      std::cerr <<"This function has no real roots.\n";
      exit(1);
    }
  else
    return(num);
}

double quadSolve1(double a, double b, double c)
{
  double numerator = -b + sqrt(discriminant(a,b,c));
  if(a == 0.0) 
    {
      std::cerr <<"You were about to divide by zero!" <<endl;
      exit(1);
    }
  
  return numerator / (2.0 * a);
}


double quadSolve2(double a, double b, double c)
{
  double numerator = -b - sqrt(discriminant(a,b,c));

  if(a == 0.0) 
    {
      std::cerr <<"You were about to divide by zero!" <<endl;
      exit(1);
    }

  return numerator / (2.0 * a);
}
