/*!
	 * This functions compute the iteration of the Chebyshev vectors
	 * following the rule:\n
	 * T_{n}(x)= 2x T_{n-1}(x) - T_{n-2}(x)
	 * It takes as parameters:\n
	 * The lattice vector used to extract the regular and irregular part of the Hamiltonian\n
	 * The set id of of the set  where the iteration will be performed
	 * The Chebyshev truncation order\n
	 * Initialize the truncation order in a default value 100 \n
	 */
	inline
	void ChebyshevIteration( Lattice& lat, const my::integer set_id, const my::integer n )
	{
		switch(n)
		{
		case 0:
		{
			lat.ApplyHamiltonian(MemSep(), kpm::ONE, ChebVec(set_id,1),kpm::ZERO, ChebVec(set_id,2));
		} break ;
		default:
		{
			lat.ApplyHamiltonian(MemSep(), kpm::TWO, ChebVec(set_id,2),kpm::NONE, ChebVec(set_id,1));
			Swap(set_id,1,2);
		} break;
		}

	}