#ifndef TRIDIAGONAL_H
#define TRIDIAGONAL_H
#include<iostream>
#include<vector>


using namespace std;


class Tridiagonal {

private:

	vector<double> subDiagonal;
	vector<double> diagonal;
	vector<double> superDiagonal;
	vector<double> lValues;
	vector<double> uValues;
	

public:

	Tridiagonal();
	Tridiagonal(const Tridiagonal&);
	Tridiagonal(vector<double>,vector<double>,vector<double>);

	void LUDecomposition();

	void setSubDiagonal(vector<double> &);
	void setDiagonal(vector<double> &);
	void setSuperDiagonal(vector<double> &);
	vector<double> getSubDiagonal()const;
	vector<double> getDiagonal()const;
	vector<double> getSuperDiagonal()const;
	vector<double> getlValues()const;
	vector<double> getuValues()const;
	
	vector<double> solver(vector<double>);


};

#endif