Rev 1787 | Rev 2020 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1787 | Rev 1882 | ||
---|---|---|---|
Line 43... | Line 43... | ||
43 | 43 | ||
44 | #define E_10e8 271828182 |
44 | #define E_10e8 271828182 |
45 | #define PI_10e8 314159265 |
45 | #define PI_10e8 314159265 |
46 | 46 | ||
47 | 47 | ||
48 | #ifdef __ia32_ARCH_H__ |
48 | #ifdef KERN_ia32_ARCH_H_ |
49 | static inline double sqrt(double x) { double v; __asm__ ("fsqrt\n" : "=t" (v) : "0" (x)); return v; } |
49 | static inline double sqrt(double x) { double v; __asm__ ("fsqrt\n" : "=t" (v) : "0" (x)); return v; } |
50 | #endif |
50 | #endif |
51 | 51 | ||
52 | #ifdef __amd64_ARCH_H__ |
52 | #ifdef KERN_amd64_ARCH_H_ |
53 | static inline double sqrt(double x) { double v; __asm__ ("fsqrt\n" : "=t" (v) : "0" (x)); return v; } |
53 | static inline double sqrt(double x) { double v; __asm__ ("fsqrt\n" : "=t" (v) : "0" (x)); return v; } |
54 | #endif |
54 | #endif |
55 | 55 | ||
56 | #ifdef __ia64_ARCH_H__ |
56 | #ifdef KERN_ia64_ARCH_H_ |
57 | static inline long double sqrt(long double a) |
57 | static inline long double sqrt(long double a) |
58 | { |
58 | { |
59 | long double x = 1; |
59 | long double x = 1; |
60 | long double lx = 0; |
60 | long double lx = 0; |
61 | 61 | ||
Line 103... | Line 103... | ||
103 | } |
103 | } |
104 | 104 | ||
105 | static void pi(void *data) |
105 | static void pi(void *data) |
106 | { |
106 | { |
107 | 107 | ||
108 | #ifdef __ia64_ARCH_H__ |
108 | #ifdef KERN_ia64_ARCH_H_ |
109 | #undef PI_10e8 |
109 | #undef PI_10e8 |
110 | #define PI_10e8 3141592 |
110 | #define PI_10e8 3141592 |
111 | #endif |
111 | #endif |
112 | 112 | ||
113 | 113 | ||
Line 132... | Line 132... | ||
132 | ad = sqrt(ab*ab/4 + cd*cd); |
132 | ad = sqrt(ab*ab/4 + cd*cd); |
133 | lpi = pi; |
133 | lpi = pi; |
134 | pi = 2 * n * ad; |
134 | pi = 2 * n * ad; |
135 | } |
135 | } |
136 | 136 | ||
137 | #ifdef __ia64_ARCH_H__ |
137 | #ifdef KERN_ia64_ARCH_H_ |
138 | if((int)(1000000*pi)!=PI_10e8) |
138 | if((int)(1000000*pi)!=PI_10e8) |
139 | panic("tid%d: pi*10e8=%zd should be %zd\n", THREAD->tid, (unative_t) (1000000*pi),(unative_t) (PI_10e8/100)); |
139 | panic("tid%d: pi*10e8=%zd should be %zd\n", THREAD->tid, (unative_t) (1000000*pi),(unative_t) (PI_10e8/100)); |
140 | #else |
140 | #else |
141 | if((int)(100000000*pi)!=PI_10e8) |
141 | if((int)(100000000*pi)!=PI_10e8) |
142 | panic("tid%d: pi*10e8=%zd should be %zd\n", THREAD->tid, (unative_t) (100000000*pi),(unative_t) PI_10e8); |
142 | panic("tid%d: pi*10e8=%zd should be %zd\n", THREAD->tid, (unative_t) (100000000*pi),(unative_t) PI_10e8); |