CXX=icc
all: Singular_Value_Decomposition_Streaming_Test_Scalar Singular_Value_Decomposition_Streaming_Test_SSE Singular_Value_Decomposition_Streaming_Test_AVX Singular_Value_Decomposition_Correctness_Test_SSE Singular_Value_Decomposition_Correctness_Test_AVX Singular_Value_Decomposition_Unit_Test_SSE Singular_Value_Decomposition_Unit_Test_AVX

Singular_Value_Decomposition_Streaming_Test_Scalar: Singular_Value_Decomposition_Streaming_Test.cpp Singular_Value_Decomposition_Helper.cpp PTHREAD_QUEUE.cpp Singular_Value_Decomposition_Preamble.hpp Singular_Value_Decomposition_Jacobi_Conjugation_Kernel.hpp Singular_Value_Decomposition_Givens_QR_Factorization_Kernel.hpp Singular_Value_Decomposition_Main_Kernel_Body.hpp
	$(CXX) -o Singular_Value_Decomposition_Streaming_Test_Scalar -DUSE_SCALAR_IMPLEMENTATION Singular_Value_Decomposition_Streaming_Test.cpp Singular_Value_Decomposition_Helper.cpp PTHREAD_QUEUE.cpp -pthread

Singular_Value_Decomposition_Streaming_Test_SSE: Singular_Value_Decomposition_Streaming_Test.cpp Singular_Value_Decomposition_Helper.cpp PTHREAD_QUEUE.cpp Singular_Value_Decomposition_Preamble.hpp Singular_Value_Decomposition_Jacobi_Conjugation_Kernel.hpp Singular_Value_Decomposition_Givens_QR_Factorization_Kernel.hpp Singular_Value_Decomposition_Main_Kernel_Body.hpp
	$(CXX) -o Singular_Value_Decomposition_Streaming_Test_SSE -DUSE_SSE_IMPLEMENTATION Singular_Value_Decomposition_Streaming_Test.cpp Singular_Value_Decomposition_Helper.cpp PTHREAD_QUEUE.cpp -pthread

Singular_Value_Decomposition_Streaming_Test_AVX: Singular_Value_Decomposition_Streaming_Test.cpp Singular_Value_Decomposition_Helper.cpp PTHREAD_QUEUE.cpp Singular_Value_Decomposition_Preamble.hpp Singular_Value_Decomposition_Jacobi_Conjugation_Kernel.hpp Singular_Value_Decomposition_Givens_QR_Factorization_Kernel.hpp Singular_Value_Decomposition_Main_Kernel_Body.hpp
	$(CXX) -o Singular_Value_Decomposition_Streaming_Test_AVX -DUSE_AVX_IMPLEMENTATION Singular_Value_Decomposition_Streaming_Test.cpp Singular_Value_Decomposition_Helper.cpp PTHREAD_QUEUE.cpp -pthread

Singular_Value_Decomposition_Correctness_Test_SSE: Singular_Value_Decomposition_Streaming_Test.cpp Singular_Value_Decomposition_Helper.cpp PTHREAD_QUEUE.cpp Singular_Value_Decomposition_Preamble.hpp Singular_Value_Decomposition_Jacobi_Conjugation_Kernel.hpp Singular_Value_Decomposition_Givens_QR_Factorization_Kernel.hpp Singular_Value_Decomposition_Main_Kernel_Body.hpp
	$(CXX) -o Singular_Value_Decomposition_Correctness_Test_SSE -DPERFORM_CORRECTNESS_TEST -DUSE_SSE_IMPLEMENTATION Singular_Value_Decomposition_Streaming_Test.cpp Singular_Value_Decomposition_Helper.cpp PTHREAD_QUEUE.cpp -pthread

Singular_Value_Decomposition_Correctness_Test_AVX: Singular_Value_Decomposition_Streaming_Test.cpp Singular_Value_Decomposition_Helper.cpp PTHREAD_QUEUE.cpp Singular_Value_Decomposition_Preamble.hpp Singular_Value_Decomposition_Jacobi_Conjugation_Kernel.hpp Singular_Value_Decomposition_Givens_QR_Factorization_Kernel.hpp Singular_Value_Decomposition_Main_Kernel_Body.hpp
	$(CXX) -o Singular_Value_Decomposition_Correctness_Test_AVX -DPERFORM_CORRECTNESS_TEST -DUSE_AVX_IMPLEMENTATION Singular_Value_Decomposition_Streaming_Test.cpp Singular_Value_Decomposition_Helper.cpp PTHREAD_QUEUE.cpp -pthread

Singular_Value_Decomposition_Unit_Test_SSE: Singular_Value_Decomposition_Unit_Test.cpp Singular_Value_Decomposition_Preamble.hpp Singular_Value_Decomposition_Jacobi_Conjugation_Kernel.hpp Singular_Value_Decomposition_Givens_QR_Factorization_Kernel.hpp Singular_Value_Decomposition_Main_Kernel_Body.hpp
	$(CXX) -o Singular_Value_Decomposition_Unit_Test_SSE -DUSE_SSE_IMPLEMENTATION Singular_Value_Decomposition_Unit_Test.cpp

Singular_Value_Decomposition_Unit_Test_AVX: Singular_Value_Decomposition_Unit_Test.cpp Singular_Value_Decomposition_Preamble.hpp Singular_Value_Decomposition_Jacobi_Conjugation_Kernel.hpp Singular_Value_Decomposition_Givens_QR_Factorization_Kernel.hpp Singular_Value_Decomposition_Main_Kernel_Body.hpp
	$(CXX) -o Singular_Value_Decomposition_Unit_Test_AVX -DUSE_AVX_IMPLEMENTATION Singular_Value_Decomposition_Unit_Test.cpp

clean:
	rm Singular_Value_Decomposition_Streaming_Test_Scalar  Singular_Value_Decomposition_Streaming_Test_SSE Singular_Value_Decomposition_Streaming_Test_AVX Singular_Value_Decomposition_Correctness_Test_SSE Singular_Value_Decomposition_Correctness_Test_AVX Singular_Value_Decomposition_Unit_Test_SSE Singular_Value_Decomposition_Unit_Test_AVX

