Bläddra i källkod

Fix build with complex enabled

Samuel Thibault 7 år sedan
förälder
incheckning
d7de6dd419

+ 3 - 1
examples/lu/complex_double.h

@@ -1,6 +1,6 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
- * Copyright (C) 2009, 2010, 2014-2015  Université de Bordeaux
+ * Copyright (C) 2009, 2010, 2014-2015, 2017  Université de Bordeaux
  * Copyright (C) 2010  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
@@ -46,3 +46,5 @@
 #define PIVOT_THRESHHOLD	10e-5
 
 #define CAN_EXECUTE .can_execute = can_execute,
+
+#define ISZERO(f)	(fpclassify(creal(f)) == FP_ZERO && fpclassify(cimag(f)) == FP_ZERO)

+ 3 - 1
examples/lu/complex_float.h

@@ -1,6 +1,6 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
- * Copyright (C) 2009, 2010, 2014-2015  Université de Bordeaux
+ * Copyright (C) 2009, 2010, 2014-2015, 2017  Université de Bordeaux
  * Copyright (C) 2010  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
@@ -46,3 +46,5 @@
 #define PIVOT_THRESHHOLD	10e-5
 
 #define CAN_EXECUTE
+
+#define ISZERO(f)	(fpclassify(creal(f)) == FP_ZERO && fpclassify(cimag(f)) == FP_ZERO)

+ 3 - 1
examples/lu/lu-double.h

@@ -1,6 +1,6 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
- * Copyright (C) 2009, 2010, 2014-2015  Université de Bordeaux
+ * Copyright (C) 2009, 2010, 2014-2015, 2017  Université de Bordeaux
  * Copyright (C) 2010  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
@@ -43,3 +43,5 @@
 #define PIVOT_THRESHHOLD	10e-10
 
 #define CAN_EXECUTE .can_execute = can_execute,
+
+#define ISZERO(f)	(fpclassify(f) == FP_ZERO)

+ 3 - 1
examples/lu/lu-float.h

@@ -1,6 +1,6 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
- * Copyright (C) 2009, 2010, 2014-2015  Université de Bordeaux
+ * Copyright (C) 2009, 2010, 2014-2015, 2017  Université de Bordeaux
  * Copyright (C) 2010  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
@@ -43,3 +43,5 @@
 #define PIVOT_THRESHHOLD	10e-5
 
 #define CAN_EXECUTE
+
+#define ISZERO(f)	(fpclassify(f) == FP_ZERO)

+ 7 - 18
examples/lu/xlu_kernels.c

@@ -362,13 +362,8 @@ static inline void STARPU_LU(common_u11)(void *descr[],
 			{
 				TYPE pivot;
 				pivot = sub11[z+z*ld];
-#ifdef COMPLEX_LU
-				STARPU_ASSERT(fpclassify(creal(pivot)) != FP_ZERO);
-				STARPU_ASSERT(fpclassify(cimag(pivot)) != FP_ZERO);
-#else
-				STARPU_ASSERT(fpclassify(pivot) != FP_ZERO);
-#endif
-		
+				STARPU_ASSERT(!ISZERO(pivot));
+
 				CPU_SCAL(nx - z - 1, (1.0/pivot), &sub11[z+(z+1)*ld], ld);
 		
 				CPU_GER(nx - z - 1, nx - z - 1, -1.0,
@@ -387,14 +382,8 @@ static inline void STARPU_LU(common_u11)(void *descr[],
 				TYPE inv_pivot;
 				cudaMemcpyAsync(&pivot, &sub11[z+z*ld], sizeof(TYPE), cudaMemcpyDeviceToHost, stream);
 				cudaStreamSynchronize(stream);
+				STARPU_ASSERT(!ISZERO(pivot));
 
-#ifdef COMPLEX_LU
-				STARPU_ASSERT(fpclassify(creal(pivot)) != FP_ZERO);
-				STARPU_ASSERT(fpclassify(cimag(pivot)) != FP_ZERO);
-#else
-				STARPU_ASSERT(fpclassify(pivot) != FP_ZERO);
-#endif
-				
 				inv_pivot = 1.0/pivot;
 				status = CUBLAS_SCAL(handle,
 						nx - z - 1,
@@ -511,8 +500,8 @@ static inline void STARPU_LU(common_u11_pivot)(void *descr[],
 
 					pivot = sub11[z+z*ld];
 				}
-			
-				STARPU_ASSERT(fpclassify(pivot) != FP_ZERO);
+
+				STARPU_ASSERT(!ISZERO(pivot));
 
 				CPU_SCAL(nx - z - 1, (1.0/pivot), &sub11[z+(z+1)*ld], ld);
 		
@@ -561,8 +550,8 @@ static inline void STARPU_LU(common_u11_pivot)(void *descr[],
 					cudaStreamSynchronize(stream);
 				}
 
-				STARPU_ASSERT(fpclassify(pivot) != FP_ZERO);
-				
+				STARPU_ASSERT(!ISZERO(pivot));
+
 				inv_pivot = 1.0/pivot;
 				status = CUBLAS_SCAL(handle,
 						nx - z - 1,