#ifndef _LINEARALEGEBRA_HPP_
#define _LINEARALEGEBRA_HPP_

#include "Vector.h"

namespace numeric {


Matrix identity(unsigned n);

Matrix eigen( const Matrix & m,
						  double * eigenvalues,
							double eps = 1e-6,
							unsigned itermax=500);

Matrix decqr( Matrix & a);

Vector solveUpperLinSys(const Matrix & a, const Vector & c,double eps=1e-12);

Matrix operator*( const Matrix & a, const Matrix & b);
Vector operator*( const Matrix & a, const Vector & b);

std::ostream & operator<<( std::ostream & flux, const Vector & v);

}

#endif
