diff --git a/lib/libstereo/CMakeLists.txt b/lib/libstereo/CMakeLists.txt
index 175a3c670c9aa15f4772adc85f520fb1c99d69de..78f367ad5b0e5d7965bf679c704d43ad4b68cccd 100644
--- a/lib/libstereo/CMakeLists.txt
+++ b/lib/libstereo/CMakeLists.txt
@@ -20,10 +20,10 @@ set(CMAKE_USE_RELATIVE_PATHS ON)
 set(CMAKE_CXX_FLAGS_RELEASE)
 
 if (CMAKE_COMPILER_IS_GNUCXX)
-    set(CMAKE_CUDA_FLAGS "--gpu-architecture=compute_61 -std=c++14 -Xcompiler -fPIC -Xcompiler ${OpenMP_CXX_FLAGS}")
+    set(CMAKE_CUDA_FLAGS "--gpu-architecture=compute_61 -std=c++14 -Xcompiler -fPIC -Xcompiler ${OpenMP_CXX_FLAGS} --expt-relaxed-constexpr")
     set(CMAKE_CUDA_FLAGS_RELEASE "-O3")
 else()
-    set(CMAKE_CUDA_FLAGS "--gpu-architecture=compute_61 -std=c++14")
+    set(CMAKE_CUDA_FLAGS "--gpu-architecture=compute_61 -std=c++14 --expt-relaxed-constexpr")
     set(CMAKE_CUDA_FLAGS_RELEASE "-O3")
 endif()
 
@@ -51,6 +51,7 @@ set_target_properties(libstereo PROPERTIES PUBLIC_HEADER include/stereo.hpp)
 else()
     add_library(libstereo
                 src/stereo_gradientstree.cu
+                src/stereo_gtsgm.cu
                 src/stereo_misgm.cu
                 src/stereo_misgm2.cu
                 src/stereo_censussgm.cu
diff --git a/lib/libstereo/src/wta.hpp b/lib/libstereo/src/wta.hpp
index 679638c9e02934f4458bf1ae6ad6aad84d5cfa91..b23325ebdba34c06aa7e12e12625cf1d6835158b 100644
--- a/lib/libstereo/src/wta.hpp
+++ b/lib/libstereo/src/wta.hpp
@@ -76,7 +76,7 @@ namespace algorithms {
 				auto* ptr_min_cost = min_cost.ptr(y);
 
 				for (int x = 0; x < dsi.width; ++x) {
-					TCost min1 = TCost(-1); //std::numeric_limits<TCost>::max();
+					TCost min1 = std::numeric_limits<TCost>::max();
 					//TCost min2 = TCost(-1); //std::numeric_limits<TCost>::max();
 					TDisp d = TDisp(0);
 
@@ -146,7 +146,7 @@ namespace algorithms {
 				TDisp* ptr_disparity = disparity.ptr(y);
 
 				for (int x = thread.x; x < size.x; x+=stride.x) {
-					TCost min1 = TCost(-1); //std::numeric_limits<TCost>::max();
+					TCost min1 = std::numeric_limits<TCost>::max();
 					TDisp d = TDisp(0);
 
 					for (int d_ = dsi.disp_min; d_ < min(dsi.disp_max+1, dsi.width-x); d_++) {