Skip to content

Commit 7aec474

Browse files
committed
fix #457: -10.0 < 20 returns 0 instead of 1
1 parent 2e1b7b7 commit 7aec474

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

src/kg.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,21 +37,21 @@ I FC(F a, F b)//Floating-Point Compare
3737
#else
3838
{
3939
// adaptive ULP
40-
union {I i;F f;} x,y;I xu,d,ad;
40+
union {I i;F f;} x,y;I xu,ad;
4141
x.f=a;y.f=b;xu=x.i|y.i;
4242
if(Inan(x.i))R Inan(y.i)?0:-1;
4343
else if(x.i<0)x.i=LLONG_MIN-x.i;
4444
if(Inan(y.i))R 1;
4545
else if(y.i<0)y.i=LLONG_MIN-y.i;
46-
ad=llabs(d=x.i-y.i);
46+
ad=llabs(x.i-y.i);
4747
if(ad<1023){
48-
if(Isubn(xu))R d<0?-1:d?1:0;
48+
if(Isubn(xu))R x.i<y.i?-1:x.i!=y.i?1:0;
4949
if(ad<513)R 0;
5050
// sxxx xxxx xxxx uuuu uuuu ....
5151
xu=513+((255&(xu>>44))<<1);
5252
if(ad<xu)R 0;
5353
}
54-
R d<0?-1:1;
54+
R x.i<y.i?-1:1;
5555
}
5656
#endif
5757
}

src/tests.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -747,6 +747,9 @@ Z I tests02()
747747
TC(("";"";"";""), "a"\"aaa")
748748
TC_("x:.+(`a`b;1 2); y:x; f:{.[x;,`a;:;11]}; f`y; x",".+(`a`b;1 2)")
749749
TC_("x:.+(`a`b;1 2); y:x; f:{.[x;,`a;:;11]}; f`y; y",".+(`a`b;11 2)")
750+
TC(1, -20<10)
751+
TC(1, -20.0<10.0)
752+
TC(1, -10.0<20)
750753
#ifdef K3_ARITH
751754
TC(0i, 0i+0i) // plus
752755
TC(0i, 0i+0I)

0 commit comments

Comments
 (0)