#include "stdafx.h"
//#include <itpp/itcomm.h>
#include "cfastica.cpp"

using std::cin;
using std::cout;
using std::endl;
using namespace itpp;

//int _tmain(int argc, _TCHAR* argv[])
int main(int argc, _TCHAR* argv[])
{
	Real_Timer tt;
	it_ifile vstupniSoubor;
	it_file  vystupniSoubor;
	vec sig1, sig2;
	cmat smesi;
	std::string jmenoSouboru;
	bool smichat;

	smichat = true;

	vstupniSoubor.open("dvaWavy.it");

	vstupniSoubor >> Name("sig1") >> sig1;
	vstupniSoubor >> Name("sig2") >> sig2;

	tt.tic();

	smesi.append_row(to_cvec(sig1));
	smesi.append_row(to_cvec(sig2));

	cfastica objekt(smesi,0.1,smichat);
	
	objekt.symetricka_separace();
	
	tt.toc_print();

	vystupniSoubor.open("vysledek.it");
	vystupniSoubor << Name("separovane_signaly") << objekt.separovane;
	vystupniSoubor << Name("xold") << objekt.xold;
	//vystupniSoubor << Name("mixujiciMatice") << objekt.A;
	//vystupniSoubor << Name("demixujiciMatice") << objekt.W_ret;
	//vystupniSoubor << Name("demixWrandom") << objekt.W_inp;
	//vystupniSoubor << Name("vstupniSmesi") << smesi;
	//vystupniSoubor << Name("whiteningMatrix") << objekt.whiteningMatrix;
	//vystupniSoubor << Name("x_ret") << objekt.x;
	

	vstupniSoubor.close();
	vystupniSoubor.close();
	
	cout << "Zmacknete libovolnou klavesu...";
	cin.get();

	return 0;
}