#ifndef _VECTOR_HPP_
#define _VECTOR_HPP_

#include "Matrix.h"

namespace numeric {

class Vector: private Matrix
{
 	public:
 		Vector() {}
		Vector(unsigned n):Matrix(n,1) {}
		Vector(const Vector & m):Matrix(m){}
		Vector & operator=(const Vector & m)
		{
			 Matrix::operator=( Matrix(m) );
			 return *this;
		}

		inline unsigned getDim() const { return Matrix::getDimRow(); }

		double operator()( unsigned i ) const 
		{ 
			return Matrix::operator()(i,0);
		}
		double & operator()(unsigned i)
		{
			return Matrix::operator()(i,0);
		}
    
		Vector & matProduct(const Matrix & other)
		{
			 Matrix::leftProduct(other);
			 return *this;
		}

		Matrix transpose()
		{
			return Matrix::transpose();
		}
};

}

#endif

