source: trunk/sys/libupc/include/upc_npb-C.h @ 299

Last change on this file since 299 was 1, checked in by alain, 8 years ago

First import

File size: 1.7 KB
Line 
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
11typedef int boolean;
12#endif
13
14typedef 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
49extern double randlc(double *, double);
50extern void vranlc(int, double *, double, double *);
51
52extern 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);
Note: See TracBrowser for help on using the repository browser.