Changeset 54ca3523 in mainline for test/fpu/fpu1/test.c
- Timestamp:
- 2005-05-20T17:04:55Z (20 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 0cb0a72
- Parents:
- c01bd280
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
test/fpu/fpu1/test.c
rc01bd280 r54ca3523 44 44 45 45 #define THREADS 150*2 46 #define ATTEMPTS 10 46 47 47 48 #define E_10e8 271828182 … … 55 56 static void e(void *data) 56 57 { 58 int i; 57 59 double e,d,le,f; 58 le=-1;59 e=0;60 f=1;61 60 62 61 waitq_sleep(&can_start); 63 62 64 for(d=1;e!=le;d*=f,f+=1) { 65 le=e; 66 e=e+1/d; 63 for (i = 0; i<ATTEMPTS; i++) { 64 le=-1; 65 e=0; 66 f=1; 67 68 for(d=1;e!=le;d*=f,f+=1) { 69 le=e; 70 e=e+1/d; 71 } 72 73 if((int)(100000000*e)!=E_10e8) 74 panic("tid%d: e*10e8=%d\n", THREAD->tid, (int) 100000000*e); 67 75 } 68 76 69 if((int)(100000000*e)==E_10e8) { 70 atomic_inc((int *) &threads_ok); 71 } 72 else 73 printf("tid%d: e*10e8=%d)\n", THREAD->tid, (int) 100000000*e); 77 atomic_inc((int *) &threads_ok); 74 78 } 75 79 76 80 static void pi(void *data) 77 81 { 78 double lpi = -1, pi = 0;79 double ab, ad;80 int n;82 int i; 83 double lpi, pi; 84 double n, ab, ad; 81 85 82 86 waitq_sleep(&can_start); 83 87 84 for (n=2, ab = sqrt(2); lpi != pi; n *= 2, ab = ad) {85 double sc, cd;86 88 87 sc = sqrt(1 - (ab*ab/4)); 88 cd = 1 - sc; 89 ad = sqrt(ab*ab/4 + cd*cd); 90 lpi = pi; 91 pi = 2 * n * ad; 92 } 89 for (i = 0; i<ATTEMPTS; i++) { 90 lpi = -1; 91 pi = 0; 93 92 94 if((int)(100000000*pi)==PI_10e8) { 95 atomic_inc((int *) &threads_ok); 93 for (n=2, ab = sqrt(2); lpi != pi; n *= 2, ab = ad) { 94 double sc, cd; 95 96 sc = sqrt(1 - (ab*ab/4)); 97 cd = 1 - sc; 98 ad = sqrt(ab*ab/4 + cd*cd); 99 lpi = pi; 100 pi = 2 * n * ad; 101 } 102 103 if((int)(100000000*pi)!=PI_10e8) 104 panic("tid%d: pi*10e8=%d\n", THREAD->tid, (int) 100000000*pi); 96 105 } 97 else 98 printf("tid%d: pi*10e8=%d)\n", THREAD->tid, (int) 100000000*pi);106 107 atomic_inc((int *) &threads_ok); 99 108 } 100 109
Note:
See TracChangeset
for help on using the changeset viewer.