Rev 653 | Rev 688 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 653 | Rev 660 | ||
|---|---|---|---|
| Line 55... | Line 55... | ||
| 55 | { |
55 | { |
| 56 | float32 fa, fb; |
56 | float32 fa, fb; |
| 57 | fa.f=a; |
57 | fa.f=a; |
| 58 | fb.f=b; |
58 | fb.f=b; |
| 59 | if (fa.parts.sign!=fb.parts.sign) { |
59 | if (fa.parts.sign!=fb.parts.sign) { |
| 60 | fb.parts.sign!=fb.parts.sign; |
60 | fb.parts.sign=!fb.parts.sign; |
| 61 | return addFloat32(fa,fb).f; |
61 | return addFloat32(fa,fb).f; |
| 62 | } |
62 | } |
| 63 | return subFloat32(fa,fb).f; |
63 | return subFloat32(fa,fb).f; |
| 64 | }; |
64 | }; |
| 65 | 65 | ||
| Line 86... | Line 86... | ||
| 86 | /* a<b .. -1 |
86 | /* a<b .. -1 |
| 87 | * a=b .. 0 |
87 | * a=b .. 0 |
| 88 | * a>b .. 1 |
88 | * a>b .. 1 |
| 89 | * */ |
89 | * */ |
| 90 | 90 | ||
| 91 | int __cmpsf2(double a, double b) |
91 | int __cmpsf2(float a, float b) |
| 92 | { |
92 | { |
| 93 | float32 fa,fb; |
93 | float32 fa,fb; |
| 94 | fa.f=a; |
94 | fa.f=a; |
| 95 | fb.f=b; |
95 | fb.f=b; |
| 96 | if ((isFloat32NaN(fa))||(isFloat32NaN(fb))) { |
96 | if ((isFloat32NaN(fa))||(isFloat32NaN(fb))) { |
| Line 143... | Line 143... | ||
| 143 | float32 fa,fb; |
143 | float32 fa,fb; |
| 144 | fa.f=a; |
144 | fa.f=a; |
| 145 | fb.f=b; |
145 | fb.f=b; |
| 146 | if ((isFloat32NaN(fa))||(isFloat32NaN(fb))) { |
146 | if ((isFloat32NaN(fa))||(isFloat32NaN(fb))) { |
| 147 | /* TODO: sigNaNs*/ |
147 | /* TODO: sigNaNs*/ |
| 148 | return 1; |
148 | return -1; |
| 149 | }; |
149 | }; |
| 150 | 150 | ||
| 151 | if (isFloat32eq(fa,fb)) { |
151 | if (isFloat32eq(fa,fb)) { |
| 152 | return 0; |
152 | return 0; |
| 153 | }; |
153 | }; |
| Line 196... | Line 196... | ||
| 196 | 196 | ||
| 197 | return 1; |
197 | return 1; |
| 198 | } |
198 | } |
| 199 | 199 | ||
| 200 | /** Return positive value, if a>b and neither is NaN*/ |
200 | /** Return positive value, if a>b and neither is NaN*/ |
| 201 | int __ltsf2(float a, float b) |
201 | int __gtsf2(float a, float b) |
| 202 | { |
202 | { |
| 203 | float32 fa,fb; |
203 | float32 fa,fb; |
| 204 | fa.f=a; |
204 | fa.f=a; |
| 205 | fb.f=b; |
205 | fb.f=b; |
| 206 | if ((isFloat32NaN(fa))||(isFloat32NaN(fb))) { |
206 | if ((isFloat32NaN(fa))||(isFloat32NaN(fb))) { |
| 207 | /* TODO: sigNaNs*/ |
207 | /* TODO: sigNaNs*/ |
| 208 | return 1; |
208 | return -1; |
| 209 | }; |
209 | }; |
| 210 | if (isFloat32gt(fa, fb)) { |
210 | if (isFloat32gt(fa, fb)) { |
| 211 | return 1; |
211 | return 1; |
| 212 | }; |
212 | }; |
| 213 | return 0; |
213 | return 0; |