diff --git a/MultiSource/Benchmarks/Prolangs-C++/ocean/ocean.cpp b/MultiSource/Benchmarks/Prolangs-C++/ocean/ocean.cpp --- a/MultiSource/Benchmarks/Prolangs-C++/ocean/ocean.cpp +++ b/MultiSource/Benchmarks/Prolangs-C++/ocean/ocean.cpp @@ -12,6 +12,9 @@ #if defined(__XS1B__) #include "xcoretestsuite.h" #endif +#ifdef _AIX +#define AIX_RAND_MAX 2147483647 +#endif //cell.cc Cell *Cell::getCellAt(Coordinate aCoord) { @@ -127,11 +130,19 @@ #define MAX 32767 float Random::randReal(void) { +#ifdef _AIX + return random()/(float)AIX_RAND_MAX; +#else return random()/(float)RAND_MAX; +#endif } unsigned Random::nextIntBetween(int low, int high) { +#ifdef _AIX + return (long long)(random())* high / AIX_RAND_MAX; +#else return (long long)(random())* high / RAND_MAX; +#endif } //ocean.cc diff --git a/MultiSource/Benchmarks/Rodinia/srad/main.c b/MultiSource/Benchmarks/Rodinia/srad/main.c --- a/MultiSource/Benchmarks/Rodinia/srad/main.c +++ b/MultiSource/Benchmarks/Rodinia/srad/main.c @@ -4,6 +4,9 @@ #include #include #include +#ifdef _AIX +#define AIX_RAND_MAX 2147483647 +#endif void random_matrix(float I[ROWS][COLS]); void srad_kernel(float dN[ROWS][COLS], float dS[ROWS][COLS], float dW[ROWS][COLS], float dE[ROWS][COLS], @@ -80,7 +83,11 @@ glibc_compat_srand(SEED); for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { + #ifdef _AIX + I[i][j] = glibc_compat_rand() / (float)AIX_RAND_MAX; + #else I[i][j] = glibc_compat_rand() / (float)RAND_MAX; + #endif } } }