瀏覽代碼

complete random generator functions

Samuel Thibault 9 年之前
父節點
當前提交
e4afd326a4
共有 1 個文件被更改,包括 6 次插入0 次删除
  1. 6 0
      include/starpu_rand.h

+ 6 - 0
include/starpu_rand.h

@@ -35,20 +35,26 @@ extern "C"
 #ifdef STARPU_USE_DRAND48
 #  define starpu_srand48(seed)				srand48(starpu_seed(seed))
 #  define starpu_drand48()				drand48()
+#  define starpu_lrand48()				lrand48()
 #  define starpu_erand48(xsubi)				erand48(xsubi)
 #  ifdef STARPU_USE_ERAND48_R
 typedef struct drand48_data starpu_drand48_data;
 #    define starpu_srand48_r(seed, buffer)		srand48_r(starpu_seed(seed), buffer)
+#    define starpu_drand48_r(buffer, result)		drand48_r(buffer, result)
+#    define starpu_lrand48_r(buffer, result)		lrand48_r(buffer, result)
 #    define starpu_erand48_r(xsubi, buffer, result)	erand48_r(xsubi, buffer, result)
 #else
 typedef int starpu_drand48_data;
 #    define starpu_srand48_r(seed, buffer)		srand48(starpu_seed(seed))
+#    define starpu_drand48_r(buffer, result)		do {*(result) = drand48(); } while (0)
+#    define starpu_lrand48_r(buffer, result)		do {*(result) = lrand48(); } while (0)
 #    define starpu_erand48_r(xsubi, buffer, result)	do {*(result) = erand48(xsubi); } while (0)
 #  endif
 #else
 typedef int starpu_drand48_data;
 #  define starpu_srand48(seed)				srand(starpu_seed(seed))
 #  define starpu_drand48() 				(double)(rand()) / RAND_MAX
+#  define starpu_lrand48() 				rand()
 #  define starpu_erand48(xsubi)				starpu_drand48()
 #  define starpu_srand48_r(seed, buffer) 		srand(starpu_seed(seed))
 #  define starpu_erand48_r(xsubi, buffer, result)	do {*(result) = ((double)(rand()) / RAND_MAX);} while (0)