void backward_fill(Iterator it, int row, int first, int last){
		value_type acc = m_traits.default_value();
		--it;
		for(int i = first - 1; i >= last; --i, --it){
			acc = m_traits(*it, acc);
			m_table[row][i] = acc;
		}
	}
	void forward_fill(Iterator it, int row, int first, int last){
		value_type acc = m_traits.default_value();
		m_table[row][first] = acc;
		for(int i = first + 1; i < last; ++i, ++it){
			acc = m_traits(acc, *it);
			m_table[row][i] = acc;
		}
	}