Subversion Repositories HelenOS-historic

Rev

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;