New ieee754 arithmetic, Fix for KT-14651: Floating point comparisons shall operate according to IEEE754

This commit is contained in:
Mikhael Bogdanov
2016-11-22 16:27:35 +01:00
parent f9b40585cd
commit 627dd66ed5
62 changed files with 1632 additions and 22 deletions
+20
View File
@@ -0,0 +1,20 @@
fun greater1(a: Float, b: Float) = a > b
fun greater2(a: Float?, b: Float?) = a!! > b!!
fun greater3(a: Float?, b: Float?) = a != null && b != null && a > b
fun greater4(a: Float?, b: Float?) = if (a is Float && b is Float) a > b else null!!
fun greater5(a: Any?, b: Any?) = if (a is Float && b is Float) a > b else null!!
fun box(): String {
if (0.0F > -0.0F) return "fail 0"
if (greater1(0.0F, -0.0F)) return "fail 1"
if (greater2(0.0F, -0.0F)) return "fail 2"
if (greater3(0.0F, -0.0F)) return "fail 3"
if (greater4(0.0F, -0.0F)) return "fail 4"
if (greater5(0.0F, -0.0F)) return "fail 5"
return "OK"
}