1/* 2 NAS Parallel Benchmarks 2.3 OpenMP C Versions 3 */ 4 5#include <stdio.h> 6#include <stdlib.h> 7#include <math.h> 8 9#if defined(_OPENMP) 10#include <omp.h> 11#endif /* _OPENMP */ 12 13typedef int boolean; 14typedef struct { double real; double imag; } dcomplex; 15 16#define TRUE 1 17#define FALSE 0 18 19#define max(a,b) (((a) > (b)) ? (a) : (b)) 20#define min(a,b) (((a) < (b)) ? (a) : (b)) 21#define pow2(a) ((a)*(a)) 22 23#define get_real(c) c.real 24#define get_imag(c) c.imag 25#define cadd(c,a,b) (c.real = a.real + b.real, c.imag = a.imag + b.imag) 26#define csub(c,a,b) (c.real = a.real - b.real, c.imag = a.imag - b.imag) 27#define cmul(c,a,b) (c.real = a.real * b.real - a.imag * b.imag, \ 28 c.imag = a.real * b.imag + a.imag * b.real) 29#define crmul(c,a,b) (c.real = a.real * b, c.imag = a.imag * b) 30 31extern double randlc(double *, double); 32extern void vranlc(int, double *, double, double *); 33extern void timer_clear(int); 34extern void timer_start(int); 35extern void timer_stop(int); 36extern double timer_read(int); 37 38extern void c_print_results(char *name, char class, int n1, int n2, 39 int n3, int niter, int nthreads, double t, 40 double mops, char *optype, int passed_verification, 41 char *npbversion, char *compiletime, char *cc, 42 char *clink, char *c_lib, char *c_inc, 43 char *cflags, char *clinkflags, char *rand); 44