| [1] | 1 | /* NAS Parallel Benchmarks 2.3 UPC Version */ |
|---|
| 2 | |
|---|
| 3 | #include <stdio.h> |
|---|
| 4 | #include <stdlib.h> |
|---|
| 5 | #include <math.h> |
|---|
| 6 | |
|---|
| 7 | #if defined(__CYGWIN__) && defined(__RPCNDR_H__) |
|---|
| 8 | /* bug 2419 : workaround a typedef of bool in the cygwin headers */ |
|---|
| 9 | #define boolean int |
|---|
| 10 | #else |
|---|
| 11 | typedef int boolean; |
|---|
| 12 | #endif |
|---|
| 13 | |
|---|
| 14 | typedef struct { |
|---|
| 15 | double real; |
|---|
| 16 | double imag; |
|---|
| 17 | } dcomplex; |
|---|
| 18 | |
|---|
| 19 | #ifndef TRUE |
|---|
| 20 | #define TRUE 1 |
|---|
| 21 | #endif |
|---|
| 22 | #ifndef FALSE |
|---|
| 23 | #define FALSE 0 |
|---|
| 24 | #endif |
|---|
| 25 | |
|---|
| 26 | #define MEM_OK(var) { \ |
|---|
| 27 | if( var == NULL ) \ |
|---|
| 28 | { \ |
|---|
| 29 | printf("TH%02d: ERROR: %s == NULL\n", MYTHREAD, #var ); \ |
|---|
| 30 | upc_global_exit(1); \ |
|---|
| 31 | } } |
|---|
| 32 | |
|---|
| 33 | #ifndef max |
|---|
| 34 | #define max(a,b) (((a) > (b)) ? (a) : (b)) |
|---|
| 35 | #endif |
|---|
| 36 | #ifndef min |
|---|
| 37 | #define min(a,b) (((a) < (b)) ? (a) : (b)) |
|---|
| 38 | #endif |
|---|
| 39 | #define pow2(a) ((a)*(a)) |
|---|
| 40 | |
|---|
| 41 | #define get_real(c) c.real |
|---|
| 42 | #define get_imag(c) c.imag |
|---|
| 43 | #define cadd(c,a,b) (c.real = a.real + b.real, c.imag = a.imag + b.imag) |
|---|
| 44 | #define csub(c,a,b) (c.real = a.real - b.real, c.imag = a.imag - b.imag) |
|---|
| 45 | #define cmul(c,a,b) (c.real = a.real * b.real - a.imag * b.imag, \ |
|---|
| 46 | c.imag = a.real * b.imag + a.imag * b.real) |
|---|
| 47 | #define crmul(c,a,b) (c.real = a.real * b, c.imag = a.imag * b) |
|---|
| 48 | |
|---|
| 49 | extern double randlc(double *, double); |
|---|
| 50 | extern void vranlc(int, double *, double, double *); |
|---|
| 51 | |
|---|
| 52 | extern void c_print_results(const char *name, char class, int n1, int n2, |
|---|
| 53 | int n3, int niter, int nthreads, double t, |
|---|
| 54 | double mops, const char *optype, int passed_verification, |
|---|
| 55 | const char *npbversion, const char *compiletime, const char *cc, |
|---|
| 56 | const char *clink, const char *c_lib, const char *c_inc, |
|---|
| 57 | const char *cflags, const char *clinkflags, const char *rand); |
|---|