@main[]
$data[^table::create{n1,n2
0.79999999999999993,0.8
-9007199254740992,-9007199254740990
9007199254740992,9007199254740990
9007199254740992,9007199254740994
9007199254740992,9007199254740996
9007199254740992,9007199254740998
9007199254740992,9007199254740999
100000000000000,100000000000000.015625
100000000000000,100000000000000.09375
10000000000000000,10000000000000001
1e-14,1.0000000000000001e-14
1e-14,1.00000000000001e-14
1e+308,1.0000000000000002e+308
1e+308,1.000000000000001e+308
1,1.0000000000000002
1,1.000000000000001
-1,-1.0000000000000002
0,5e-324
0,5e-323}[ $.separator[,] ]]
^for[i](0;4){
^cmp[$i]
}
^cmp2[]
@cmp[max_ulp]
============ Max ULP distance: $max_ulp
^data.menu{ $n1($data.n1) $n2($data.n2)
^n1.format[%0.20g] ($data.n1) ^if(^math:eq($n1;$n2;$max_ulp)){==}{!=} ^n2.format[%0.20g] ($data.n2)
}
@cmp2[]
============ String
^data.menu{ $n1($data.n1) $n2($data.n2)
^n1.format[%0.20g] ($data.n1) ^if($n1 eq $n2){==}{!=} ^n2.format[%0.20g] ($data.n2)
}
E-mail: