Rev 1053 | Rev 1104 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1053 | Rev 1062 | ||
|---|---|---|---|
| Line 141... | Line 141... | ||
| 141 | 141 | ||
| 142 | printf("tid%d: pi*10e8=%d should be %d\n", THREAD->tid, (__native) (100000000*pi),(__native) PI_10e8); |
142 | printf("tid%d: pi*10e8=%d should be %d\n", THREAD->tid, (__native) (100000000*pi),(__native) PI_10e8); |
| 143 | atomic_inc(&threads_ok); |
143 | atomic_inc(&threads_ok); |
| 144 | } |
144 | } |
| 145 | 145 | ||
| 146 | - | ||
| 147 | void test(void) |
146 | void test(void) |
| 148 | { |
147 | { |
| 149 | thread_t *t; |
148 | thread_t *t; |
| 150 | int i; |
149 | int i; |
| 151 | 150 | ||
| Line 153... | Line 152... | ||
| 153 | 152 | ||
| 154 | printf("FPU test #1\n"); |
153 | printf("FPU test #1\n"); |
| 155 | printf("Creating %d threads... ", THREADS); |
154 | printf("Creating %d threads... ", THREADS); |
| 156 | 155 | ||
| 157 | for (i=0; i<THREADS/2; i++) { |
156 | for (i=0; i<THREADS/2; i++) { |
| 158 | if (!(t = thread_create(e, NULL, TASK, 0))) |
157 | if (!(t = thread_create(e, NULL, TASK, 0, "e"))) |
| 159 | panic("could not create thread\n"); |
158 | panic("could not create thread\n"); |
| 160 | thread_ready(t); |
159 | thread_ready(t); |
| 161 | if (!(t = thread_create(pi, NULL, TASK, 0))) |
160 | if (!(t = thread_create(pi, NULL, TASK, 0, "pi"))) |
| 162 | panic("could not create thread\n"); |
161 | panic("could not create thread\n"); |
| 163 | thread_ready(t); |
162 | thread_ready(t); |
| 164 | } |
163 | } |
| 165 | printf("ok\n"); |
164 | printf("ok\n"); |
| 166 | 165 | ||
| Line 170... | Line 169... | ||
| 170 | while (atomic_get(&threads_ok) != THREADS) |
169 | while (atomic_get(&threads_ok) != THREADS) |
| 171 | ; |
170 | ; |
| 172 | 171 | ||
| 173 | printf("Test passed.\n"); |
172 | printf("Test passed.\n"); |
| 174 | } |
173 | } |
| 175 | - | ||
| 176 | /* |
- | |
| 177 | static void pi(void *data) |
- | |
| 178 | { |
- | |
| 179 | #undef PI_10e8 |
- | |
| 180 | #define PI_10e8 3141592 |
- | |
| 181 | - | ||
| 182 | - | ||
| 183 | int i; |
- | |
| 184 | double lpi, pi; |
- | |
| 185 | double n, ab, ad; |
- | |
| 186 | - | ||
| 187 | - | ||
| 188 | printf("pi test\n"); |
- | |
| 189 | - | ||
| 190 | waitq_sleep(&can_start); |
- | |
| 191 | - | ||
| 192 | - | ||
| 193 | for (i = 0; i<ATTEMPTS; i++) { |
- | |
| 194 | lpi = -1; |
- | |
| 195 | pi = 0; |
- | |
| 196 | - | ||
| 197 | for (n=2, ab = sqrt(2); lpi != pi; n *= 2, ab = ad) { |
- | |
| 198 | double sc, cd; |
- | |
| 199 | - | ||
| 200 | sc = sqrt(1 - (ab*ab/4)); |
- | |
| 201 | cd = 1 - sc; |
- | |
| 202 | ad = sqrt(ab*ab/4 + cd*cd); |
- | |
| 203 | lpi = pi; |
- | |
| 204 | pi = 2 * n * ad; |
- | |
| 205 | } |
- | |
| 206 | - | ||
| 207 | atomic_inc(&threads_ok); |
- | |
| 208 | if((int)(1000000*pi)!=PI_10e8) |
- | |
| 209 | panic("tid%d: pi*10e6=%d\n", THREAD->tid, (int) 1000000*pi); |
- | |
| 210 | } |
- | |
| 211 | - | ||
| 212 | printf("tid%d: pi*10e6=%d\n", THREAD->tid, (int) 1000000*pi); |
- | |
| 213 | } |
- | |
| 214 | */ |
- | |