Changes in directory llvm-test/SingleSource/Benchmarks/Stanford:
Oscar.c updated: 1.1 -> 1.2 --- Log message: Make this readable by converting to Unix format and runing indent on it. --- Diffs of the changes: (+323 -270) Oscar.c | 593 ++++++++++++++++++++++++++++++++++------------------------------ 1 files changed, 323 insertions(+), 270 deletions(-) Index: llvm-test/SingleSource/Benchmarks/Stanford/Oscar.c diff -u llvm-test/SingleSource/Benchmarks/Stanford/Oscar.c:1.1 llvm-test/SingleSource/Benchmarks/Stanford/Oscar.c:1.2 --- llvm-test/SingleSource/Benchmarks/Stanford/Oscar.c:1.1 Mon May 12 12:39:14 2003 +++ llvm-test/SingleSource/Benchmarks/Stanford/Oscar.c Tue Nov 21 22:40:17 2006 @@ -1,270 +1,323 @@ -#include <stdio.h> -#include <stdlib.h> - -#define nil 0 -#define false 0 -#define true 1 -#define bubblebase 1.61f -#define dnfbase 3.5f -#define permbase 1.75f -#define queensbase 1.83f -#define towersbase 2.39f -#define quickbase 1.92f -#define intmmbase 1.46f -#define treebase 2.5f -#define mmbase 0.0f -#define fpmmbase 2.92f -#define puzzlebase 0.5f -#define fftbase 0.0f -#define fpfftbase 4.44f - /* Towers */ -#define maxcells 18 - - /* Intmm, Mm */ -#define rowsize 40 - - /* Puzzle */ -#define size 511 -#define classmax 3 -#define typemax 12 -#define d 8 - - /* Bubble, Quick */ -#define sortelements 5000 -#define srtelements 500 - - /* fft */ -#define fftsize 256 -#define fftsize2 129 -/* -type */ - /* Perm */ -#define permrange 10 - - /* tree */ -struct node { - struct node *left,*right; - int val; -}; - - /* Towers */ /* - discsizrange = 1..maxcells; */ -#define stackrange 3 -/* cellcursor = 0..maxcells; */ -struct element { - int discsize; - int next; -}; -/* emsgtype = packed array[1..15] of char; -*/ - /* Intmm, Mm */ /* - index = 1 .. rowsize; - intmatrix = array [index,index] of integer; - realmatrix = array [index,index] of real; -*/ - /* Puzzle */ /* - piececlass = 0..classmax; - piecetype = 0..typemax; - position = 0..size; -*/ - /* Bubble, Quick */ /* - listsize = 0..sortelements; - sortarray = array [listsize] of integer; -*/ - /* FFT */ -struct complex { float rp, ip; } ; -/* - carray = array [1..fftsize] of complex ; - c2array = array [1..fftsize2] of complex ; -*/ - -float value, fixed, floated; - - /* global */ -long seed; /* converted to long for 16 bit WR*/ - - /* Perm */ -int permarray[permrange+1]; -/* converted pctr to unsigned int for 16 bit WR*/ -unsigned int pctr; - - /* tree */ -struct node *tree; - - /* Towers */ -int stack[stackrange+1]; -struct element cellspace[maxcells+1]; -int freelist, movesdone; - - /* Intmm, Mm */ - -int ima[rowsize+1][rowsize+1], imb[rowsize+1][rowsize+1], imr[rowsize+1][rowsize+1]; -float rma[rowsize+1][rowsize+1], rmb[rowsize+1][rowsize+1], rmr[rowsize+1][rowsize+1]; - - /* Puzzle */ -int piececount[classmax+1], class[typemax+1], piecemax[typemax+1]; -int puzzl[size+1], p[typemax+1][size+1], n, kount; - - /* Bubble, Quick */ -int sortlist[sortelements+1], biggest, littlest, top; - - /* FFT */ -struct complex z[fftsize+1], w[fftsize+1], e[fftsize2+1]; -float zr, zi; - -void Initrand () { - seed = 74755L; /* constant to long WR*/ -} - -int Rand () { - seed = (seed * 1309L + 13849L) & 65535L; /* constants to long WR*/ - return( (int)seed ); /* typecast back to int WR*/ -} - - -float Cos (float x) { -/* computes cos of x (x in radians) by an expansion */ -int i, factor; -float result, power; - - result = 1.0f; - factor = 1; - power = x; - for ( i = 2; i <= 10; i++ ) { - factor = factor * i; power = power*x; - if ( (i & 1) == 0 ) { - if ( (i & 3) == 0 ) result = result + power/factor; - else result = result - power/factor; - } - } - return (result); -} - -int Min0( int arg1, int arg2) { - if ( arg1 < arg2 ) return (arg1); - else return (arg2); -} - -void Printcomplex(struct complex zarray[], int start, int finish, int increment) { /* removed unused arg1, arg2 arguments WR*/ - int i; - printf("\n") ; - - i = start; - do { - printf(" %15.3f%15.3f",zarray[i].rp,zarray[i].ip) ; - i = i + increment; - printf(" %15.3f%15.3f",zarray[i].rp,zarray[i].ip) ; - printf("\n"); - i = i + increment ; - } while ( i <= finish ); - -} - -void Uniform11(int *iy, float *yfl) { - *iy = (4855 * *iy + 1731) & 8191; - *yfl = *iy/8192.0f; -} /* uniform */ - -void Exptab(int n, struct complex e[]) { /* exptab */ - float theta, divisor, h[26]; - int i, j, k, l, m; - - theta = 3.1415926536f; - divisor = 4.0f; - for ( i=1; i <= 25; i++ ) { - h[i] = 1/(2*Cos( theta/divisor )); - divisor = divisor + divisor; - } - - m = n / 2 ; - l = m / 2 ; - j = 1 ; - e[1].rp = 1.0f; - e[1].ip = 0.0f; - e[l+1].rp = 0.0f; - e[l+1].ip = 1.0f; - e[m+1].rp = -1.0f; - e[m+1].ip = 0.0f; - - do { - i = l / 2 ; - k = i ; - - do { - e[k+1].rp = h[j]*(e[k+i+1].rp+e[k-i+1].rp) ; - e[k+1].ip = h[j]*(e[k+i+1].ip+e[k-i+1].ip) ; - k = k+l ; - } while ( k <= m ); - - j = Min0( j+1, 25); - l = i ; - } while ( l > 1 ); - -} /* exptab */ - -void Fft( int n, struct complex z[], struct complex w[], struct complex e[], float sqrinv) { - int i, j, k, l, m, index; - m = n / 2 ; - l = 1 ; - - do { - k = 0 ; - j = l ; - i = 1 ; - - do { - - do { - w[i+k].rp = z[i].rp+z[m+i].rp ; - w[i+k].ip = z[i].ip+z[m+i].ip ; - w[i+j].rp = e[k+1].rp*(z[i].rp-z[i+m].rp) - -e[k+1].ip*(z[i].ip-z[i+m].ip) ; - w[i+j].ip = e[k+1].rp*(z[i].ip-z[i+m].ip) - +e[k+1].ip*(z[i].rp-z[i+m].rp) ; - i = i+1 ; - } while ( i <= j ); - - k = j ; - j = k+l ; - } while ( j <= m ); - - /*z = w ;*/ index = 1; - do { - z[index] = w[index]; - index = index+1; - } while ( index <= n ); - l = l+l ; - } while ( l <= m ); - - for ( i = 1; i <= n; i++ ){ - z[i].rp = sqrinv*z[i].rp ; - z[i].ip = -sqrinv*z[i].ip; - } - -} - -void Oscar() { /* oscar */ - int i; - Exptab(fftsize,e) ; - seed = 5767 ; - for ( i = 1; i <= fftsize; i++ ) { - int s = seed; - Uniform11( &s, &zr ); /* typecast seed for 16 bit WR*/ - seed = s; - Uniform11( &s, &zi ); /* typecast seed for 16 bit WR*/ - seed = s; - z[i].rp = 20.0f*zr - 10.0f; - z[i].ip = 20.0f*zi - 10.0f; - } - for ( i = 1; i <= 20; i++ ) { - Fft(fftsize,z,w,e,0.0625f) ; - } - Printcomplex( z, 1, 256, 17 ); /* removed 1st 2 args 6, 99, unused by printcomplex WR*/ -} /* oscar */ - -int main() -{ - int i; - for (i = 0; i < 10; i++) Oscar(); - return 0; -} +#include <stdio.h> +#include <stdlib.h> + +#define nil 0 +#define false 0 +#define true 1 +#define bubblebase 1.61f +#define dnfbase 3.5f +#define permbase 1.75f +#define queensbase 1.83f +#define towersbase 2.39f +#define quickbase 1.92f +#define intmmbase 1.46f +#define treebase 2.5f +#define mmbase 0.0f +#define fpmmbase 2.92f +#define puzzlebase 0.5f +#define fftbase 0.0f +#define fpfftbase 4.44f + /* Towers */ +#define maxcells 18 + + /* Intmm, Mm */ +#define rowsize 40 + + /* Puzzle */ +#define size 511 +#define classmax 3 +#define typemax 12 +#define d 8 + + /* Bubble, Quick */ +#define sortelements 5000 +#define srtelements 500 + + /* fft */ +#define fftsize 256 +#define fftsize2 129 +/* +type */ + /* Perm */ +#define permrange 10 + + /* tree */ +struct node +{ + struct node *left, *right; + int val; +}; + + /* Towers *//* + discsizrange = 1..maxcells; */ +#define stackrange 3 +/* cellcursor = 0..maxcells; */ +struct element +{ + int discsize; + int next; +}; +/* emsgtype = packed array[1..15] of char; +*/ + /* Intmm, Mm *//* + index = 1 .. rowsize; + intmatrix = array [index,index] of integer; + realmatrix = array [index,index] of real; + */ + /* Puzzle *//* + piececlass = 0..classmax; + piecetype = 0..typemax; + position = 0..size; + */ + /* Bubble, Quick *//* + listsize = 0..sortelements; + sortarray = array [listsize] of integer; + */ + /* FFT */ +struct complex +{ + float rp, ip; +}; +/* + carray = array [1..fftsize] of complex ; + c2array = array [1..fftsize2] of complex ; +*/ + +float value, fixed, floated; + + /* global */ +long seed; /* converted to long for 16 bit WR */ + + /* Perm */ +int permarray[permrange + 1]; +/* converted pctr to unsigned int for 16 bit WR*/ +unsigned int pctr; + + /* tree */ +struct node *tree; + + /* Towers */ +int stack[stackrange + 1]; +struct element cellspace[maxcells + 1]; +int freelist, movesdone; + + /* Intmm, Mm */ + +int ima[rowsize + 1][rowsize + 1], imb[rowsize + 1][rowsize + 1], + imr[rowsize + 1][rowsize + 1]; +float rma[rowsize + 1][rowsize + 1], rmb[rowsize + 1][rowsize + 1], + rmr[rowsize + 1][rowsize + 1]; + + /* Puzzle */ +int piececount[classmax + 1], class[typemax + 1], piecemax[typemax + 1]; +int puzzl[size + 1], p[typemax + 1][size + 1], n, kount; + + /* Bubble, Quick */ +int sortlist[sortelements + 1], biggest, littlest, top; + + /* FFT */ +struct complex z[fftsize + 1], w[fftsize + 1], e[fftsize2 + 1]; +float zr, zi; + +void +Initrand () +{ + seed = 74755L; /* constant to long WR */ +} + +int +Rand () +{ + seed = (seed * 1309L + 13849L) & 65535L; /* constants to long WR */ + return ((int) seed); /* typecast back to int WR */ +} + + +float +Cos (float x) +{ +/* computes cos of x (x in radians) by an expansion */ + int i, factor; + float result, power; + + result = 1.0f; + factor = 1; + power = x; + for (i = 2; i <= 10; i++) + { + factor = factor * i; + power = power * x; + if ((i & 1) == 0) + { + if ((i & 3) == 0) + result = result + power / factor; + else + result = result - power / factor; + } + } + return (result); +} + +int +Min0 (int arg1, int arg2) +{ + if (arg1 < arg2) + return (arg1); + else + return (arg2); +} + +void +Printcomplex (struct complex zarray[], int start, int finish, int increment) +{ /* removed unused arg1, arg2 arguments WR */ + int i; + printf ("\n"); + + i = start; + do + { + printf (" %15.3f%15.3f", zarray[i].rp, zarray[i].ip); + i = i + increment; + printf (" %15.3f%15.3f", zarray[i].rp, zarray[i].ip); + printf ("\n"); + i = i + increment; + } + while (i <= finish); + +} + +void +Uniform11 (int *iy, float *yfl) +{ + *iy = (4855 * *iy + 1731) & 8191; + *yfl = *iy / 8192.0f; +} /* uniform */ + +void +Exptab (int n, struct complex e[]) +{ /* exptab */ + float theta, divisor, h[26]; + int i, j, k, l, m; + + theta = 3.1415926536f; + divisor = 4.0f; + for (i = 1; i <= 25; i++) + { + h[i] = 1 / (2 * Cos (theta / divisor)); + divisor = divisor + divisor; + } + + m = n / 2; + l = m / 2; + j = 1; + e[1].rp = 1.0f; + e[1].ip = 0.0f; + e[l + 1].rp = 0.0f; + e[l + 1].ip = 1.0f; + e[m + 1].rp = -1.0f; + e[m + 1].ip = 0.0f; + + do + { + i = l / 2; + k = i; + + do + { + e[k + 1].rp = h[j] * (e[k + i + 1].rp + e[k - i + 1].rp); + e[k + 1].ip = h[j] * (e[k + i + 1].ip + e[k - i + 1].ip); + k = k + l; + } + while (k <= m); + + j = Min0 (j + 1, 25); + l = i; + } + while (l > 1); + +} /* exptab */ + +void +Fft (int n, struct complex z[], struct complex w[], struct complex e[], + float sqrinv) +{ + int i, j, k, l, m, index; + m = n / 2; + l = 1; + + do + { + k = 0; + j = l; + i = 1; + + do + { + + do + { + w[i + k].rp = z[i].rp + z[m + i].rp; + w[i + k].ip = z[i].ip + z[m + i].ip; + w[i + j].rp = e[k + 1].rp * (z[i].rp - z[i + m].rp) + - e[k + 1].ip * (z[i].ip - z[i + m].ip); + w[i + j].ip = e[k + 1].rp * (z[i].ip - z[i + m].ip) + + e[k + 1].ip * (z[i].rp - z[i + m].rp); + i = i + 1; + } + while (i <= j); + + k = j; + j = k + l; + } + while (j <= m); + + /*z = w ; */ index = 1; + do + { + z[index] = w[index]; + index = index + 1; + } + while (index <= n); + l = l + l; + } + while (l <= m); + + for (i = 1; i <= n; i++) + { + z[i].rp = sqrinv * z[i].rp; + z[i].ip = -sqrinv * z[i].ip; + } + +} + +void +Oscar () +{ /* oscar */ + int i; + Exptab (fftsize, e); + seed = 5767; + for (i = 1; i <= fftsize; i++) + { + int s = seed; + Uniform11 (&s, &zr); /* typecast seed for 16 bit WR */ + seed = s; + Uniform11 (&s, &zi); /* typecast seed for 16 bit WR */ + seed = s; + z[i].rp = 20.0f * zr - 10.0f; + z[i].ip = 20.0f * zi - 10.0f; + } + for (i = 1; i <= 20; i++) + { + Fft (fftsize, z, w, e, 0.0625f); + } + Printcomplex (z, 1, 256, 17); /* removed 1st 2 args 6, 99, unused by printcomplex WR */ +} /* oscar */ + +int +main () +{ + int i; + for (i = 0; i < 10; i++) + Oscar (); + return 0; +} _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits