/*
    Copyright (C) 2012 Bartosz Broda, Jacek Bochenek, Łukasz Biłeńkij, 
    Damian Jaworski, Wojciech Mazur, Dominik Piasecki, Maciej Piasecki, 
    Radosław Ramocki
    
    This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the Free
Software Foundation; either version 3 of the License, or (at your option)
any later version.

    This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. 

    See the LICENSE and COPYING files for more details.
*/

#include "../comparator_stdheaders.h"
#include "Transformation.h"
#include "../compare/CompareFunction.h"

namespace smartcomparator
{
	namespace transformations
	{

		class LDATransformation: public Transformation
		{
		public:
			LDATransformation(Matrices::SuperMatrixPtr m, size_t num_topics,
							  size_t passes=10,std::string temp_dir = "/tmp/");

			virtual void TransformMatrix();

		private:
			size_t m_topics;
			size_t m_passes;
			Matrices::SuperMatrixPtr m_pMatrix;
			std::string m_FullTempPath;
			std::string newcorpusFile;
			std::string m_sTempDir;
			void RunGensim();
			std::string open_temp();


		};
	}
}
