#ifndef POLYNOMIAL_H
#define POLYNOMIAL_H
#include <iostream>
#include <vector>
using namespace std;

class Polynomial {
	private: 
		vector<double> coeffs; //coeffecients
		void  normalize();

	public:
		//constructors
		Polynomial(){}
		Polynomial(const vector<double>& v);

		//functions
		int getDegree() const;

		double getCoefficient(int i) const;
		vector<double> getCoefficients() const;
		void setCoefficient(int degree, double value);
		void clear();
		bool isZero() const;

	//these Function are not member functions. they are simple functions
	//but each has access to the private member of the function
	friend Polynomial operator+(const Polynomial& p1, const Polynomial& p2)
	friend Polynomial operator-(const Polynomial& p1, const Polynomial& p2)
	friend Polynomila operator-(const Polynomial& p)
	friend Polynomial operator*(const Polynomial& p1, const Polynomial& p2)
	friend bool operator==(const Polynomial& p1, const Polynomial& p2)
	friend ostream& operator<<(ostream& out, const Polynomial& p);
	friend istream& operator>>(istream& in, Polynomial& p);


};


//Polynomial operator+(const Polynomial& p1, const Polynomial& p2);
//Polynomial operator-(const Polynomial& p1, const Polynomial& p2);
//Polynomial operator-(const Polynomial& p);



#endif
