reduction_data:
	(cd scripts; ./create_table.sh > ../../reduction_data.txt)

results.csv: outputs/result*
	(cd scripts; ./create_csv.sh > ../results.csv)

compile: svp_verified svp_certified

poly_test: ../generated/*.hs ../haskell_sources/Main_Factorization.hs
	mkdir -p build_poly_test
	cp ../generated/*.hs ../haskell_sources/Main_Factorization.hs build_poly_test
	(cd build_poly_test; ghc -O2 Main_Factorization.hs -o poly_test);
	mv build_poly_test/poly_test . 

run_poly_test: poly_test
	date; time ./poly_test example_poly/poly_100.txt; date

tests:
	(cd scripts;\
	for i in 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100; do \
	  echo "fplll       $${i}: "; ./test_fplll.sh $${i};\
	  echo "fplll-cert  $${i}: "; ./test_fplll_certified.sh $${i};\
	  echo "certified   $${i}: "; ./test_certified.sh $${i};\
	  echo "Mathematica $${i}: "; ./test_mm.sh $${i};\
	  echo "verified    $${i}: "; ./test_verified.sh $${i};\
	done;)
	

svp_verified: ../generated/*.hs ../haskell_sources/Main_Verified.hs
	mkdir -p build_svp_verified;
	cp ../generated/*.hs ../haskell_sources/Main_Verified.hs build_svp_verified
	(cd build_svp_verified; ghc -O2 Main_Verified.hs -o svp_verified);
	mv build_svp_verified/svp_verified .


svp_certified: ../generated/*.hs ../haskell_sources/Main_Certified.hs
	mkdir -p build_svp_certified;
	cp ../generated/*.hs ../haskell_sources/Main_Certified.hs build_svp_certified
	(cd build_svp_certified; ghc -O2 Main_Certified.hs -o svp_certified);
	mv build_svp_certified/svp_certified .

